123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855 |
- <?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="GLib" version="2.0"/>
- <include name="GModule" version="2.0"/>
- <include name="GObject" version="2.0"/>
- <package name="gstreamer-1.0"/>
- <c:include name="gst/gst.h"/>
- <namespace name="Gst"
- version="1.0"
- shared-library="libgstreamer-1.0.so.0"
- c:identifier-prefixes="Gst"
- c:symbol-prefixes="gst">
- <alias name="ClockID" c:type="GstClockID">
- <doc xml:space="preserve">A datatype to hold the handle to an outstanding sync or async clock callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </alias>
- <alias name="ClockTime" c:type="GstClockTime">
- <doc xml:space="preserve">A datatype to hold a time, measured in nanoseconds.</doc>
- <type name="guint64" c:type="guint64"/>
- </alias>
- <alias name="ClockTimeDiff" c:type="GstClockTimeDiff">
- <doc xml:space="preserve">A datatype to hold a time difference, measured in nanoseconds.</doc>
- <type name="gint64" c:type="gint64"/>
- </alias>
- <alias name="ElementFactoryListType" c:type="GstElementFactoryListType">
- <type name="guint64" c:type="guint64"/>
- </alias>
- <constant name="ALLOCATOR_SYSMEM"
- value="SystemMemory"
- c:type="GST_ALLOCATOR_SYSMEM">
- <doc xml:space="preserve">The allocator name for the default system memory allocator</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <record name="AllocationParams"
- c:type="GstAllocationParams"
- glib:type-name="GstAllocationParams"
- glib:get-type="gst_allocation_params_get_type"
- c:symbol-prefix="allocation_params">
- <doc xml:space="preserve">Parameters to control the allocation of memory</doc>
- <field name="flags" writable="1">
- <doc xml:space="preserve">flags to control allocation</doc>
- <type name="MemoryFlags" c:type="GstMemoryFlags"/>
- </field>
- <field name="align" writable="1">
- <doc xml:space="preserve">the desired alignment of the memory</doc>
- <type name="gsize" c:type="gsize"/>
- </field>
- <field name="prefix" writable="1">
- <doc xml:space="preserve">the desired prefix</doc>
- <type name="gsize" c:type="gsize"/>
- </field>
- <field name="padding" writable="1">
- <doc xml:space="preserve">the desired padding</doc>
- <type name="gsize" c:type="gsize"/>
- </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_allocation_params_copy">
- <doc xml:space="preserve">Create a copy of @params.
- Free-function: gst_allocation_params_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new ##GstAllocationParams, free with
- gst_allocation_params_free().</doc>
- <type name="AllocationParams" c:type="GstAllocationParams*"/>
- </return-value>
- <parameters>
- <instance-parameter name="params" transfer-ownership="none">
- <doc xml:space="preserve">a #GstAllocationParams</doc>
- <type name="AllocationParams" c:type="const GstAllocationParams*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="free" c:identifier="gst_allocation_params_free">
- <doc xml:space="preserve">Free @params</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="params" transfer-ownership="full">
- <doc xml:space="preserve">a #GstAllocationParams</doc>
- <type name="AllocationParams" c:type="GstAllocationParams*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="init" c:identifier="gst_allocation_params_init">
- <doc xml:space="preserve">Initialize @params to its default values</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="params" transfer-ownership="none">
- <doc xml:space="preserve">a #GstAllocationParams</doc>
- <type name="AllocationParams" c:type="GstAllocationParams*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <class name="Allocator"
- c:symbol-prefix="allocator"
- c:type="GstAllocator"
- parent="Object"
- abstract="1"
- glib:type-name="GstAllocator"
- glib:get-type="gst_allocator_get_type"
- glib:type-struct="AllocatorClass">
- <doc xml:space="preserve">Memory is usually created by allocators with a gst_allocator_alloc()
- method call. When %NULL is used as the allocator, the default allocator will
- be used.
- New allocators can be registered with gst_allocator_register().
- Allocators are identified by name and can be retrieved with
- gst_allocator_find(). gst_allocator_set_default() can be used to change the
- default allocator.
- New memory can be created with gst_memory_new_wrapped() that wraps the memory
- allocated elsewhere.</doc>
- <function name="find" c:identifier="gst_allocator_find">
- <doc xml:space="preserve">Find a previously registered allocator with @name. When @name is %NULL, the
- default allocator will be returned.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GstAllocator or %NULL when
- the allocator with @name was not registered. Use gst_object_unref()
- to release the allocator after usage.</doc>
- <type name="Allocator" c:type="GstAllocator*"/>
- </return-value>
- <parameters>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the allocator</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="register" c:identifier="gst_allocator_register">
- <doc xml:space="preserve">Registers the memory @allocator with @name. This function takes ownership of
- @allocator.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the allocator</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="allocator" transfer-ownership="full">
- <doc xml:space="preserve">#GstAllocator</doc>
- <type name="Allocator" c:type="GstAllocator*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="alloc" invoker="alloc">
- <doc xml:space="preserve">Use @allocator to allocate a new memory block with memory that is at least
- @size big.
- The optional @params can specify the prefix and padding for the memory. If
- %NULL is passed, no flags, no extra prefix/padding and a default alignment is
- used.
- The prefix/padding will be filled with 0 if flags contains
- #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.
- When @allocator is %NULL, the default allocator will be used.
- The alignment in @params is given as a bitmask so that @align + 1 equals
- the amount of bytes to align to. For example, to align to 8 bytes,
- use an alignment of 7.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstMemory.</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </return-value>
- <parameters>
- <instance-parameter name="allocator"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstAllocator to use</doc>
- <type name="Allocator" c:type="GstAllocator*"/>
- </instance-parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">size of the visible memory area</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="params"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional parameters</doc>
- <type name="AllocationParams" c:type="GstAllocationParams*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="free" invoker="free">
- <doc xml:space="preserve">Free @memory that was previously allocated with gst_allocator_alloc().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="allocator" transfer-ownership="none">
- <doc xml:space="preserve">a #GstAllocator to use</doc>
- <type name="Allocator" c:type="GstAllocator*"/>
- </instance-parameter>
- <parameter name="memory" transfer-ownership="full">
- <doc xml:space="preserve">the memory to free</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="alloc" c:identifier="gst_allocator_alloc">
- <doc xml:space="preserve">Use @allocator to allocate a new memory block with memory that is at least
- @size big.
- The optional @params can specify the prefix and padding for the memory. If
- %NULL is passed, no flags, no extra prefix/padding and a default alignment is
- used.
- The prefix/padding will be filled with 0 if flags contains
- #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.
- When @allocator is %NULL, the default allocator will be used.
- The alignment in @params is given as a bitmask so that @align + 1 equals
- the amount of bytes to align to. For example, to align to 8 bytes,
- use an alignment of 7.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstMemory.</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </return-value>
- <parameters>
- <instance-parameter name="allocator"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstAllocator to use</doc>
- <type name="Allocator" c:type="GstAllocator*"/>
- </instance-parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">size of the visible memory area</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="params"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional parameters</doc>
- <type name="AllocationParams" c:type="GstAllocationParams*"/>
- </parameter>
- </parameters>
- </method>
- <method name="free" c:identifier="gst_allocator_free">
- <doc xml:space="preserve">Free @memory that was previously allocated with gst_allocator_alloc().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="allocator" transfer-ownership="none">
- <doc xml:space="preserve">a #GstAllocator to use</doc>
- <type name="Allocator" c:type="GstAllocator*"/>
- </instance-parameter>
- <parameter name="memory" transfer-ownership="full">
- <doc xml:space="preserve">the memory to free</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_default" c:identifier="gst_allocator_set_default">
- <doc xml:space="preserve">Set the default allocator. This function takes ownership of @allocator.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="allocator" transfer-ownership="full">
- <doc xml:space="preserve">a #GstAllocator</doc>
- <type name="Allocator" c:type="GstAllocator*"/>
- </instance-parameter>
- </parameters>
- </method>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="mem_type">
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="mem_map">
- <doc xml:space="preserve">the implementation of the GstMemoryMapFunction</doc>
- <type name="MemoryMapFunction" c:type="GstMemoryMapFunction"/>
- </field>
- <field name="mem_unmap">
- <doc xml:space="preserve">the implementation of the GstMemoryUnmapFunction</doc>
- <type name="MemoryUnmapFunction" c:type="GstMemoryUnmapFunction"/>
- </field>
- <field name="mem_copy">
- <doc xml:space="preserve">the implementation of the GstMemoryCopyFunction</doc>
- <type name="MemoryCopyFunction" c:type="GstMemoryCopyFunction"/>
- </field>
- <field name="mem_share">
- <doc xml:space="preserve">the implementation of the GstMemoryShareFunction</doc>
- <type name="MemoryShareFunction" c:type="GstMemoryShareFunction"/>
- </field>
- <field name="mem_is_span">
- <doc xml:space="preserve">the implementation of the GstMemoryIsSpanFunction</doc>
- <type name="MemoryIsSpanFunction" c:type="GstMemoryIsSpanFunction"/>
- </field>
- <field name="mem_map_full">
- <doc xml:space="preserve">the implementation of the GstMemoryMapFullFunction.
- Will be used instead of @mem_map if present. (Since 1.6)</doc>
- <type name="MemoryMapFullFunction" c:type="GstMemoryMapFullFunction"/>
- </field>
- <field name="mem_unmap_full">
- <doc xml:space="preserve">the implementation of the GstMemoryUnmapFullFunction.
- Will be used instead of @mem_unmap if present. (Since 1.6)</doc>
- <type name="MemoryUnmapFullFunction"
- c:type="GstMemoryUnmapFullFunction"/>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="2">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="AllocatorPrivate" c:type="GstAllocatorPrivate*"/>
- </field>
- </class>
- <record name="AllocatorClass"
- c:type="GstAllocatorClass"
- glib:is-gtype-struct-for="Allocator">
- <doc xml:space="preserve">The #GstAllocator is used to create new memory.</doc>
- <field name="object_class">
- <doc xml:space="preserve">Object parent class</doc>
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="alloc">
- <callback name="alloc">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstMemory.</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </return-value>
- <parameters>
- <parameter name="allocator"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstAllocator to use</doc>
- <type name="Allocator" c:type="GstAllocator*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">size of the visible memory area</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="params"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional parameters</doc>
- <type name="AllocationParams" c:type="GstAllocationParams*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="free">
- <callback name="free">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="allocator" transfer-ownership="none">
- <doc xml:space="preserve">a #GstAllocator to use</doc>
- <type name="Allocator" c:type="GstAllocator*"/>
- </parameter>
- <parameter name="memory" transfer-ownership="full">
- <doc xml:space="preserve">the memory to free</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </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="AllocatorFlags"
- glib:type-name="GstAllocatorFlags"
- glib:get-type="gst_allocator_flags_get_type"
- c:type="GstAllocatorFlags">
- <doc xml:space="preserve">Flags for allocators.</doc>
- <member name="custom_alloc"
- value="16"
- c:identifier="GST_ALLOCATOR_FLAG_CUSTOM_ALLOC"
- glib:nick="custom-alloc">
- <doc xml:space="preserve">The allocator has a custom alloc function.</doc>
- </member>
- <member name="last"
- value="1048576"
- c:identifier="GST_ALLOCATOR_FLAG_LAST"
- glib:nick="last">
- <doc xml:space="preserve">first flag that can be used for custom purposes</doc>
- </member>
- </bitfield>
- <record name="AllocatorPrivate" c:type="GstAllocatorPrivate" disguised="1">
- </record>
- <record name="AtomicQueue"
- c:type="GstAtomicQueue"
- glib:type-name="GstAtomicQueue"
- glib:get-type="gst_atomic_queue_get_type"
- c:symbol-prefix="atomic_queue">
- <doc xml:space="preserve">The #GstAtomicQueue object implements a queue that can be used from multiple
- threads without performing any blocking operations.</doc>
- <constructor name="new" c:identifier="gst_atomic_queue_new">
- <doc xml:space="preserve">Create a new atomic queue instance. @initial_size will be rounded up to the
- nearest power of 2 and used as the initial size of the queue.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstAtomicQueue</doc>
- <type name="AtomicQueue" c:type="GstAtomicQueue*"/>
- </return-value>
- <parameters>
- <parameter name="initial_size" transfer-ownership="none">
- <doc xml:space="preserve">initial queue size</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="length" c:identifier="gst_atomic_queue_length">
- <doc xml:space="preserve">Get the amount of items in the queue.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of elements in the queue.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="queue" transfer-ownership="none">
- <doc xml:space="preserve">a #GstAtomicQueue</doc>
- <type name="AtomicQueue" c:type="GstAtomicQueue*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="peek" c:identifier="gst_atomic_queue_peek">
- <doc xml:space="preserve">Peek the head element of the queue without removing it from the queue.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the head element of @queue or
- %NULL when the queue is empty.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="queue" transfer-ownership="none">
- <doc xml:space="preserve">a #GstAtomicQueue</doc>
- <type name="AtomicQueue" c:type="GstAtomicQueue*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="pop" c:identifier="gst_atomic_queue_pop">
- <doc xml:space="preserve">Get the head element of the queue.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the head element of @queue or %NULL when
- the queue is empty.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="queue" transfer-ownership="none">
- <doc xml:space="preserve">a #GstAtomicQueue</doc>
- <type name="AtomicQueue" c:type="GstAtomicQueue*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="push" c:identifier="gst_atomic_queue_push">
- <doc xml:space="preserve">Append @data to the tail of the queue.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="queue" transfer-ownership="none">
- <doc xml:space="preserve">a #GstAtomicQueue</doc>
- <type name="AtomicQueue" c:type="GstAtomicQueue*"/>
- </instance-parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="ref" c:identifier="gst_atomic_queue_ref">
- <doc xml:space="preserve">Increase the refcount of @queue.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="queue" transfer-ownership="none">
- <doc xml:space="preserve">a #GstAtomicQueue</doc>
- <type name="AtomicQueue" c:type="GstAtomicQueue*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref" c:identifier="gst_atomic_queue_unref">
- <doc xml:space="preserve">Unref @queue and free the memory when the refcount reaches 0.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="queue" transfer-ownership="none">
- <doc xml:space="preserve">a #GstAtomicQueue</doc>
- <type name="AtomicQueue" c:type="GstAtomicQueue*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <constant name="BUFFER_COPY_ALL" value="0" c:type="GST_BUFFER_COPY_ALL">
- <doc xml:space="preserve">Combination of all possible fields that can be copied with
- gst_buffer_copy_into().</doc>
- <type name="BufferCopyFlags" c:type="GstBufferCopyFlags"/>
- </constant>
- <constant name="BUFFER_COPY_METADATA"
- value="0"
- c:type="GST_BUFFER_COPY_METADATA">
- <doc xml:space="preserve">Combination of all possible metadata fields that can be copied with
- gst_buffer_copy_into().</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="BUFFER_OFFSET_NONE"
- value="18446744073709551615"
- c:type="GST_BUFFER_OFFSET_NONE">
- <doc xml:space="preserve">Constant for no-offset return results.</doc>
- <type name="guint64" c:type="guint64"/>
- </constant>
- <class name="Bin"
- c:symbol-prefix="bin"
- c:type="GstBin"
- parent="Element"
- glib:type-name="GstBin"
- glib:get-type="gst_bin_get_type"
- glib:type-struct="BinClass">
- <doc xml:space="preserve">#GstBin is an element that can contain other #GstElement, allowing them to be
- managed as a group.
- Pads from the child elements can be ghosted to the bin, see #GstGhostPad.
- This makes the bin look like any other elements and enables creation of
- higher-level abstraction elements.
- A new #GstBin is created with gst_bin_new(). Use a #GstPipeline instead if you
- want to create a toplevel bin because a normal bin doesn't have a bus or
- handle clock distribution of its own.
- After the bin has been created you will typically add elements to it with
- gst_bin_add(). You can remove elements with gst_bin_remove().
- An element can be retrieved from a bin with gst_bin_get_by_name(), using the
- elements name. gst_bin_get_by_name_recurse_up() is mainly used for internal
- purposes and will query the parent bins when the element is not found in the
- current bin.
- An iterator of elements in a bin can be retrieved with
- gst_bin_iterate_elements(). Various other iterators exist to retrieve the
- elements in a bin.
- gst_object_unref() is used to drop your reference to the bin.
- The #GstBin::element-added signal is fired whenever a new element is added to
- the bin. Likewise the #GstBin::element-removed signal is fired whenever an
- element is removed from the bin.
- <refsect2><title>Notes</title>
- <para>
- A #GstBin internally intercepts every #GstMessage posted by its children and
- implements the following default behaviour for each of them:
- <variablelist>
- <varlistentry>
- <term>GST_MESSAGE_EOS</term>
- <listitem><para>This message is only posted by sinks in the PLAYING
- state. If all sinks posted the EOS message, this bin will post and EOS
- message upwards.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>GST_MESSAGE_SEGMENT_START</term>
- <listitem><para>just collected and never forwarded upwards.
- The messages are used to decide when all elements have completed playback
- of their segment.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>GST_MESSAGE_SEGMENT_DONE</term>
- <listitem><para> Is posted by #GstBin when all elements that posted
- a SEGMENT_START have posted a SEGMENT_DONE.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>GST_MESSAGE_DURATION_CHANGED</term>
- <listitem><para> Is posted by an element that detected a change
- in the stream duration. The default bin behaviour is to clear any
- cached duration values so that the next duration query will perform
- a full duration recalculation. The duration change is posted to the
- application so that it can refetch the new duration with a duration
- query. Note that these messages can be posted before the bin is
- prerolled, in which case the duration query might fail.
- </para></listitem>
- </varlistentry>
- <varlistentry>
- <term>GST_MESSAGE_CLOCK_LOST</term>
- <listitem><para> This message is posted by an element when it
- can no longer provide a clock. The default bin behaviour is to
- check if the lost clock was the one provided by the bin. If so and
- the bin is currently in the PLAYING state, the message is forwarded to
- the bin parent.
- This message is also generated when a clock provider is removed from
- the bin. If this message is received by the application, it should
- PAUSE the pipeline and set it back to PLAYING to force a new clock
- distribution.
- </para></listitem>
- </varlistentry>
- <varlistentry>
- <term>GST_MESSAGE_CLOCK_PROVIDE</term>
- <listitem><para> This message is generated when an element
- can provide a clock. This mostly happens when a new clock
- provider is added to the bin. The default behaviour of the bin is to
- mark the currently selected clock as dirty, which will perform a clock
- recalculation the next time the bin is asked to provide a clock.
- This message is never sent tot the application but is forwarded to
- the parent of the bin.
- </para></listitem>
- </varlistentry>
- <varlistentry>
- <term>OTHERS</term>
- <listitem><para> posted upwards.</para></listitem>
- </varlistentry>
- </variablelist>
- A #GstBin implements the following default behaviour for answering to a
- #GstQuery:
- <variablelist>
- <varlistentry>
- <term>GST_QUERY_DURATION</term>
- <listitem><para>If the query has been asked before with the same format
- and the bin is a toplevel bin (ie. has no parent),
- use the cached previous value. If no previous value was cached, the
- query is sent to all sink elements in the bin and the MAXIMUM of all
- values is returned. If the bin is a toplevel bin the value is cached.
- If no sinks are available in the bin, the query fails.
- </para></listitem>
- </varlistentry>
- <varlistentry>
- <term>GST_QUERY_POSITION</term>
- <listitem><para>The query is sent to all sink elements in the bin and the
- MAXIMUM of all values is returned. If no sinks are available in the bin,
- the query fails.
- </para></listitem>
- </varlistentry>
- <varlistentry>
- <term>OTHERS</term>
- <listitem><para>the query is forwarded to all sink elements, the result
- of the first sink that answers the query successfully is returned. If no
- sink is in the bin, the query fails.</para></listitem>
- </varlistentry>
- </variablelist>
- A #GstBin will by default forward any event sent to it to all sink elements.
- If all the sinks return %TRUE, the bin will also return %TRUE, else %FALSE is
- returned. If no sinks are in the bin, the event handler will return %TRUE.
- </para>
- </refsect2></doc>
- <implements name="ChildProxy"/>
- <constructor name="new" c:identifier="gst_bin_new">
- <doc xml:space="preserve">Creates a new bin with the given name.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a new #GstBin</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the new bin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <virtual-method name="add_element">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="do_latency">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="element_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- <parameter name="child" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="element_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- <parameter name="child" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="handle_message">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="remove_element">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="add" c:identifier="gst_bin_add">
- <doc xml:space="preserve">Adds the given element to the bin. Sets the element's parent, and thus
- takes ownership of the element. An element can only be added to one bin.
- If the element's pads are linked to other pads, the pads will be unlinked
- before the element is added to the bin.
- <note>
- When you add an element to an already-running pipeline, you will have to
- take care to set the state of the newly-added element to the desired
- state (usually PLAYING or PAUSED, same you set the pipeline to originally)
- with gst_element_set_state(), or use gst_element_sync_state_with_parent().
- The bin or pipeline will not take care of this for you.
- </note>
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the element could be added, %FALSE if
- the bin does not want to accept the element.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBin</doc>
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- <parameter name="element" transfer-ownership="full">
- <doc xml:space="preserve">the #GstElement to add</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_many"
- c:identifier="gst_bin_add_many"
- introspectable="0">
- <doc xml:space="preserve">Adds a %NULL-terminated list of elements to a bin. This function is
- equivalent to calling gst_bin_add() for each member of the list. The return
- value of each gst_bin_add() is ignored.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBin</doc>
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- <parameter name="element_1" transfer-ownership="full">
- <doc xml:space="preserve">the #GstElement element to add to the bin</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="..." transfer-ownership="full">
- <doc xml:space="preserve">additional elements to add to the bin</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="find_unlinked_pad"
- c:identifier="gst_bin_find_unlinked_pad">
- <doc xml:space="preserve">Recursively looks for elements with an unlinked pad of the given
- direction within the specified bin and returns an unlinked pad
- if one is found, or %NULL otherwise. If a pad is found, the caller
- owns a reference to it and should use gst_object_unref() on the
- pad when it is not needed any longer.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">unlinked pad of the given
- direction, %NULL.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">bin in which to look for elements with unlinked pads</doc>
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- <parameter name="direction" transfer-ownership="none">
- <doc xml:space="preserve">whether to look for an unlinked source or sink pad</doc>
- <type name="PadDirection" c:type="GstPadDirection"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_by_interface" c:identifier="gst_bin_get_by_interface">
- <doc xml:space="preserve">Looks for an element inside the bin that implements the given
- interface. If such an element is found, it returns the element.
- You can cast this element to the given interface afterwards. If you want
- all elements that implement the interface, use
- gst_bin_iterate_all_by_interface(). This function recurses into child bins.
- MT safe. Caller owns returned reference.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GstElement inside the bin implementing the interface</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBin</doc>
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- <parameter name="iface" transfer-ownership="none">
- <doc xml:space="preserve">the #GType of an interface</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_by_name" c:identifier="gst_bin_get_by_name">
- <doc xml:space="preserve">Gets the element with the given name from a bin. This
- function recurses into child bins.
- Returns %NULL if no element with the given name is found in the bin.
- MT safe. Caller owns returned reference.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the #GstElement with the given
- name, or %NULL</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBin</doc>
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the element name to search for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_by_name_recurse_up"
- c:identifier="gst_bin_get_by_name_recurse_up">
- <doc xml:space="preserve">Gets the element with the given name from this bin. If the
- element is not found, a recursion is performed on the parent bin.
- Returns %NULL if:
- - no element with the given name is found in the bin
- MT safe. Caller owns returned reference.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the #GstElement with the given
- name, or %NULL</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBin</doc>
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the element name to search for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="iterate_all_by_interface"
- c:identifier="gst_bin_iterate_all_by_interface">
- <doc xml:space="preserve">Looks for all elements inside the bin that implements the given
- interface. You can safely cast all returned elements to the given interface.
- The function recurses inside child bins. The iterator will yield a series
- of #GstElement that should be unreffed after use.
- MT safe. Caller owns returned value.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GstIterator of #GstElement
- for all elements in the bin implementing the given interface,
- or %NULL</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBin</doc>
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- <parameter name="iface" transfer-ownership="none">
- <doc xml:space="preserve">the #GType of an interface</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </method>
- <method name="iterate_elements" c:identifier="gst_bin_iterate_elements">
- <doc xml:space="preserve">Gets an iterator for the elements in this bin.
- MT safe. Caller owns returned value.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GstIterator of #GstElement,
- or %NULL</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBin</doc>
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="iterate_recurse" c:identifier="gst_bin_iterate_recurse">
- <doc xml:space="preserve">Gets an iterator for the elements in this bin.
- This iterator recurses into GstBin children.
- MT safe. Caller owns returned value.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GstIterator of #GstElement,
- or %NULL</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBin</doc>
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="iterate_sinks" c:identifier="gst_bin_iterate_sinks">
- <doc xml:space="preserve">Gets an iterator for all elements in the bin that have the
- #GST_ELEMENT_FLAG_SINK flag set.
- MT safe. Caller owns returned value.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GstIterator of #GstElement,
- or %NULL</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBin</doc>
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="iterate_sorted" c:identifier="gst_bin_iterate_sorted">
- <doc xml:space="preserve">Gets an iterator for the elements in this bin in topologically
- sorted order. This means that the elements are returned from
- the most downstream elements (sinks) to the sources.
- This function is used internally to perform the state changes
- of the bin elements and for clock selection.
- MT safe. Caller owns returned value.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GstIterator of #GstElement,
- or %NULL</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBin</doc>
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="iterate_sources" c:identifier="gst_bin_iterate_sources">
- <doc xml:space="preserve">Gets an iterator for all elements in the bin that have the
- #GST_ELEMENT_FLAG_SOURCE flag set.
- MT safe. Caller owns returned value.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GstIterator of #GstElement,
- or %NULL</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBin</doc>
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="recalculate_latency"
- c:identifier="gst_bin_recalculate_latency">
- <doc xml:space="preserve">Query @bin for the current latency using and reconfigures this latency to all the
- elements with a LATENCY event.
- This method is typically called on the pipeline when a #GST_MESSAGE_LATENCY
- is posted on the bus.
- This function simply emits the 'do-latency' signal so any custom latency
- calculations will be performed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the latency could be queried and reconfigured.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBin</doc>
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="remove" c:identifier="gst_bin_remove">
- <doc xml:space="preserve">Removes the element from the bin, unparenting it as well.
- Unparenting the element means that the element will be dereferenced,
- so if the bin holds the only reference to the element, the element
- will be freed in the process of removing it from the bin. If you
- want the element to still exist after removing, you need to call
- gst_object_ref() before removing it from the bin.
- If the element's pads are linked to other pads, the pads will be unlinked
- before the element is removed from the bin.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the element could be removed, %FALSE if
- the bin does not want to remove the element.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBin</doc>
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">the #GstElement to remove</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_many"
- c:identifier="gst_bin_remove_many"
- introspectable="0">
- <doc xml:space="preserve">Remove a list of elements from a bin. This function is equivalent
- to calling gst_bin_remove() with each member of the list.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBin</doc>
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- <parameter name="element_1" transfer-ownership="none">
- <doc xml:space="preserve">the first #GstElement to remove from the bin</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">%NULL-terminated list of elements to remove from the bin</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="sync_children_states"
- c:identifier="gst_bin_sync_children_states"
- version="1.6">
- <doc xml:space="preserve">Synchronizes the state of every child of @bin with the state
- of @bin. See also gst_element_sync_state_with_parent().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if syncing the state was successful for all children,
- otherwise %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBin</doc>
- <type name="Bin" c:type="GstBin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="async-handling" writable="1" transfer-ownership="none">
- <doc xml:space="preserve">If set to %TRUE, the bin will handle asynchronous state changes.
- This should be used only if the bin subclass is modifying the state
- of its children on its own.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="message-forward" writable="1" transfer-ownership="none">
- <doc xml:space="preserve">Forward all children messages, even those that would normally be filtered by
- the bin. This can be interesting when one wants to be notified of the EOS
- state of individual elements, for example.
- The messages are converted to an ELEMENT message with the bin as the
- source. The structure of the message is named 'GstBinForwarded' and contains
- a field named 'message' of type GST_TYPE_MESSAGE that contains the original
- forwarded message.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <field name="element">
- <type name="Element" c:type="GstElement"/>
- </field>
- <field name="numchildren">
- <doc xml:space="preserve">the number of children in this bin</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="children">
- <doc xml:space="preserve">the list of children in this bin</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Element"/>
- </type>
- </field>
- <field name="children_cookie">
- <doc xml:space="preserve">updated whenever @children changes</doc>
- <type name="guint32" c:type="guint32"/>
- </field>
- <field name="child_bus">
- <doc xml:space="preserve">internal bus for handling child messages</doc>
- <type name="Bus" c:type="GstBus*"/>
- </field>
- <field name="messages">
- <doc xml:space="preserve">queued and cached messages</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Message"/>
- </type>
- </field>
- <field name="polling">
- <doc xml:space="preserve">the bin is currently calculating its state</doc>
- <type name="gboolean" c:type="gboolean"/>
- </field>
- <field name="state_dirty">
- <doc xml:space="preserve">the bin needs to recalculate its state (deprecated)</doc>
- <type name="gboolean" c:type="gboolean"/>
- </field>
- <field name="clock_dirty">
- <doc xml:space="preserve">the bin needs to select a new clock</doc>
- <type name="gboolean" c:type="gboolean"/>
- </field>
- <field name="provided_clock">
- <doc xml:space="preserve">the last clock selected</doc>
- <type name="Clock" c:type="GstClock*"/>
- </field>
- <field name="clock_provider">
- <doc xml:space="preserve">the element that provided @provided_clock</doc>
- <type name="Element" c:type="GstElement*"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="BinPrivate" c:type="GstBinPrivate*"/>
- </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="do-latency" when="last">
- <doc xml:space="preserve">Will be emitted when the bin needs to perform latency calculations. This
- signal is only emitted for toplevel bins or when async-handling is
- enabled.
- Only one signal handler is invoked. If no signals are connected, the
- default handler is invoked, which will query and distribute the lowest
- possible latency to all sinks.
- Connect to this signal if the default latency calculations are not
- sufficient, like when you need different latencies for different sinks in
- the same pipeline.</doc>
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- </glib:signal>
- <glib:signal name="element-added" when="first">
- <doc xml:space="preserve">Will be emitted after the element was added to the bin.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">the #GstElement that was added to the bin</doc>
- <type name="Element"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="element-removed" when="first">
- <doc xml:space="preserve">Will be emitted after the element was removed from the bin.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">the #GstElement that was removed from the bin</doc>
- <type name="Element"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="BinClass"
- c:type="GstBinClass"
- glib:is-gtype-struct-for="Bin">
- <doc xml:space="preserve">Subclasses can override the @add_element and @remove_element to
- update the list of children in the bin.
- The @handle_message method can be overridden to implement custom
- message handling. @handle_message takes ownership of the message, just like
- #gst_element_post_message.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">bin parent class</doc>
- <type name="ElementClass" c:type="GstElementClass"/>
- </field>
- <field name="pool" readable="0" private="1">
- <type name="GLib.ThreadPool" c:type="GThreadPool*"/>
- </field>
- <field name="element_added">
- <callback name="element_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </parameter>
- <parameter name="child" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="element_removed">
- <callback name="element_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </parameter>
- <parameter name="child" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="add_element">
- <callback name="add_element">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </parameter>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="remove_element">
- <callback name="remove_element">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </parameter>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="handle_message">
- <callback name="handle_message">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="do_latency">
- <callback name="do_latency">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </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="BinFlags"
- glib:type-name="GstBinFlags"
- glib:get-type="gst_bin_flags_get_type"
- c:type="GstBinFlags">
- <doc xml:space="preserve">GstBinFlags are a set of flags specific to bins. Most are set/used
- internally. They can be checked using the GST_OBJECT_FLAG_IS_SET () macro,
- and (un)set using GST_OBJECT_FLAG_SET () and GST_OBJECT_FLAG_UNSET ().</doc>
- <member name="no_resync"
- value="16384"
- c:identifier="GST_BIN_FLAG_NO_RESYNC"
- glib:nick="no-resync">
- <doc xml:space="preserve">don't resync a state change when elements are
- added or linked in the bin (Since 1.0.5)</doc>
- </member>
- <member name="last"
- value="524288"
- c:identifier="GST_BIN_FLAG_LAST"
- glib:nick="last">
- <doc xml:space="preserve">the last enum in the series of flags for bins.
- Derived classes can use this as first value in a list of flags.</doc>
- </member>
- </bitfield>
- <record name="BinPrivate" c:type="GstBinPrivate" disguised="1">
- </record>
- <class name="Bitmask"
- c:symbol-prefix="bitmask"
- glib:type-name="GstBitmask"
- glib:get-type="gst_bitmask_get_type"
- glib:fundamental="1">
- </class>
- <record name="Buffer"
- c:type="GstBuffer"
- glib:type-name="GstBuffer"
- glib:get-type="gst_buffer_get_type"
- c:symbol-prefix="buffer">
- <doc xml:space="preserve">Buffers are the basic unit of data transfer in GStreamer. They contain the
- timing and offset along with other arbitrary metadata that is associated
- with the #GstMemory blocks that the buffer contains.
- Buffers are usually created with gst_buffer_new(). After a buffer has been
- created one will typically allocate memory for it and add it to the buffer.
- The following example creates a buffer that can hold a given video frame
- with a given width, height and bits per plane.
- |[<!-- language="C" -->
- GstBuffer *buffer;
- GstMemory *memory;
- gint size, width, height, bpp;
- ...
- size = width * height * bpp;
- buffer = gst_buffer_new ();
- memory = gst_allocator_alloc (NULL, size, NULL);
- gst_buffer_insert_memory (buffer, -1, memory);
- ...
- ]|
- Alternatively, use gst_buffer_new_allocate() to create a buffer with
- preallocated data of a given size.
- Buffers can contain a list of #GstMemory objects. You can retrieve how many
- memory objects with gst_buffer_n_memory() and you can get a pointer
- to memory with gst_buffer_peek_memory()
- A buffer will usually have timestamps, and a duration, but neither of these
- are guaranteed (they may be set to #GST_CLOCK_TIME_NONE). Whenever a
- meaningful value can be given for these, they should be set. The timestamps
- and duration are measured in nanoseconds (they are #GstClockTime values).
- The buffer DTS refers to the timestamp when the buffer should be decoded and
- is usually monotonically increasing. The buffer PTS refers to the timestamp when
- the buffer content should be presented to the user and is not always
- monotonically increasing.
- A buffer can also have one or both of a start and an end offset. These are
- media-type specific. For video buffers, the start offset will generally be
- the frame number. For audio buffers, it will be the number of samples
- produced so far. For compressed data, it could be the byte offset in a
- source or destination file. Likewise, the end offset will be the offset of
- the end of the buffer. These can only be meaningfully interpreted if you
- know the media type of the buffer (the preceding CAPS event). Either or both
- can be set to #GST_BUFFER_OFFSET_NONE.
- gst_buffer_ref() is used to increase the refcount of a buffer. This must be
- done when you want to keep a handle to the buffer after pushing it to the
- next element. The buffer refcount determines the writability of the buffer, a
- buffer is only writable when the refcount is exactly 1, i.e. when the caller
- has the only reference to the buffer.
- To efficiently create a smaller buffer out of an existing one, you can
- use gst_buffer_copy_region(). This method tries to share the memory objects
- between the two buffers.
- If a plug-in wants to modify the buffer data or metadata in-place, it should
- first obtain a buffer that is safe to modify by using
- gst_buffer_make_writable(). This function is optimized so that a copy will
- only be made when it is necessary.
- Several flags of the buffer can be set and unset with the
- GST_BUFFER_FLAG_SET() and GST_BUFFER_FLAG_UNSET() macros. Use
- GST_BUFFER_FLAG_IS_SET() to test if a certain #GstBufferFlags flag is set.
- Buffers can be efficiently merged into a larger buffer with
- gst_buffer_append(). Copying of memory will only be done when absolutely
- needed.
- Arbitrary extra metadata can be set on a buffer with gst_buffer_add_meta().
- Metadata can be retrieved with gst_buffer_get_meta(). See also #GstMeta
- An element should either unref the buffer or push it out on a src pad
- using gst_pad_push() (see #GstPad).
- Buffers are usually freed by unreffing them with gst_buffer_unref(). When
- the refcount drops to 0, any memory and metadata pointed to by the buffer is
- unreffed as well. Buffers allocated from a #GstBufferPool will be returned to
- the pool when the refcount drops to 0.
- The #GstParentBufferMeta is a meta which can be attached to a #GstBuffer
- to hold a reference to another buffer that is only released when the child
- #GstBuffer is released.
- Typically, #GstParentBufferMeta is used when the child buffer is directly
- using the #GstMemory of the parent buffer, and wants to prevent the parent
- buffer from being returned to a buffer pool until the #GstMemory is available
- for re-use. (Since 1.6)</doc>
- <field name="mini_object" writable="1">
- <doc xml:space="preserve">the parent structure</doc>
- <type name="MiniObject" c:type="GstMiniObject"/>
- </field>
- <field name="pool" writable="1">
- <doc xml:space="preserve">pointer to the pool owner of the buffer</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </field>
- <field name="pts" writable="1">
- <doc xml:space="preserve">presentation timestamp of the buffer, can be #GST_CLOCK_TIME_NONE when the
- pts is not known or relevant. The pts contains the timestamp when the
- media should be presented to the user.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="dts" writable="1">
- <doc xml:space="preserve">decoding timestamp of the buffer, can be #GST_CLOCK_TIME_NONE when the
- dts is not known or relevant. The dts contains the timestamp when the
- media should be processed.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="duration" writable="1">
- <doc xml:space="preserve">duration in time of the buffer data, can be #GST_CLOCK_TIME_NONE
- when the duration is not known or relevant.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="offset" writable="1">
- <doc xml:space="preserve">a media specific offset for the buffer data.
- For video frames, this is the frame number of this buffer.
- For audio samples, this is the offset of the first sample in this buffer.
- For file data or compressed data this is the byte offset of the first
- byte in this buffer.</doc>
- <type name="guint64" c:type="guint64"/>
- </field>
- <field name="offset_end" writable="1">
- <doc xml:space="preserve">the last offset contained in this buffer. It has the same
- format as @offset.</doc>
- <type name="guint64" c:type="guint64"/>
- </field>
- <constructor name="new" c:identifier="gst_buffer_new">
- <doc xml:space="preserve">Creates a newly allocated buffer without any data.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- </constructor>
- <constructor name="new_allocate" c:identifier="gst_buffer_new_allocate">
- <doc xml:space="preserve">Tries to create a newly allocated buffer with data of the given size and
- extra parameters from @allocator. If the requested amount of memory can't be
- allocated, %NULL will be returned. The allocated buffer memory is not cleared.
- When @allocator is %NULL, the default memory allocator will be used.
- Note that when @size == 0, the buffer will not have memory associated with it.
- MT safe.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a new #GstBuffer, or %NULL if
- the memory couldn't be allocated.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <parameter name="allocator"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the #GstAllocator to use, or %NULL to use the
- default allocator</doc>
- <type name="Allocator" c:type="GstAllocator*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size in bytes of the new buffer's data.</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="params"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional parameters</doc>
- <type name="AllocationParams" c:type="GstAllocationParams*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_wrapped" c:identifier="gst_buffer_new_wrapped">
- <doc xml:space="preserve">Creates a new buffer that wraps the given @data. The memory will be freed
- with g_free and will be marked writable.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="full">
- <doc xml:space="preserve">data to wrap</doc>
- <array length="1" zero-terminated="0" c:type="gpointer">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">allocated size of @data</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_wrapped_full"
- c:identifier="gst_buffer_new_wrapped_full">
- <doc xml:space="preserve">Allocate a new buffer that wraps the given memory. @data must point to
- @maxsize of memory, the wrapped buffer will have the region from @offset and
- @size visible.
- When the buffer is destroyed, @notify will be called with @user_data.
- The prefix/padding must be filled with 0 if @flags contains
- #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GstMemoryFlags</doc>
- <type name="MemoryFlags" c:type="GstMemoryFlags"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <doc xml:space="preserve">data to wrap</doc>
- <array length="4" zero-terminated="0" c:type="gpointer">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="maxsize" transfer-ownership="none">
- <doc xml:space="preserve">allocated size of @data</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">offset in @data</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">size of valid data</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">called with @user_data when the memory is freed</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="add_meta" c:identifier="gst_buffer_add_meta">
- <doc xml:space="preserve">Add metadata for @info to @buffer using the parameters in @params.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the metadata for the api in @info on @buffer.</doc>
- <type name="Meta" c:type="GstMeta*"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMetaInfo</doc>
- <type name="MetaInfo" c:type="const GstMetaInfo*"/>
- </parameter>
- <parameter name="params"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">params for @info</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_parent_buffer_meta"
- c:identifier="gst_buffer_add_parent_buffer_meta"
- version="1.6">
- <doc xml:space="preserve">Add a #GstParentBufferMeta to @buffer that holds a reference on
- @ref until the buffer is freed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The #GstParentBufferMeta that was added to the buffer</doc>
- <type name="ParentBufferMeta" c:type="GstParentBufferMeta*"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="ref" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer to ref</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_protection_meta"
- c:identifier="gst_buffer_add_protection_meta"
- version="1.6">
- <doc xml:space="preserve">Attaches protection metadata to a #GstBuffer.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a pointer to the added #GstProtectionMeta if successful; %NULL if
- unsuccessful.</doc>
- <type name="ProtectionMeta" c:type="GstProtectionMeta*"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">#GstBuffer holding an encrypted sample, to which protection
- metadata should be added.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="info" transfer-ownership="full">
- <doc xml:space="preserve">a #GstStructure holding cryptographic
- information relating to the sample contained in @buffer. This
- function takes ownership of @info.</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- <method name="append" c:identifier="gst_buffer_append">
- <doc xml:space="preserve">Append all the memory from @buf2 to @buf1. The result buffer will contain a
- concatenation of the memory of @buf1 and @buf2.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstBuffer that contains the memory
- of the two source buffers.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="buf1" transfer-ownership="full">
- <doc xml:space="preserve">the first source #GstBuffer to append.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="buf2" transfer-ownership="full">
- <doc xml:space="preserve">the second source #GstBuffer to append.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="append_memory" c:identifier="gst_buffer_append_memory">
- <doc xml:space="preserve">Append the memory block @mem to @buffer. This function takes
- ownership of @mem and thus doesn't increase its refcount.
- This function is identical to gst_buffer_insert_memory() with an index of -1.
- See gst_buffer_insert_memory() for more details.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="mem" transfer-ownership="full">
- <doc xml:space="preserve">a #GstMemory.</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- </parameters>
- </method>
- <method name="append_region" c:identifier="gst_buffer_append_region">
- <doc xml:space="preserve">Append @size bytes at @offset from @buf2 to @buf1. The result buffer will
- contain a concatenation of the memory of @buf1 and the requested region of
- @buf2.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstBuffer that contains the memory
- of the two source buffers.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="buf1" transfer-ownership="full">
- <doc xml:space="preserve">the first source #GstBuffer to append.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="buf2" transfer-ownership="full">
- <doc xml:space="preserve">the second source #GstBuffer to append.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">the offset in @buf2</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size or -1 of @buf2</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- </parameters>
- </method>
- <method name="copy_deep"
- c:identifier="gst_buffer_copy_deep"
- version="1.6">
- <doc xml:space="preserve">Create a copy of the given buffer. This will make a newly allocated
- copy of the data the source buffer contains.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new copy of @buf.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="buf" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="const GstBuffer*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="copy_into" c:identifier="gst_buffer_copy_into">
- <doc xml:space="preserve">Copies the information from @src into @dest.
- If @dest already contains memory and @flags contains GST_BUFFER_COPY_MEMORY,
- the memory from @src will be appended to @dest.
- @flags indicate which fields will be copied.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the copying succeeded, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">a destination #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">a source #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags indicating what metadata fields should be copied.</doc>
- <type name="BufferCopyFlags" c:type="GstBufferCopyFlags"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">offset to copy from</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">total size to copy. If -1, all data is copied.</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <method name="copy_region" c:identifier="gst_buffer_copy_region">
- <doc xml:space="preserve">Creates a sub-buffer from @parent at @offset and @size.
- This sub-buffer uses the actual memory space of the parent buffer.
- This function will copy the offset and timestamp fields when the
- offset is 0. If not, they will be set to #GST_CLOCK_TIME_NONE and
- #GST_BUFFER_OFFSET_NONE.
- If @offset equals 0 and @size equals the total size of @buffer, the
- duration and offset end fields are also copied. If not they will be set
- to #GST_CLOCK_TIME_NONE and #GST_BUFFER_OFFSET_NONE.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstBuffer or %NULL if the arguments were
- invalid.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">the #GstBufferCopyFlags</doc>
- <type name="BufferCopyFlags" c:type="GstBufferCopyFlags"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">the offset into parent #GstBuffer at which the new sub-buffer
- begins.</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size of the new #GstBuffer sub-buffer, in bytes. If -1, all
- data is copied.</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <method name="extract" c:identifier="gst_buffer_extract">
- <doc xml:space="preserve">Copy @size bytes starting from @offset in @buffer to @dest.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The amount of bytes extracted. This value can be lower than @size
- when @buffer did not contain enough data.</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">the offset to extract</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="dest"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the destination address</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size to extract</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <method name="extract_dup"
- c:identifier="gst_buffer_extract_dup"
- version="1.0.10">
- <doc xml:space="preserve">Extracts a copy of at most @size bytes the data at @offset into
- newly-allocated memory. @dest must be freed using g_free() when done.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">the offset to extract</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size to extract</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="dest"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer where
- the destination array will be written.</doc>
- <array length="3" zero-terminated="0" c:type="gpointer*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="dest_size"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A location where the size of @dest can be written</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </method>
- <method name="fill" c:identifier="gst_buffer_fill">
- <doc xml:space="preserve">Copy @size bytes from @src to @buffer at @offset.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The amount of bytes copied. This value can be lower than @size
- when @buffer did not contain enough data.</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">the offset to fill</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">the source address</doc>
- <array length="2" zero-terminated="0" c:type="gconstpointer">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size to fill</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <method name="find_memory" c:identifier="gst_buffer_find_memory">
- <doc xml:space="preserve">Find the memory blocks that span @size bytes starting from @offset
- in @buffer.
- When this function returns %TRUE, @idx will contain the index of the first
- memory block where the byte for @offset can be found and @length contains the
- number of memory blocks containing the @size remaining bytes. @skip contains
- the number of bytes to skip in the memory block at @idx to get to the byte
- for @offset.
- @size can be -1 to get all the memory blocks after @idx.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE when @size bytes starting from @offset could be found in
- @buffer and @idx, @length and @skip will be filled.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">an offset</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">a size</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="idx"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">pointer to index</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="length"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">pointer to length</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="skip"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">pointer to skip</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </method>
- <method name="foreach_meta" c:identifier="gst_buffer_foreach_meta">
- <doc xml:space="preserve">Call @func with @user_data for each meta in @buffer.
- @func can modify the passed meta pointer or its contents. The return value
- of @func define if this function returns or if the remaining metadata items
- in the buffer should be skipped.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE when @func returned %FALSE for one of the metadata.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="1">
- <doc xml:space="preserve">a #GstBufferForeachMetaFunc to call</doc>
- <type name="BufferForeachMetaFunc"
- c:type="GstBufferForeachMetaFunc"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @func</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_all_memory" c:identifier="gst_buffer_get_all_memory">
- <doc xml:space="preserve">Get all the memory block in @buffer. The memory blocks will be merged
- into one large #GstMemory.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstMemory that contains the merged memory.
- Use gst_memory_unref () after usage.</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_memory" c:identifier="gst_buffer_get_memory">
- <doc xml:space="preserve">Get the memory block at index @idx in @buffer.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstMemory that contains the data of the
- memory block at @idx. Use gst_memory_unref () after usage.</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">an index</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_memory_range"
- c:identifier="gst_buffer_get_memory_range">
- <doc xml:space="preserve">Get @length memory blocks in @buffer starting at @idx. The memory blocks will
- be merged into one large #GstMemory.
- If @length is -1, all memory starting from @idx is merged.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstMemory that contains the merged data of @length
- blocks starting at @idx. Use gst_memory_unref () after usage.</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">an index</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">a length</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_meta" c:identifier="gst_buffer_get_meta">
- <doc xml:space="preserve">Get the metadata for @api on buffer. When there is no such metadata, %NULL is
- returned. If multiple metadata with the given @api are attached to this
- buffer only the first one is returned. To handle multiple metadata with a
- given API use gst_buffer_iterate_meta() or gst_buffer_foreach_meta() instead
- and check the meta->info.api member for the API type.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the metadata for @api on
- @buffer.</doc>
- <type name="Meta" c:type="GstMeta*"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="api" transfer-ownership="none">
- <doc xml:space="preserve">the #GType of an API</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_size" c:identifier="gst_buffer_get_size">
- <doc xml:space="preserve">Get the total size of the memory blocks in @buffer.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">total size of the memory blocks in @buffer.</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_sizes" c:identifier="gst_buffer_get_sizes">
- <doc xml:space="preserve">Get the total size of the memory blocks in @b.
- When not %NULL, @offset will contain the offset of the data in the
- first memory block in @buffer and @maxsize will contain the sum of
- the size and @offset and the amount of extra padding on the last
- memory block. @offset and @maxsize can be used to resize the
- buffer memory blocks with gst_buffer_resize().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">total size of the memory blocks in @buffer.</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="offset"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to the offset</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="maxsize"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to the maxsize</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_sizes_range" c:identifier="gst_buffer_get_sizes_range">
- <doc xml:space="preserve">Get the total size of @length memory blocks stating from @idx in @buffer.
- When not %NULL, @offset will contain the offset of the data in the
- memory block in @buffer at @idx and @maxsize will contain the sum of the size
- and @offset and the amount of extra padding on the memory block at @idx +
- @length -1.
- @offset and @maxsize can be used to resize the buffer memory blocks with
- gst_buffer_resize_range().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">total size of @length memory blocks starting at @idx in @buffer.</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">an index</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">a length</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="offset"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to the offset</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="maxsize"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to the maxsize</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </method>
- <method name="insert_memory" c:identifier="gst_buffer_insert_memory">
- <doc xml:space="preserve">Insert the memory block @mem to @buffer at @idx. This function takes ownership
- of @mem and thus doesn't increase its refcount.
- Only gst_buffer_get_max_memory() can be added to a buffer. If more memory is
- added, existing memory blocks will automatically be merged to make room for
- the new memory.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">the index to add the memory at, or -1 to append it to the end</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="mem" transfer-ownership="full">
- <doc xml:space="preserve">a #GstMemory.</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_all_memory_writable"
- c:identifier="gst_buffer_is_all_memory_writable"
- version="1.4">
- <doc xml:space="preserve">Check if all memory blocks in @buffer are writable.
- Note that this function does not check if @buffer is writable, use
- gst_buffer_is_writable() to check that if needed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if all memory blocks in @buffer are writable</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_memory_range_writable"
- c:identifier="gst_buffer_is_memory_range_writable"
- version="1.4">
- <doc xml:space="preserve">Check if @length memory blocks in @buffer starting from @idx are writable.
- @length can be -1 to check all the memory blocks after @idx.
- Note that this function does not check if @buffer is writable, use
- gst_buffer_is_writable() to check that if needed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the memory range is writable</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">an index</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">a length should not be 0</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="iterate_meta" c:identifier="gst_buffer_iterate_meta">
- <doc xml:space="preserve">Retrieve the next #GstMeta after @current. If @state points
- to %NULL, the first metadata is returned.
- @state will be updated with an opaque state pointer</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">The next #GstMeta or %NULL
- when there are no more items.</doc>
- <type name="Meta" c:type="GstMeta*"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="state"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an opaque state pointer</doc>
- <type name="gpointer" c:type="gpointer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="map" c:identifier="gst_buffer_map">
- <doc xml:space="preserve">This function fills @info with the #GstMapInfo of all merged memory
- blocks in @buffer.
- @flags describe the desired access of the memory. When @flags is
- #GST_MAP_WRITE, @buffer should be writable (as returned from
- gst_buffer_is_writable()).
- When @buffer is writable but the memory isn't, a writable copy will
- automatically be created and returned. The readonly copy of the
- buffer memory will then also be replaced with this writable copy.
- The memory in @info should be unmapped with gst_buffer_unmap() after
- usage.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the map succeeded and @info contains valid data.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="info"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">info about the mapping</doc>
- <type name="MapInfo" c:type="GstMapInfo*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags for the mapping</doc>
- <type name="MapFlags" c:type="GstMapFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="map_range" c:identifier="gst_buffer_map_range">
- <doc xml:space="preserve">This function fills @info with the #GstMapInfo of @length merged memory blocks
- starting at @idx in @buffer. When @length is -1, all memory blocks starting
- from @idx are merged and mapped.
- @flags describe the desired access of the memory. When @flags is
- #GST_MAP_WRITE, @buffer should be writable (as returned from
- gst_buffer_is_writable()).
- When @buffer is writable but the memory isn't, a writable copy will
- automatically be created and returned. The readonly copy of the buffer memory
- will then also be replaced with this writable copy.
- The memory in @info should be unmapped with gst_buffer_unmap() after usage.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the map succeeded and @info contains valid
- data.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">an index</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">a length</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="info"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">info about the mapping</doc>
- <type name="MapInfo" c:type="GstMapInfo*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags for the mapping</doc>
- <type name="MapFlags" c:type="GstMapFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="memcmp" c:identifier="gst_buffer_memcmp">
- <doc xml:space="preserve">Compare @size bytes starting from @offset in @buffer with the memory in @mem.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">0 if the memory is equal.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">the offset in @buffer</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="mem" transfer-ownership="none">
- <doc xml:space="preserve">the memory to compare</doc>
- <array length="2" zero-terminated="0" c:type="gconstpointer">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size to compare</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <method name="memset" c:identifier="gst_buffer_memset">
- <doc xml:space="preserve">Fill @buf with @size bytes with @val starting from @offset.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The amount of bytes filled. This value can be lower than @size
- when @buffer did not contain enough data.</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">the offset in @buffer</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="val" transfer-ownership="none">
- <doc xml:space="preserve">the value to set</doc>
- <type name="guint8" c:type="guint8"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size to set</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <method name="n_memory" c:identifier="gst_buffer_n_memory">
- <doc xml:space="preserve">Get the amount of memory blocks that this buffer has. This amount is never
- larger than what gst_buffer_get_max_memory() returns.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the amount of memory block in this buffer.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="peek_memory" c:identifier="gst_buffer_peek_memory">
- <doc xml:space="preserve">Get the memory block at @idx in @buffer. The memory block stays valid until
- the memory block in @buffer is removed, replaced or merged, typically with
- any call that modifies the memory in @buffer.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstMemory at @idx.</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">an index</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="prepend_memory" c:identifier="gst_buffer_prepend_memory">
- <doc xml:space="preserve">Prepend the memory block @mem to @buffer. This function takes
- ownership of @mem and thus doesn't increase its refcount.
- This function is identical to gst_buffer_insert_memory() with an index of 0.
- See gst_buffer_insert_memory() for more details.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="mem" transfer-ownership="full">
- <doc xml:space="preserve">a #GstMemory.</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_all_memory"
- c:identifier="gst_buffer_remove_all_memory">
- <doc xml:space="preserve">Remove all the memory blocks in @buffer.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="remove_memory" c:identifier="gst_buffer_remove_memory">
- <doc xml:space="preserve">Remove the memory block in @b at index @i.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">an index</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_memory_range"
- c:identifier="gst_buffer_remove_memory_range">
- <doc xml:space="preserve">Remove @length memory blocks in @buffer starting from @idx.
- @length can be -1, in which case all memory starting from @idx is removed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">an index</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">a length</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_meta" c:identifier="gst_buffer_remove_meta">
- <doc xml:space="preserve">Remove the metadata for @meta on @buffer.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the metadata existed and was removed, %FALSE if no such
- metadata was on @buffer.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="meta" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMeta</doc>
- <type name="Meta" c:type="GstMeta*"/>
- </parameter>
- </parameters>
- </method>
- <method name="replace_all_memory"
- c:identifier="gst_buffer_replace_all_memory">
- <doc xml:space="preserve">Replaces all memory in @buffer with @mem.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="mem" transfer-ownership="full">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- </parameters>
- </method>
- <method name="replace_memory" c:identifier="gst_buffer_replace_memory">
- <doc xml:space="preserve">Replaces the memory block at index @idx in @buffer with @mem.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">an index</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="mem" transfer-ownership="full">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- </parameters>
- </method>
- <method name="replace_memory_range"
- c:identifier="gst_buffer_replace_memory_range">
- <doc xml:space="preserve">Replaces @length memory blocks in @buffer starting at @idx with @mem.
- If @length is -1, all memory starting from @idx will be removed and
- replaced with @mem.
- @buffer should be writable.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">an index</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">a length should not be 0</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="mem" transfer-ownership="full">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- </parameters>
- </method>
- <method name="resize" c:identifier="gst_buffer_resize">
- <doc xml:space="preserve">Set the offset and total size of the memory blocks in @buffer.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">the offset adjustment</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the new size or -1 to just adjust the offset</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- </parameters>
- </method>
- <method name="resize_range" c:identifier="gst_buffer_resize_range">
- <doc xml:space="preserve">Set the total size of the @length memory blocks starting at @idx in
- @buffer</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if resizing succeeded, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">an index</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">a length</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">the offset adjustment</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the new size or -1 to just adjust the offset</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_size" c:identifier="gst_buffer_set_size">
- <doc xml:space="preserve">Set the total size of the memory blocks in @buffer.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the new size</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- </parameters>
- </method>
- <method name="unmap" c:identifier="gst_buffer_unmap">
- <doc xml:space="preserve">Release the memory previously mapped with gst_buffer_map().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </instance-parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMapInfo</doc>
- <type name="MapInfo" c:type="GstMapInfo*"/>
- </parameter>
- </parameters>
- </method>
- <function name="get_max_memory"
- c:identifier="gst_buffer_get_max_memory"
- version="1.2">
- <doc xml:space="preserve">Get the maximum amount of memory blocks that a buffer can hold. This is a
- compile time constant that can be queried with the function.
- When more memory blocks are added, existing memory blocks will be merged
- together to make room for the new block.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the maximum amount of memory blocks that a buffer can hold.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- </function>
- </record>
- <bitfield name="BufferCopyFlags"
- glib:type-name="GstBufferCopyFlags"
- glib:get-type="gst_buffer_copy_flags_get_type"
- c:type="GstBufferCopyFlags">
- <doc xml:space="preserve">A set of flags that can be provided to the gst_buffer_copy_into()
- function to specify which items should be copied.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_BUFFER_COPY_NONE"
- glib:nick="none">
- <doc xml:space="preserve">copy nothing</doc>
- </member>
- <member name="flags"
- value="1"
- c:identifier="GST_BUFFER_COPY_FLAGS"
- glib:nick="flags">
- <doc xml:space="preserve">flag indicating that buffer flags should be copied</doc>
- </member>
- <member name="timestamps"
- value="2"
- c:identifier="GST_BUFFER_COPY_TIMESTAMPS"
- glib:nick="timestamps">
- <doc xml:space="preserve">flag indicating that buffer pts, dts,
- duration, offset and offset_end should be copied</doc>
- </member>
- <member name="meta"
- value="4"
- c:identifier="GST_BUFFER_COPY_META"
- glib:nick="meta">
- <doc xml:space="preserve">flag indicating that buffer meta should be
- copied</doc>
- </member>
- <member name="memory"
- value="8"
- c:identifier="GST_BUFFER_COPY_MEMORY"
- glib:nick="memory">
- <doc xml:space="preserve">flag indicating that buffer memory should be reffed
- and appended to already existing memory. Unless the memory is marked as
- NO_SHARE, no actual copy of the memory is made but it is simply reffed.
- Add @GST_BUFFER_COPY_DEEP to force a real copy.</doc>
- </member>
- <member name="merge"
- value="16"
- c:identifier="GST_BUFFER_COPY_MERGE"
- glib:nick="merge">
- <doc xml:space="preserve">flag indicating that buffer memory should be
- merged</doc>
- </member>
- <member name="deep"
- value="32"
- c:identifier="GST_BUFFER_COPY_DEEP"
- glib:nick="deep">
- <doc xml:space="preserve">flag indicating that memory should always be
- copied instead of reffed (Since 1.2)</doc>
- </member>
- </bitfield>
- <bitfield name="BufferFlags"
- glib:type-name="GstBufferFlags"
- glib:get-type="gst_buffer_flags_get_type"
- c:type="GstBufferFlags">
- <doc xml:space="preserve">A set of buffer flags used to describe properties of a #GstBuffer.</doc>
- <member name="live"
- value="16"
- c:identifier="GST_BUFFER_FLAG_LIVE"
- glib:nick="live">
- <doc xml:space="preserve">the buffer is live data and should be discarded in
- the PAUSED state.</doc>
- </member>
- <member name="decode_only"
- value="32"
- c:identifier="GST_BUFFER_FLAG_DECODE_ONLY"
- glib:nick="decode-only">
- <doc xml:space="preserve">the buffer contains data that should be dropped
- because it will be clipped against the segment
- boundaries or because it does not contain data
- that should be shown to the user.</doc>
- </member>
- <member name="discont"
- value="64"
- c:identifier="GST_BUFFER_FLAG_DISCONT"
- glib:nick="discont">
- <doc xml:space="preserve">the buffer marks a data discontinuity in the stream.
- This typically occurs after a seek or a dropped buffer
- from a live or network source.</doc>
- </member>
- <member name="resync"
- value="128"
- c:identifier="GST_BUFFER_FLAG_RESYNC"
- glib:nick="resync">
- <doc xml:space="preserve">the buffer timestamps might have a discontinuity
- and this buffer is a good point to resynchronize.</doc>
- </member>
- <member name="corrupted"
- value="256"
- c:identifier="GST_BUFFER_FLAG_CORRUPTED"
- glib:nick="corrupted">
- <doc xml:space="preserve">the buffer data is corrupted.</doc>
- </member>
- <member name="marker"
- value="512"
- c:identifier="GST_BUFFER_FLAG_MARKER"
- glib:nick="marker">
- <doc xml:space="preserve">the buffer contains a media specific marker. for
- video this is typically the end of a frame boundary, for audio
- this is usually the start of a talkspurt.</doc>
- </member>
- <member name="header"
- value="1024"
- c:identifier="GST_BUFFER_FLAG_HEADER"
- glib:nick="header">
- <doc xml:space="preserve">the buffer contains header information that is
- needed to decode the following data.</doc>
- </member>
- <member name="gap"
- value="2048"
- c:identifier="GST_BUFFER_FLAG_GAP"
- glib:nick="gap">
- <doc xml:space="preserve">the buffer has been created to fill a gap in the
- stream and contains media neutral data (elements can
- switch to optimized code path that ignores the buffer
- content).</doc>
- </member>
- <member name="droppable"
- value="4096"
- c:identifier="GST_BUFFER_FLAG_DROPPABLE"
- glib:nick="droppable">
- <doc xml:space="preserve">the buffer can be dropped without breaking the
- stream, for example to reduce bandwidth.</doc>
- </member>
- <member name="delta_unit"
- value="8192"
- c:identifier="GST_BUFFER_FLAG_DELTA_UNIT"
- glib:nick="delta-unit">
- <doc xml:space="preserve">this unit cannot be decoded independently.</doc>
- </member>
- <member name="tag_memory"
- value="16384"
- c:identifier="GST_BUFFER_FLAG_TAG_MEMORY"
- glib:nick="tag-memory">
- <doc xml:space="preserve">this flag is set when memory of the buffer
- is added/removed</doc>
- </member>
- <member name="sync_after"
- value="32768"
- c:identifier="GST_BUFFER_FLAG_SYNC_AFTER"
- glib:nick="sync-after">
- <doc xml:space="preserve">Elements which write to disk or permanent
- storage should ensure the data is synced after
- writing the contents of this buffer. (Since 1.6)</doc>
- </member>
- <member name="last"
- value="1048576"
- c:identifier="GST_BUFFER_FLAG_LAST"
- glib:nick="last">
- <doc xml:space="preserve">additional media specific flags can be added starting from
- this flag.</doc>
- </member>
- </bitfield>
- <callback name="BufferForeachMetaFunc" c:type="GstBufferForeachMetaFunc">
- <doc xml:space="preserve">A function that will be called from gst_buffer_foreach_meta(). The @meta
- field will point to a the reference of the meta.
- @buffer should not be modified from this callback.
- When this function returns %TRUE, the next meta will be
- returned. When %FALSE is returned, gst_buffer_foreach_meta() will return.
- When @meta is set to %NULL, the item will be removed from the buffer.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE when gst_buffer_foreach_meta() should stop</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="meta"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- nullable="1">
- <doc xml:space="preserve">a pointer to a #GstMeta</doc>
- <type name="Meta" c:type="GstMeta**"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data passed to gst_buffer_foreach_meta()</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <record name="BufferList"
- c:type="GstBufferList"
- glib:type-name="GstBufferList"
- glib:get-type="gst_buffer_list_get_type"
- c:symbol-prefix="buffer_list">
- <doc xml:space="preserve">Buffer lists are an object containing a list of buffers.
- Buffer lists are created with gst_buffer_list_new() and filled with data
- using a gst_buffer_list_insert().
- Buffer lists can be pushed on a srcpad with gst_pad_push_list(). This is
- interesting when multiple buffers need to be pushed in one go because it
- can reduce the amount of overhead for pushing each buffer individually.</doc>
- <constructor name="new" c:identifier="gst_buffer_list_new">
- <doc xml:space="preserve">Creates a new, empty #GstBufferList. The caller is responsible for unreffing
- the returned #GstBufferList.
- Free-function: gst_buffer_list_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstBufferList. gst_buffer_list_unref()
- after usage.</doc>
- <type name="BufferList" c:type="GstBufferList*"/>
- </return-value>
- </constructor>
- <constructor name="new_sized" c:identifier="gst_buffer_list_new_sized">
- <doc xml:space="preserve">Creates a new, empty #GstBufferList. The caller is responsible for unreffing
- the returned #GstBufferList. The list will have @size space preallocated so
- that memory reallocations can be avoided.
- Free-function: gst_buffer_list_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstBufferList. gst_buffer_list_unref()
- after usage.</doc>
- <type name="BufferList" c:type="GstBufferList*"/>
- </return-value>
- <parameters>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">an initial reserved size</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="copy_deep"
- c:identifier="gst_buffer_list_copy_deep"
- version="1.6">
- <doc xml:space="preserve">Create a copy of the given buffer list. This will make a newly allocated
- copy of the buffer that the source buffer list contains.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new copy of @list.</doc>
- <type name="BufferList" c:type="GstBufferList*"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferList</doc>
- <type name="BufferList" c:type="const GstBufferList*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="foreach" c:identifier="gst_buffer_list_foreach">
- <doc xml:space="preserve">Call @func with @data for each buffer in @list.
- @func can modify the passed buffer pointer or its contents. The return value
- of @func define if this function returns or if the remaining buffers in
- the list should be skipped.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE when @func returned %TRUE for each buffer in @list or when
- @list is empty.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferList</doc>
- <type name="BufferList" c:type="GstBufferList*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="1">
- <doc xml:space="preserve">a #GstBufferListFunc to call</doc>
- <type name="BufferListFunc" c:type="GstBufferListFunc"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @func</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="get" c:identifier="gst_buffer_list_get">
- <doc xml:space="preserve">Get the buffer at @idx.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the buffer at @idx in @group
- or %NULL when there is no buffer. The buffer remains valid as
- long as @list is valid and buffer is not removed from the list.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferList</doc>
- <type name="BufferList" c:type="GstBufferList*"/>
- </instance-parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">the index</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="insert" c:identifier="gst_buffer_list_insert">
- <doc xml:space="preserve">Insert @buffer at @idx in @list. Other buffers are moved to make room for
- this new buffer.
- A -1 value for @idx will append the buffer at the end.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferList</doc>
- <type name="BufferList" c:type="GstBufferList*"/>
- </instance-parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">the index</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="full">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="length" c:identifier="gst_buffer_list_length">
- <doc xml:space="preserve">Returns the number of buffers in @list.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of buffers in the buffer list</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferList</doc>
- <type name="BufferList" c:type="GstBufferList*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="remove" c:identifier="gst_buffer_list_remove">
- <doc xml:space="preserve">Remove @length buffers starting from @idx in @list. The following buffers
- are moved to close the gap.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferList</doc>
- <type name="BufferList" c:type="GstBufferList*"/>
- </instance-parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">the index</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">the amount to remove</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <callback name="BufferListFunc" c:type="GstBufferListFunc">
- <doc xml:space="preserve">A function that will be called from gst_buffer_list_foreach(). The @buffer
- field will point to a the reference of the buffer at @idx.
- When this function returns %TRUE, the next buffer will be
- returned. When %FALSE is returned, gst_buffer_list_foreach() will return.
- When @buffer is set to %NULL, the item will be removed from the bufferlist.
- When @buffer has been made writable, the new buffer reference can be assigned
- to @buffer. This function is responsible for unreffing the old buffer when
- removing or modifying.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE when gst_buffer_list_foreach() should stop</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="buffer"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- nullable="1">
- <doc xml:space="preserve">pointer the buffer</doc>
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">the index of @buffer</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data passed to gst_buffer_list_foreach()</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <class name="BufferPool"
- c:symbol-prefix="buffer_pool"
- c:type="GstBufferPool"
- parent="Object"
- glib:type-name="GstBufferPool"
- glib:get-type="gst_buffer_pool_get_type"
- glib:type-struct="BufferPoolClass">
- <doc xml:space="preserve">A #GstBufferPool is an object that can be used to pre-allocate and recycle
- buffers of the same size and with the same properties.
- A #GstBufferPool is created with gst_buffer_pool_new().
- Once a pool is created, it needs to be configured. A call to
- gst_buffer_pool_get_config() returns the current configuration structure from
- the pool. With gst_buffer_pool_config_set_params() and
- gst_buffer_pool_config_set_allocator() the bufferpool parameters and
- allocator can be configured. Other properties can be configured in the pool
- depending on the pool implementation.
- A bufferpool can have extra options that can be enabled with
- gst_buffer_pool_config_add_option(). The available options can be retrieved
- with gst_buffer_pool_get_options(). Some options allow for additional
- configuration properties to be set.
- After the configuration structure has been configured,
- gst_buffer_pool_set_config() updates the configuration in the pool. This can
- fail when the configuration structure is not accepted.
- After the a pool has been configured, it can be activated with
- gst_buffer_pool_set_active(). This will preallocate the configured resources
- in the pool.
- When the pool is active, gst_buffer_pool_acquire_buffer() can be used to
- retrieve a buffer from the pool.
- Buffers allocated from a bufferpool will automatically be returned to the
- pool with gst_buffer_pool_release_buffer() when their refcount drops to 0.
- The bufferpool can be deactivated again with gst_buffer_pool_set_active().
- All further gst_buffer_pool_acquire_buffer() calls will return an error. When
- all buffers are returned to the pool they will be freed.
- Use gst_object_unref() to release the reference to a bufferpool. If the
- refcount of the pool reaches 0, the pool will be freed.</doc>
- <constructor name="new" c:identifier="gst_buffer_pool_new">
- <doc xml:space="preserve">Creates a new #GstBufferPool instance.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a new #GstBufferPool instance</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </return-value>
- </constructor>
- <function name="config_add_option"
- c:identifier="gst_buffer_pool_config_add_option">
- <doc xml:space="preserve">Enabled the option in @config. This will instruct the @bufferpool to enable
- the specified option on the buffers that it allocates.
- The supported options by @pool can be retrieved with gst_buffer_pool_get_options().</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 #GstBufferPool configuration</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="option" transfer-ownership="none">
- <doc xml:space="preserve">an option to add</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="config_get_allocator"
- c:identifier="gst_buffer_pool_config_get_allocator">
- <doc xml:space="preserve">Get the @allocator and @params from @config.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if the values are set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="config" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool configuration</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="allocator"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstAllocator, or %NULL</doc>
- <type name="Allocator" c:type="GstAllocator**"/>
- </parameter>
- <parameter name="params"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">#GstAllocationParams, or %NULL</doc>
- <type name="AllocationParams" c:type="GstAllocationParams*"/>
- </parameter>
- </parameters>
- </function>
- <function name="config_get_option"
- c:identifier="gst_buffer_pool_config_get_option">
- <doc xml:space="preserve">Parse an available @config and get the option at @index of the options API
- array.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gchar of the option at @index.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="config" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool configuration</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">position in the option array to read</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="config_get_params"
- c:identifier="gst_buffer_pool_config_get_params">
- <doc xml:space="preserve">Get the configuration values from @config.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if all parameters could be fetched.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="config" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool configuration</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="caps"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the caps of buffers</doc>
- <type name="Caps" c:type="GstCaps**"/>
- </parameter>
- <parameter name="size"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the size of each buffer, not including prefix and padding</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="min_buffers"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the minimum amount of buffers to allocate.</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="max_buffers"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the maximum amount of buffers to allocate or 0 for unlimited.</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="config_has_option"
- c:identifier="gst_buffer_pool_config_has_option">
- <doc xml:space="preserve">Check if @config contains @option.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the options array contains @option.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="config" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool configuration</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="option" transfer-ownership="none">
- <doc xml:space="preserve">an option</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="config_n_options"
- c:identifier="gst_buffer_pool_config_n_options">
- <doc xml:space="preserve">Retrieve the number of values currently stored in the options array of the
- @config structure.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the options array size as a #guint.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="config" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool configuration</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </function>
- <function name="config_set_allocator"
- c:identifier="gst_buffer_pool_config_set_allocator">
- <doc xml:space="preserve">Set the @allocator and @params on @config.
- One of @allocator and @params can be %NULL, but not both. When @allocator
- is %NULL, the default allocator of the pool will use the values in @param
- to perform its allocation. When @param is %NULL, the pool will use the
- provided @allocator with its default #GstAllocationParams.
- A call to gst_buffer_pool_set_config() can update the allocator and params
- with the values that it is able to do. Some pools are, for example, not able
- to operate with different allocators or cannot allocate with the values
- specified in @params. Use gst_buffer_pool_get_config() to get the currently
- used values.</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 #GstBufferPool configuration</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="allocator"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstAllocator</doc>
- <type name="Allocator" c:type="GstAllocator*"/>
- </parameter>
- <parameter name="params"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GstAllocationParams</doc>
- <type name="AllocationParams" c:type="const GstAllocationParams*"/>
- </parameter>
- </parameters>
- </function>
- <function name="config_set_params"
- c:identifier="gst_buffer_pool_config_set_params">
- <doc xml:space="preserve">Configure @config with the given parameters.</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 #GstBufferPool configuration</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">caps for the buffers</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size of each buffer, not including prefix and padding</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="min_buffers" transfer-ownership="none">
- <doc xml:space="preserve">the minimum amount of buffers to allocate.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="max_buffers" transfer-ownership="none">
- <doc xml:space="preserve">the maximum amount of buffers to allocate or 0 for unlimited.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="config_validate_params"
- c:identifier="gst_buffer_pool_config_validate_params"
- version="1.4">
- <doc xml:space="preserve">Validate that changes made to @config are still valid in the context of the
- expected parameters. This function is a helper that can be used to validate
- changes made by a pool to a config when gst_buffer_pool_set_config()
- returns %FALSE. This expects that @caps haven't changed and that
- @min_buffers aren't lower then what we initially expected.
- This does not check if options or allocator parameters are still valid,
- won't check if size have changed, since changing the size is valid to adapt
- padding.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if the parameters are valid in this context.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="config" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool configuration</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the excepted caps of buffers</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the expected size of each buffer, not including prefix and padding</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="min_buffers" transfer-ownership="none">
- <doc xml:space="preserve">the expected minimum amount of buffers to allocate.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="max_buffers" transfer-ownership="none">
- <doc xml:space="preserve">the expect maximum amount of buffers to allocate or 0 for unlimited.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="acquire_buffer" invoker="acquire_buffer">
- <doc xml:space="preserve">Acquire a buffer from @pool. @buffer should point to a memory location that
- can hold a pointer to the new buffer.
- @params can be %NULL or contain optional parameters to influence the
- allocation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn such as %GST_FLOW_FLUSHING when the pool is
- inactive.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- <parameter name="buffer"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a location for a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- <parameter name="params"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">parameters.</doc>
- <type name="BufferPoolAcquireParams"
- c:type="GstBufferPoolAcquireParams*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="alloc_buffer">
- <return-value transfer-ownership="none">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- <parameter name="params" transfer-ownership="none">
- <type name="BufferPoolAcquireParams"
- c:type="GstBufferPoolAcquireParams*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="flush_start">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="flush_stop">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="free_buffer">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_options" invoker="get_options">
- <doc xml:space="preserve">Get a %NULL terminated array of string with supported bufferpool options for
- @pool. An option would typically be enabled with
- gst_buffer_pool_config_add_option().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a %NULL terminated array
- of strings.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="release_buffer" invoker="release_buffer">
- <doc xml:space="preserve">Release @buffer to @pool. @buffer should have previously been allocated from
- @pool with gst_buffer_pool_acquire_buffer().
- This function is usually called automatically when the last ref on @buffer
- disappears.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="full">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="reset_buffer">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_config" invoker="set_config">
- <doc xml:space="preserve">Set the configuration of the pool. If the pool is already configured, and
- the configuration haven't change, this function will return %TRUE. If the
- pool is active, this method will return %FALSE and active configuration
- will remain. Buffers allocated form this pool must be returned or else this
- function will do nothing and return %FALSE.
- @config is a #GstStructure that contains the configuration parameters for
- the pool. A default and mandatory set of parameters can be configured with
- gst_buffer_pool_config_set_params(), gst_buffer_pool_config_set_allocator()
- and gst_buffer_pool_config_add_option().
- 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_buffer_pool_get_config().
- This function takes ownership of @config.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE when the configuration could be set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- <parameter name="config" transfer-ownership="full">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </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="pool" transfer-ownership="none">
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </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="pool" transfer-ownership="none">
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="acquire_buffer"
- c:identifier="gst_buffer_pool_acquire_buffer">
- <doc xml:space="preserve">Acquire a buffer from @pool. @buffer should point to a memory location that
- can hold a pointer to the new buffer.
- @params can be %NULL or contain optional parameters to influence the
- allocation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn such as %GST_FLOW_FLUSHING when the pool is
- inactive.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- <parameter name="buffer"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a location for a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- <parameter name="params"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">parameters.</doc>
- <type name="BufferPoolAcquireParams"
- c:type="GstBufferPoolAcquireParams*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_config" c:identifier="gst_buffer_pool_get_config">
- <doc xml:space="preserve">Get a copy of the current configuration of the pool. This configuration
- can either be modified and used for the gst_buffer_pool_set_config() call
- or it must be freed after usage.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a copy of the current configuration of @pool. use
- gst_structure_free() after usage or gst_buffer_pool_set_config().</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_options" c:identifier="gst_buffer_pool_get_options">
- <doc xml:space="preserve">Get a %NULL terminated array of string with supported bufferpool options for
- @pool. An option would typically be enabled with
- gst_buffer_pool_config_add_option().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a %NULL terminated array
- of strings.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_option" c:identifier="gst_buffer_pool_has_option">
- <doc xml:space="preserve">Check if the bufferpool supports @option.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the buffer pool contains @option.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- <parameter name="option" transfer-ownership="none">
- <doc xml:space="preserve">an option</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_active" c:identifier="gst_buffer_pool_is_active">
- <doc xml:space="preserve">Check if @pool is active. A pool can be activated with the
- gst_buffer_pool_set_active() call.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE when the pool is active.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="release_buffer"
- c:identifier="gst_buffer_pool_release_buffer">
- <doc xml:space="preserve">Release @buffer to @pool. @buffer should have previously been allocated from
- @pool with gst_buffer_pool_acquire_buffer().
- This function is usually called automatically when the last ref on @buffer
- disappears.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="full">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_active" c:identifier="gst_buffer_pool_set_active">
- <doc xml:space="preserve">Control the active state of @pool. When the pool is inactive, new calls to
- gst_buffer_pool_acquire_buffer() will return with %GST_FLOW_FLUSHING.
- Activating the bufferpool will preallocate all resources in the pool based on
- the configuration of the pool.
- Deactivating will free the resources again when there are no outstanding
- buffers. When there are outstanding buffers, they will be freed as soon as
- they are all returned to the pool.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE when the pool was not configured or when preallocation of the
- buffers failed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- <parameter name="active" transfer-ownership="none">
- <doc xml:space="preserve">the new active state</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_config" c:identifier="gst_buffer_pool_set_config">
- <doc xml:space="preserve">Set the configuration of the pool. If the pool is already configured, and
- the configuration haven't change, this function will return %TRUE. If the
- pool is active, this method will return %FALSE and active configuration
- will remain. Buffers allocated form this pool must be returned or else this
- function will do nothing and return %FALSE.
- @config is a #GstStructure that contains the configuration parameters for
- the pool. A default and mandatory set of parameters can be configured with
- gst_buffer_pool_config_set_params(), gst_buffer_pool_config_set_allocator()
- and gst_buffer_pool_config_add_option().
- 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_buffer_pool_get_config().
- This function takes ownership of @config.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE when the configuration could be set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- <parameter name="config" transfer-ownership="full">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_flushing"
- c:identifier="gst_buffer_pool_set_flushing"
- version="1.4">
- <doc xml:space="preserve">Enable or disable the flushing state of a @pool without freeing or
- allocating buffers.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </instance-parameter>
- <parameter name="flushing" transfer-ownership="none">
- <doc xml:space="preserve">whether to start or stop flushing</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="flushing">
- <type name="gint" c:type="gint"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="BufferPoolPrivate" c:type="GstBufferPoolPrivate*"/>
- </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>
- <bitfield name="BufferPoolAcquireFlags"
- glib:type-name="GstBufferPoolAcquireFlags"
- glib:get-type="gst_buffer_pool_acquire_flags_get_type"
- c:type="GstBufferPoolAcquireFlags">
- <doc xml:space="preserve">Additional flags to control the allocation of a buffer</doc>
- <member name="none"
- value="0"
- c:identifier="GST_BUFFER_POOL_ACQUIRE_FLAG_NONE"
- glib:nick="none">
- <doc xml:space="preserve">no flags</doc>
- </member>
- <member name="key_unit"
- value="1"
- c:identifier="GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT"
- glib:nick="key-unit">
- <doc xml:space="preserve">buffer is keyframe</doc>
- </member>
- <member name="dontwait"
- value="2"
- c:identifier="GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT"
- glib:nick="dontwait">
- <doc xml:space="preserve">when the bufferpool is empty, acquire_buffer
- will by default block until a buffer is released into the pool again. Setting
- this flag makes acquire_buffer return #GST_FLOW_EOS instead of blocking.</doc>
- </member>
- <member name="discont"
- value="4"
- c:identifier="GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT"
- glib:nick="discont">
- <doc xml:space="preserve">buffer is discont</doc>
- </member>
- <member name="last"
- value="65536"
- c:identifier="GST_BUFFER_POOL_ACQUIRE_FLAG_LAST"
- glib:nick="last">
- <doc xml:space="preserve">last flag, subclasses can use private flags
- starting from this value.</doc>
- </member>
- </bitfield>
- <record name="BufferPoolAcquireParams" c:type="GstBufferPoolAcquireParams">
- <doc xml:space="preserve">Parameters passed to the gst_buffer_pool_acquire_buffer() function to control the
- allocation of the buffer.
- The default implementation ignores the @start and @stop members but other
- implementations can use this extra information to decide what buffer to
- return.</doc>
- <field name="format" writable="1">
- <doc xml:space="preserve">the format of @start and @stop</doc>
- <type name="Format" c:type="GstFormat"/>
- </field>
- <field name="start" writable="1">
- <doc xml:space="preserve">the start position</doc>
- <type name="gint64" c:type="gint64"/>
- </field>
- <field name="stop" writable="1">
- <doc xml:space="preserve">the stop position</doc>
- <type name="gint64" c:type="gint64"/>
- </field>
- <field name="flags" writable="1">
- <doc xml:space="preserve">additional flags</doc>
- <type name="BufferPoolAcquireFlags"
- c:type="GstBufferPoolAcquireFlags"/>
- </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="BufferPoolClass"
- c:type="GstBufferPoolClass"
- glib:is-gtype-struct-for="BufferPool">
- <doc xml:space="preserve">The GstBufferPool class.</doc>
- <field name="object_class">
- <doc xml:space="preserve">Object parent class</doc>
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="get_options">
- <callback name="get_options">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a %NULL terminated array
- of strings.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_config">
- <callback name="set_config">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE when the configuration could be set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </parameter>
- <parameter name="config" transfer-ownership="full">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </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="pool" transfer-ownership="none">
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </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="pool" transfer-ownership="none">
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="acquire_buffer">
- <callback name="acquire_buffer">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn such as %GST_FLOW_FLUSHING when the pool is
- inactive.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </parameter>
- <parameter name="buffer"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a location for a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- <parameter name="params"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">parameters.</doc>
- <type name="BufferPoolAcquireParams"
- c:type="GstBufferPoolAcquireParams*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="alloc_buffer">
- <callback name="alloc_buffer">
- <return-value transfer-ownership="none">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- <parameter name="params" transfer-ownership="none">
- <type name="BufferPoolAcquireParams"
- c:type="GstBufferPoolAcquireParams*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="reset_buffer">
- <callback name="reset_buffer">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="release_buffer">
- <callback name="release_buffer">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="full">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="free_buffer">
- <callback name="free_buffer">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="flush_start">
- <callback name="flush_start">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="flush_stop">
- <callback name="flush_stop">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="2">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <record name="BufferPoolPrivate"
- c:type="GstBufferPoolPrivate"
- disguised="1">
- </record>
- <enumeration name="BufferingMode"
- glib:type-name="GstBufferingMode"
- glib:get-type="gst_buffering_mode_get_type"
- c:type="GstBufferingMode">
- <doc xml:space="preserve">The different types of buffering methods.</doc>
- <member name="stream"
- value="0"
- c:identifier="GST_BUFFERING_STREAM"
- glib:nick="stream">
- <doc xml:space="preserve">a small amount of data is buffered</doc>
- </member>
- <member name="download"
- value="1"
- c:identifier="GST_BUFFERING_DOWNLOAD"
- glib:nick="download">
- <doc xml:space="preserve">the stream is being downloaded</doc>
- </member>
- <member name="timeshift"
- value="2"
- c:identifier="GST_BUFFERING_TIMESHIFT"
- glib:nick="timeshift">
- <doc xml:space="preserve">the stream is being downloaded in a ringbuffer</doc>
- </member>
- <member name="live"
- value="3"
- c:identifier="GST_BUFFERING_LIVE"
- glib:nick="live">
- <doc xml:space="preserve">the stream is a live stream</doc>
- </member>
- </enumeration>
- <class name="Bus"
- c:symbol-prefix="bus"
- c:type="GstBus"
- parent="Object"
- glib:type-name="GstBus"
- glib:get-type="gst_bus_get_type"
- glib:type-struct="BusClass">
- <doc xml:space="preserve">The #GstBus is an object responsible for delivering #GstMessage packets in
- a first-in first-out way from the streaming threads (see #GstTask) to the
- application.
- Since the application typically only wants to deal with delivery of these
- messages from one thread, the GstBus will marshall the messages between
- different threads. This is important since the actual streaming of media
- is done in another thread than the application.
- The GstBus provides support for #GSource based notifications. This makes it
- possible to handle the delivery in the glib mainloop.
- The #GSource callback function gst_bus_async_signal_func() can be used to
- convert all bus messages into signal emissions.
- A message is posted on the bus with the gst_bus_post() method. With the
- gst_bus_peek() and gst_bus_pop() methods one can look at or retrieve a
- previously posted message.
- The bus can be polled with the gst_bus_poll() method. This methods blocks
- up to the specified timeout value until one of the specified messages types
- is posted on the bus. The application can then gst_bus_pop() the messages
- from the bus to handle them.
- Alternatively the application can register an asynchronous bus function
- using gst_bus_add_watch_full() or gst_bus_add_watch(). This function will
- install a #GSource in the default glib main loop and will deliver messages
- a short while after they have been posted. Note that the main loop should
- be running for the asynchronous callbacks.
- It is also possible to get messages from the bus without any thread
- marshalling with the gst_bus_set_sync_handler() method. This makes it
- possible to react to a message in the same thread that posted the
- message on the bus. This should only be used if the application is able
- to deal with messages from different threads.
- Every #GstPipeline has one bus.
- Note that a #GstPipeline will set its bus into flushing state when changing
- from READY to NULL state.</doc>
- <constructor name="new" c:identifier="gst_bus_new">
- <doc xml:space="preserve">Creates a new #GstBus instance.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstBus instance</doc>
- <type name="Bus" c:type="GstBus*"/>
- </return-value>
- </constructor>
- <virtual-method name="message">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="sync_message">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="add_signal_watch" c:identifier="gst_bus_add_signal_watch">
- <doc xml:space="preserve">Adds a bus signal watch to the default main context with the default priority
- (%G_PRIORITY_DEFAULT). It is also possible to use a non-default
- main context set up using g_main_context_push_thread_default() (before
- one had to create a bus watch source and attach it to the desired main
- context 'manually').
- After calling this statement, the bus will emit the "message" signal for each
- message posted on the bus.
- This function may be called multiple times. To clean up, the caller is
- responsible for calling gst_bus_remove_signal_watch() as many times as this
- function is called.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus on which you want to receive the "message" signal</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="add_signal_watch_full"
- c:identifier="gst_bus_add_signal_watch_full">
- <doc xml:space="preserve">Adds a bus signal watch to the default main context with the given @priority
- (e.g. %G_PRIORITY_DEFAULT). It is also possible to use a non-default main
- context set up using g_main_context_push_thread_default()
- (before one had to create a bus watch source and attach it to the desired
- main context 'manually').
- After calling this statement, the bus will emit the "message" signal for each
- message posted on the bus when the main loop is running.
- This function may be called multiple times. To clean up, the caller is
- responsible for calling gst_bus_remove_signal_watch() as many times as this
- function is called.
- There can only be a single bus watch per bus, you must remove any signal
- watch before you can set another type of watch.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus on which you want to receive the "message" signal</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- <parameter name="priority" transfer-ownership="none">
- <doc xml:space="preserve">The priority of the watch.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_watch"
- c:identifier="gst_bus_add_watch"
- shadowed-by="add_watch_full"
- introspectable="0">
- <doc xml:space="preserve">Adds a bus watch to the default main context with the default priority
- (%G_PRIORITY_DEFAULT). It is also possible to use a non-default main
- context set up using g_main_context_push_thread_default() (before
- one had to create a bus watch source and attach it to the desired main
- context 'manually').
- This function is used to receive asynchronous messages in the main loop.
- There can only be a single bus watch per bus, you must remove it before you
- can set a new one.
- The bus watch will only work if a GLib main loop is being run.
- The watch can be removed using gst_bus_remove_watch() or by returning %FALSE
- from @func. If the watch was added to the default main context it is also
- possible to remove the watch using g_source_remove().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The event source id or 0 if @bus already got an event source.
- MT safe.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus to create the watch for</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- <parameter name="func" transfer-ownership="none" closure="1">
- <doc xml:space="preserve">A function to call when a message is received.</doc>
- <type name="BusFunc" c:type="GstBusFunc"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @func.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_watch_full"
- c:identifier="gst_bus_add_watch_full"
- shadows="add_watch">
- <doc xml:space="preserve">Adds a bus watch to the default main context with the given @priority (e.g.
- %G_PRIORITY_DEFAULT). It is also possible to use a non-default main
- context set up using g_main_context_push_thread_default() (before
- one had to create a bus watch source and attach it to the desired main
- context 'manually').
- This function is used to receive asynchronous messages in the main loop.
- There can only be a single bus watch per bus, you must remove it before you
- can set a new one.
- The bus watch will only work if a GLib main loop is being run.
- When @func is called, the message belongs to the caller; if you want to
- keep a copy of it, call gst_message_ref() before leaving @func.
- The watch can be removed using gst_bus_remove_watch() or by returning %FALSE
- from @func. If the watch was added to the default main context it is also
- possible to remove the watch using g_source_remove().
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The event source id or 0 if @bus already got an event source.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus to create the watch for.</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- <parameter name="priority" transfer-ownership="none">
- <doc xml:space="preserve">The priority of the watch.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="notified"
- closure="2"
- destroy="3">
- <doc xml:space="preserve">A function to call when a message is received.</doc>
- <type name="BusFunc" c:type="GstBusFunc"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @func.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">the function to call when the source is removed.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="async_signal_func"
- c:identifier="gst_bus_async_signal_func">
- <doc xml:space="preserve">A helper #GstBusFunc that can be used to convert all asynchronous messages
- into signals.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">the #GstMessage received</doc>
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="create_watch" c:identifier="gst_bus_create_watch">
- <doc xml:space="preserve">Create watch for this bus. The GSource will be dispatched whenever
- a message is on the bus. After the GSource is dispatched, the
- message is popped off the bus and unreffed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSource that can be added to a mainloop.</doc>
- <type name="GLib.Source" c:type="GSource*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus to create the watch for</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="disable_sync_message_emission"
- c:identifier="gst_bus_disable_sync_message_emission">
- <doc xml:space="preserve">Instructs GStreamer to stop emitting the "sync-message" signal for this bus.
- See gst_bus_enable_sync_message_emission() for more information.
- In the event that multiple pieces of code have called
- gst_bus_enable_sync_message_emission(), the sync-message emissions will only
- be stopped after all calls to gst_bus_enable_sync_message_emission() were
- "cancelled" by calling this function. In this way the semantics are exactly
- the same as gst_object_ref() that which calls enable should also call
- disable.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus on which you previously called
- gst_bus_enable_sync_message_emission()</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="enable_sync_message_emission"
- c:identifier="gst_bus_enable_sync_message_emission">
- <doc xml:space="preserve">Instructs GStreamer to emit the "sync-message" signal after running the bus's
- sync handler. This function is here so that code can ensure that they can
- synchronously receive messages without having to affect what the bin's sync
- handler is.
- This function may be called multiple times. To clean up, the caller is
- responsible for calling gst_bus_disable_sync_message_emission() as many times
- as this function is called.
- While this function looks similar to gst_bus_add_signal_watch(), it is not
- exactly the same -- this function enables <emphasis>synchronous</emphasis> emission of
- signals when messages arrive; gst_bus_add_signal_watch() adds an idle callback
- to pop messages off the bus <emphasis>asynchronously</emphasis>. The sync-message signal
- comes from the thread of whatever object posted the message; the "message"
- signal is marshalled to the main thread via the main loop.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus on which you want to receive the "sync-message" signal</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="have_pending" c:identifier="gst_bus_have_pending">
- <doc xml:space="preserve">Check if there are pending messages on the bus that
- should be handled.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if there are messages on the bus to be handled, %FALSE
- otherwise.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus to check</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="peek" c:identifier="gst_bus_peek">
- <doc xml:space="preserve">Peek the message on the top of the bus' queue. The message will remain
- on the bus' message queue. A reference is returned, and needs to be unreffed
- by the caller.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the #GstMessage that is on the
- bus, or %NULL if the bus is empty.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="poll" c:identifier="gst_bus_poll">
- <doc xml:space="preserve">Poll the bus for messages. Will block while waiting for messages to come.
- You can specify a maximum time to poll with the @timeout parameter. If
- @timeout is negative, this function will block indefinitely.
- All messages not in @events will be popped off the bus and will be ignored.
- It is not possible to use message enums beyond #GST_MESSAGE_EXTENDED in the
- @events mask
- Because poll is implemented using the "message" signal enabled by
- gst_bus_add_signal_watch(), calling gst_bus_poll() will cause the "message"
- signal to be emitted for every message that poll sees. Thus a "message"
- signal handler will see the same messages that this function sees -- neither
- will steal messages from the other.
- This function will run a main loop from the default main context when
- polling.
- You should never use this function, since it is pure evil. This is
- especially true for GUI applications based on Gtk+ or Qt, but also for any
- other non-trivial application that uses the GLib main loop. As this function
- runs a GLib main loop, any callback attached to the default GLib main
- context may be invoked. This could be timeouts, GUI events, I/O events etc.;
- even if gst_bus_poll() is called with a 0 timeout. Any of these callbacks
- may do things you do not expect, e.g. destroy the main application window or
- some other resource; change other application state; display a dialog and
- run another main loop until the user clicks it away. In short, using this
- function may add a lot of complexity to your code through unexpected
- re-entrancy and unexpected changes to your application's state.
- For 0 timeouts use gst_bus_pop_filtered() instead of this function; for
- other short timeouts use gst_bus_timed_pop_filtered(); everything else is
- better handled by setting up an asynchronous bus watch and doing things
- from there.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the message that was received,
- or %NULL if the poll timed out. The message is taken from the
- bus and needs to be unreffed with gst_message_unref() after
- usage.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- <parameter name="events" transfer-ownership="none">
- <doc xml:space="preserve">a mask of #GstMessageType, representing the set of message types to
- poll for (note special handling of extended message types below)</doc>
- <type name="MessageType" c:type="GstMessageType"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">the poll timeout, as a #GstClockTime, or #GST_CLOCK_TIME_NONE to poll
- indefinitely.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="pop" c:identifier="gst_bus_pop">
- <doc xml:space="preserve">Get a message from the bus.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the #GstMessage that is on the
- bus, or %NULL if the bus is empty. The message is taken from
- the bus and needs to be unreffed with gst_message_unref() after
- usage.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus to pop</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="pop_filtered" c:identifier="gst_bus_pop_filtered">
- <doc xml:space="preserve">Get a message matching @type from the bus. Will discard all messages on
- the bus that do not match @type and that have been posted before the first
- message that does match @type. If there is no message matching @type on
- the bus, all messages will be discarded. It is not possible to use message
- enums beyond #GST_MESSAGE_EXTENDED in the @events mask.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the next #GstMessage matching
- @type that is on the bus, or %NULL if the bus is empty or there
- is no message matching @type. The message is taken from the bus
- and needs to be unreffed with gst_message_unref() after usage.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus to pop</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- <parameter name="types" transfer-ownership="none">
- <doc xml:space="preserve">message types to take into account</doc>
- <type name="MessageType" c:type="GstMessageType"/>
- </parameter>
- </parameters>
- </method>
- <method name="post" c:identifier="gst_bus_post">
- <doc xml:space="preserve">Post a message on the given bus. Ownership of the message
- is taken by the bus.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the message could be posted, %FALSE if the bus is flushing.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus to post on</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="full">
- <doc xml:space="preserve">the #GstMessage to post</doc>
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_signal_watch"
- c:identifier="gst_bus_remove_signal_watch">
- <doc xml:space="preserve">Removes a signal watch previously added with gst_bus_add_signal_watch().
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus you previously added a signal watch to</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="remove_watch"
- c:identifier="gst_bus_remove_watch"
- version="1.6">
- <doc xml:space="preserve">Removes an installed bus watch from @bus.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success or %FALSE if @bus has no event source.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus to remove the watch from.</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_flushing" c:identifier="gst_bus_set_flushing">
- <doc xml:space="preserve">If @flushing, flush out and unref any messages queued in the bus. Releases
- references to the message origin objects. Will flush future messages until
- gst_bus_set_flushing() sets @flushing to %FALSE.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- <parameter name="flushing" transfer-ownership="none">
- <doc xml:space="preserve">whether or not to flush the bus</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_sync_handler" c:identifier="gst_bus_set_sync_handler">
- <doc xml:space="preserve">Sets the synchronous handler on the bus. The function will be called
- every time a new message is posted on the bus. Note that the function
- will be called in the same thread context as the posting object. This
- function is usually only called by the creator of the bus. Applications
- should handle messages asynchronously using the gst_bus watch and poll
- functions.
- You cannot replace an existing sync_handler. You can pass %NULL to this
- function, which will clear the existing handler.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus to install the handler on</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">The handler function to install</doc>
- <type name="BusSyncHandler" c:type="GstBusSyncHandler"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">User data that will be sent to the handler function.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">called when @user_data becomes unused</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="sync_signal_handler"
- c:identifier="gst_bus_sync_signal_handler">
- <doc xml:space="preserve">A helper GstBusSyncHandler that can be used to convert all synchronous
- messages into signals.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">GST_BUS_PASS</doc>
- <type name="BusSyncReply" c:type="GstBusSyncReply"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">the #GstMessage received</doc>
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="timed_pop" c:identifier="gst_bus_timed_pop">
- <doc xml:space="preserve">Get a message from the bus, waiting up to the specified timeout.
- If @timeout is 0, this function behaves like gst_bus_pop(). If @timeout is
- #GST_CLOCK_TIME_NONE, this function will block forever until a message was
- posted on the bus.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the #GstMessage that is on the
- bus after the specified timeout or %NULL if the bus is empty
- after the timeout expired. The message is taken from the bus
- and needs to be unreffed with gst_message_unref() after usage.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus to pop</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">a timeout</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="timed_pop_filtered"
- c:identifier="gst_bus_timed_pop_filtered">
- <doc xml:space="preserve">Get a message from the bus whose type matches the message type mask @types,
- waiting up to the specified timeout (and discarding any messages that do not
- match the mask provided).
- If @timeout is 0, this function behaves like gst_bus_pop_filtered(). If
- @timeout is #GST_CLOCK_TIME_NONE, this function will block forever until a
- matching message was posted on the bus.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GstMessage matching the
- filter in @types, or %NULL if no matching message was found on
- the bus until the timeout expired. The message is taken from
- the bus and needs to be unreffed with gst_message_unref() after
- usage.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <instance-parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBus to pop from</doc>
- <type name="Bus" c:type="GstBus*"/>
- </instance-parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">a timeout in nanoseconds, or GST_CLOCK_TIME_NONE to wait forever</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="types" transfer-ownership="none">
- <doc xml:space="preserve">message types to take into account, GST_MESSAGE_ANY for any type</doc>
- <type name="MessageType" c:type="GstMessageType"/>
- </parameter>
- </parameters>
- </method>
- <property name="enable-async"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="BusPrivate" c:type="GstBusPrivate*"/>
- </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="message" when="last" detailed="1">
- <doc xml:space="preserve">A message has been posted on the bus. This signal is emitted from a
- GSource added to the mainloop. this signal will only be emitted when
- there is a mainloop running.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">the message that has been posted asynchronously</doc>
- <type name="Message"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="sync-message" when="last" detailed="1">
- <doc xml:space="preserve">A message has been posted on the bus. This signal is emitted from the
- thread that posted the message so one has to be careful with locking.
- This signal will not be emitted by default, you have to call
- gst_bus_enable_sync_message_emission() before.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">the message that has been posted synchronously</doc>
- <type name="Message"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="BusClass"
- c:type="GstBusClass"
- glib:is-gtype-struct-for="Bus">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="message">
- <callback name="message">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bus" transfer-ownership="none">
- <type name="Bus" c:type="GstBus*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="sync_message">
- <callback name="sync_message">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bus" transfer-ownership="none">
- <type name="Bus" c:type="GstBus*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </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="BusFlags"
- glib:type-name="GstBusFlags"
- glib:get-type="gst_bus_flags_get_type"
- c:type="GstBusFlags">
- <doc xml:space="preserve">The standard flags that a bus may have.</doc>
- <member name="flushing"
- value="16"
- c:identifier="GST_BUS_FLUSHING"
- glib:nick="flushing">
- <doc xml:space="preserve">The bus is currently dropping all messages</doc>
- </member>
- <member name="flag_last"
- value="32"
- c:identifier="GST_BUS_FLAG_LAST"
- glib:nick="flag-last">
- <doc xml:space="preserve">offset to define more flags</doc>
- </member>
- </bitfield>
- <callback name="BusFunc" c:type="GstBusFunc">
- <doc xml:space="preserve">Specifies the type of function passed to gst_bus_add_watch() or
- gst_bus_add_watch_full(), which is called from the mainloop when a message
- is available on the bus.
- The message passed to the function will be unreffed after execution of this
- function so it should not be freed in the function.
- Note that this function is used as a GSourceFunc which means that returning
- %FALSE will remove the GSource from the mainloop.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE if the event source should be removed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">the #GstBus that sent the message</doc>
- <type name="Bus" c:type="GstBus*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">the #GstMessage</doc>
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data that has been given, when registering the handler</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <record name="BusPrivate" c:type="GstBusPrivate" disguised="1">
- </record>
- <callback name="BusSyncHandler" c:type="GstBusSyncHandler">
- <doc xml:space="preserve">Handler will be invoked synchronously, when a new message has been injected
- into the bus. This function is mostly used internally. Only one sync handler
- can be attached to a given bus.
- If the handler returns GST_BUS_DROP, it should unref the message, else the
- message should not be unreffed by the sync handler.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#GstBusSyncReply stating what to do with the message</doc>
- <type name="BusSyncReply" c:type="GstBusSyncReply"/>
- </return-value>
- <parameters>
- <parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">the #GstBus that sent the message</doc>
- <type name="Bus" c:type="GstBus*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">the #GstMessage</doc>
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data that has been given, when registering the handler</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="BusSyncReply"
- glib:type-name="GstBusSyncReply"
- glib:get-type="gst_bus_sync_reply_get_type"
- c:type="GstBusSyncReply">
- <doc xml:space="preserve">The result values for a GstBusSyncHandler.</doc>
- <member name="drop"
- value="0"
- c:identifier="GST_BUS_DROP"
- glib:nick="drop">
- <doc xml:space="preserve">drop the message</doc>
- </member>
- <member name="pass"
- value="1"
- c:identifier="GST_BUS_PASS"
- glib:nick="pass">
- <doc xml:space="preserve">pass the message to the async queue</doc>
- </member>
- <member name="async"
- value="2"
- c:identifier="GST_BUS_ASYNC"
- glib:nick="async">
- <doc xml:space="preserve">pass message to async queue, continue if message is handled</doc>
- </member>
- </enumeration>
- <constant name="CAN_INLINE" value="1" c:type="GST_CAN_INLINE">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="CAPS_FEATURE_MEMORY_SYSTEM_MEMORY"
- value="memory:SystemMemory"
- c:type="GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="CLOCK_TIME_NONE"
- value="18446744073709551615"
- c:type="GST_CLOCK_TIME_NONE">
- <doc xml:space="preserve">Constant to define an undefined clock time.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </constant>
- <record name="Caps"
- c:type="GstCaps"
- glib:type-name="GstCaps"
- glib:get-type="gst_caps_get_type"
- c:symbol-prefix="caps">
- <doc xml:space="preserve">Caps (capabilities) are lightweight refcounted objects describing media types.
- They are composed of an array of #GstStructure.
- Caps are exposed on #GstPadTemplate to describe all possible types a
- given pad can handle. They are also stored in the #GstRegistry along with
- a description of the #GstElement.
- Caps are exposed on the element pads using the gst_pad_query_caps() pad
- function. This function describes the possible types that the pad can
- handle or produce at runtime.
- A #GstCaps can be constructed with the following code fragment:
- |[<!-- language="C" -->
- GstCaps *caps = gst_caps_new_simple ("video/x-raw",
- "format", G_TYPE_STRING, "I420",
- "framerate", GST_TYPE_FRACTION, 25, 1,
- "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1,
- "width", G_TYPE_INT, 320,
- "height", G_TYPE_INT, 240,
- NULL);
- ]|
- A #GstCaps is fixed when it has no properties with ranges or lists. Use
- gst_caps_is_fixed() to test for fixed caps. Fixed caps can be used in a
- caps event to notify downstream elements of the current media type.
- Various methods exist to work with the media types such as subtracting
- or intersecting.
- Be aware that the current #GstCaps / #GstStructure serialization into string
- has limited support for nested #GstCaps / #GstStructure fields. It can only
- support one level of nesting. Using more levels will lead to unexpected
- behavior when using serialization features, such as gst_caps_to_string() or
- gst_value_serialize() and their counterparts.</doc>
- <field name="mini_object" writable="1">
- <doc xml:space="preserve">the parent type</doc>
- <type name="MiniObject" c:type="GstMiniObject"/>
- </field>
- <constructor name="new_any" c:identifier="gst_caps_new_any">
- <doc xml:space="preserve">Creates a new #GstCaps that indicates that it is compatible with
- any media format.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </constructor>
- <constructor name="new_empty" c:identifier="gst_caps_new_empty">
- <doc xml:space="preserve">Creates a new #GstCaps that is empty. That is, the returned
- #GstCaps contains no media formats.
- The #GstCaps is guaranteed to be writable.
- Caller is responsible for unreffing the returned caps.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </constructor>
- <constructor name="new_empty_simple"
- c:identifier="gst_caps_new_empty_simple">
- <doc xml:space="preserve">Creates a new #GstCaps that contains one #GstStructure with name
- @media_type.
- Caller is responsible for unreffing the returned caps.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="media_type" transfer-ownership="none">
- <doc xml:space="preserve">the media type of the structure</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_full"
- c:identifier="gst_caps_new_full"
- introspectable="0">
- <doc xml:space="preserve">Creates a new #GstCaps and adds all the structures listed as
- arguments. The list must be %NULL-terminated. The structures
- are not copied; the returned #GstCaps owns the structures.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="struct1" transfer-ownership="none">
- <doc xml:space="preserve">the first structure to add</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">additional structures to add</doc>
- <varargs/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_full_valist"
- c:identifier="gst_caps_new_full_valist"
- introspectable="0">
- <doc xml:space="preserve">Creates a new #GstCaps and adds all the structures listed as
- arguments. The list must be %NULL-terminated. The structures
- are not copied; the returned #GstCaps owns the structures.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">the first structure to add</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="var_args" transfer-ownership="none">
- <doc xml:space="preserve">additional structures to add</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_simple"
- c:identifier="gst_caps_new_simple"
- introspectable="0">
- <doc xml:space="preserve">Creates a new #GstCaps that contains one #GstStructure. The
- structure is defined by the arguments, which have the same format
- as gst_structure_new().
- Caller is responsible for unreffing the returned caps.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="media_type" transfer-ownership="none">
- <doc xml:space="preserve">the media type of the structure</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">first field to set</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">additional arguments</doc>
- <varargs/>
- </parameter>
- </parameters>
- </constructor>
- <method name="append" c:identifier="gst_caps_append">
- <doc xml:space="preserve">Appends the structures contained in @caps2 to @caps1. The structures in
- @caps2 are not copied -- they are transferred to @caps1, and then @caps2 is
- freed. If either caps is ANY, the resulting caps will be ANY.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps1" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps that will be appended to</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="caps2" transfer-ownership="full">
- <doc xml:space="preserve">the #GstCaps to append</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="append_structure" c:identifier="gst_caps_append_structure">
- <doc xml:space="preserve">Appends @structure to @caps. The structure is not copied; @caps
- becomes the owner of @structure.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps that will be appended to</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="structure" transfer-ownership="full">
- <doc xml:space="preserve">the #GstStructure to append</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- <method name="append_structure_full"
- c:identifier="gst_caps_append_structure_full"
- version="1.2">
- <doc xml:space="preserve">Appends @structure with @features to @caps. The structure is not copied; @caps
- becomes the owner of @structure.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps that will be appended to</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="structure" transfer-ownership="full">
- <doc xml:space="preserve">the #GstStructure to append</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="features"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the #GstCapsFeatures to append</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </parameter>
- </parameters>
- </method>
- <method name="can_intersect" c:identifier="gst_caps_can_intersect">
- <doc xml:space="preserve">Tries intersecting @caps1 and @caps2 and reports whether the result would not
- be empty</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if intersection would be not empty</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps1" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps to intersect</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- <parameter name="caps2" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps to intersect</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="copy_nth" c:identifier="gst_caps_copy_nth">
- <doc xml:space="preserve">Creates a new #GstCaps and appends a copy of the nth structure
- contained in @caps.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps to copy</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- <parameter name="nth" transfer-ownership="none">
- <doc xml:space="preserve">the nth structure to copy</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="filter_and_map_in_place"
- c:identifier="gst_caps_filter_and_map_in_place"
- version="1.6">
- <doc xml:space="preserve">Calls the provided function once for each structure and caps feature in the
- #GstCaps. In contrast to gst_caps_foreach(), the function may modify the
- structure and features. In contrast to gst_caps_filter_and_map_in_place(),
- the structure and features are removed from the caps if %FALSE is returned
- from the function.
- The caps must be mutable.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="1">
- <doc xml:space="preserve">a function to call for each field</doc>
- <type name="CapsFilterMapFunc" c:type="GstCapsFilterMapFunc"/>
- </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>
- </parameters>
- </method>
- <method name="fixate" c:identifier="gst_caps_fixate">
- <doc xml:space="preserve">Modifies the given @caps into a representation with only fixed
- values. First the caps will be truncated and then the first structure will be
- fixated with gst_structure_fixate().
- This function takes ownership of @caps and will call gst_caps_make_writable()
- on it so you must not use @caps afterwards unless you keep an additional
- reference to it with gst_caps_ref().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the fixated caps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="full">
- <doc xml:space="preserve">a #GstCaps to fixate</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="foreach" c:identifier="gst_caps_foreach" version="1.6">
- <doc xml:space="preserve">Calls the provided function once for each structure and caps feature in the
- #GstCaps. The function must not modify the fields.
- Also see gst_caps_map_in_place() and gst_caps_filter_and_map_in_place().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the supplied function returns %TRUE for each call,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="1">
- <doc xml:space="preserve">a function to call for each field</doc>
- <type name="CapsForeachFunc" c:type="GstCapsForeachFunc"/>
- </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>
- </parameters>
- </method>
- <method name="get_features"
- c:identifier="gst_caps_get_features"
- version="1.2">
- <doc xml:space="preserve">Finds the features in @caps that has the index @index, and
- returns it.
- WARNING: This function takes a const GstCaps *, but returns a
- non-const GstCapsFeatures *. This is for programming convenience --
- the caller should be aware that structures inside a constant
- #GstCaps should not be modified. However, if you know the caps
- are writable, either because you have just copied them or made
- them writable with gst_caps_make_writable(), you may modify the
- features returned in the usual way, e.g. with functions like
- gst_caps_features_add().
- You do not need to free or unref the structure returned, it
- belongs to the #GstCaps.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a pointer to the #GstCapsFeatures corresponding
- to @index</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">the index of the structure</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_size" c:identifier="gst_caps_get_size">
- <doc xml:space="preserve">Gets the number of structures contained in @caps.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of structures that @caps contains</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_structure" c:identifier="gst_caps_get_structure">
- <doc xml:space="preserve">Finds the structure in @caps that has the index @index, and
- returns it.
- WARNING: This function takes a const GstCaps *, but returns a
- non-const GstStructure *. This is for programming convenience --
- the caller should be aware that structures inside a constant
- #GstCaps should not be modified. However, if you know the caps
- are writable, either because you have just copied them or made
- them writable with gst_caps_make_writable(), you may modify the
- structure returned in the usual way, e.g. with functions like
- gst_structure_set().
- You do not need to free or unref the structure returned, it
- belongs to the #GstCaps.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a pointer to the #GstStructure corresponding
- to @index</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">the index of the structure</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="intersect" c:identifier="gst_caps_intersect">
- <doc xml:space="preserve">Creates a new #GstCaps that contains all the formats that are common
- to both @caps1 and @caps2. Defaults to %GST_CAPS_INTERSECT_ZIG_ZAG mode.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps1" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps to intersect</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="caps2" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps to intersect</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="intersect_full" c:identifier="gst_caps_intersect_full">
- <doc xml:space="preserve">Creates a new #GstCaps that contains all the formats that are common
- to both @caps1 and @caps2, the order is defined by the #GstCapsIntersectMode
- used.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps1" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps to intersect</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="caps2" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps to intersect</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">The intersection algorithm/mode to use</doc>
- <type name="CapsIntersectMode" c:type="GstCapsIntersectMode"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_always_compatible"
- c:identifier="gst_caps_is_always_compatible">
- <doc xml:space="preserve">A given #GstCaps structure is always compatible with another if
- every media format that is in the first is also contained in the
- second. That is, @caps1 is a subset of @caps2.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @caps1 is a subset of @caps2.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps1" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps to test</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- <parameter name="caps2" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps to test</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_any" c:identifier="gst_caps_is_any">
- <doc xml:space="preserve">Determines if @caps represents any media format.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @caps represents any format.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps to test</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_empty" c:identifier="gst_caps_is_empty">
- <doc xml:space="preserve">Determines if @caps represents no media formats.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @caps represents no formats.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps to test</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_equal" c:identifier="gst_caps_is_equal">
- <doc xml:space="preserve">Checks if the given caps represent the same set of caps.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if both caps are equal.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps1" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- <parameter name="caps2" transfer-ownership="none">
- <doc xml:space="preserve">another #GstCaps</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_equal_fixed" c:identifier="gst_caps_is_equal_fixed">
- <doc xml:space="preserve">Tests if two #GstCaps are equal. This function only works on fixed
- #GstCaps.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the arguments represent the same format</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps1" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps to test</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- <parameter name="caps2" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps to test</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_fixed" c:identifier="gst_caps_is_fixed">
- <doc xml:space="preserve">Fixed #GstCaps describe exactly one format, that is, they have exactly
- one structure, and each field in the structure describes a fixed type.
- Examples of non-fixed types are GST_TYPE_INT_RANGE and GST_TYPE_LIST.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @caps is fixed</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps to test</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_strictly_equal"
- c:identifier="gst_caps_is_strictly_equal">
- <doc xml:space="preserve">Checks if the given caps are exactly the same set of caps.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if both caps are strictly equal.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps1" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- <parameter name="caps2" transfer-ownership="none">
- <doc xml:space="preserve">another #GstCaps</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_subset" c:identifier="gst_caps_is_subset">
- <doc xml:space="preserve">Checks if all caps represented by @subset are also represented by @superset.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @subset is a subset of @superset</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="subset" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- <parameter name="superset" transfer-ownership="none">
- <doc xml:space="preserve">a potentially greater #GstCaps</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_subset_structure"
- c:identifier="gst_caps_is_subset_structure">
- <doc xml:space="preserve">Checks if @structure is a subset of @caps. See gst_caps_is_subset()
- for more information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @structure is a subset of @caps</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- <parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a potential #GstStructure subset of @caps</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_subset_structure_full"
- c:identifier="gst_caps_is_subset_structure_full"
- version="1.2">
- <doc xml:space="preserve">Checks if @structure is a subset of @caps. See gst_caps_is_subset()
- for more information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @structure is a subset of @caps</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- <parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a potential #GstStructure subset of @caps</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </parameter>
- <parameter name="features"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstCapsFeatures for @structure</doc>
- <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
- </parameter>
- </parameters>
- </method>
- <method name="map_in_place"
- c:identifier="gst_caps_map_in_place"
- version="1.6">
- <doc xml:space="preserve">Calls the provided function once for each structure and caps feature in the
- #GstCaps. In contrast to gst_caps_foreach(), the function may modify but not
- delete the structures and features. The caps must be mutable.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the supplied function returns %TRUE for each call,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="1">
- <doc xml:space="preserve">a function to call for each field</doc>
- <type name="CapsMapFunc" c:type="GstCapsMapFunc"/>
- </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>
- </parameters>
- </method>
- <method name="merge" c:identifier="gst_caps_merge">
- <doc xml:space="preserve">Appends the structures contained in @caps2 to @caps1 if they are not yet
- expressed by @caps1. The structures in @caps2 are not copied -- they are
- transferred to a writable copy of @caps1, and then @caps2 is freed.
- If either caps is ANY, the resulting caps will be ANY.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the merged caps.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps1" transfer-ownership="full">
- <doc xml:space="preserve">the #GstCaps that will take the new entries</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="caps2" transfer-ownership="full">
- <doc xml:space="preserve">the #GstCaps to merge in</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="merge_structure" c:identifier="gst_caps_merge_structure">
- <doc xml:space="preserve">Appends @structure to @caps if its not already expressed by @caps.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the merged caps.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="full">
- <doc xml:space="preserve">the #GstCaps to merge into</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="structure" transfer-ownership="full">
- <doc xml:space="preserve">the #GstStructure to merge</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- <method name="merge_structure_full"
- c:identifier="gst_caps_merge_structure_full"
- version="1.2">
- <doc xml:space="preserve">Appends @structure with @features to @caps if its not already expressed by @caps.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the merged caps.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="full">
- <doc xml:space="preserve">the #GstCaps to merge into</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="structure" transfer-ownership="full">
- <doc xml:space="preserve">the #GstStructure to merge</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="features"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the #GstCapsFeatures to merge</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </parameter>
- </parameters>
- </method>
- <method name="normalize" c:identifier="gst_caps_normalize">
- <doc xml:space="preserve">Returns a #GstCaps that represents the same set of formats as
- @caps, but contains no lists. Each list is expanded into separate
- @GstStructures.
- This function takes ownership of @caps and will call gst_caps_make_writable()
- on it so you must not use @caps afterwards unless you keep an additional
- reference to it with gst_caps_ref().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the normalized #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="full">
- <doc xml:space="preserve">a #GstCaps to normalize</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="remove_structure" c:identifier="gst_caps_remove_structure">
- <doc xml:space="preserve">removes the structure with the given index from the list of structures
- contained in @caps.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps to remove from</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">Index of the structure to remove</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_features"
- c:identifier="gst_caps_set_features"
- version="1.2">
- <doc xml:space="preserve">Sets the #GstCapsFeatures @features for the structure at @index.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">the index of the structure</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="features"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the #GstCapsFeatures to set</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_simple"
- c:identifier="gst_caps_set_simple"
- introspectable="0">
- <doc xml:space="preserve">Sets fields in a #GstCaps. The arguments must be passed in the same
- manner as gst_structure_set(), and be %NULL-terminated.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps to set</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="field" transfer-ownership="none">
- <doc xml:space="preserve">first field to set</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">additional parameters</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="set_simple_valist"
- c:identifier="gst_caps_set_simple_valist"
- introspectable="0">
- <doc xml:space="preserve">Sets fields in a #GstCaps. The arguments must be passed in the same
- manner as gst_structure_set(), and be %NULL-terminated.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps to set</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="field" transfer-ownership="none">
- <doc xml:space="preserve">first field to set</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="varargs" transfer-ownership="none">
- <doc xml:space="preserve">additional parameters</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_value" c:identifier="gst_caps_set_value">
- <doc xml:space="preserve">Sets the given @field on all structures of @caps to the given @value.
- This is a convenience function for calling gst_structure_set_value() on
- all structures of @caps.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a writable caps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="field" transfer-ownership="none">
- <doc xml:space="preserve">name of the field to set</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">value to set the field to</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="simplify" c:identifier="gst_caps_simplify">
- <doc xml:space="preserve">Converts the given @caps into a representation that represents the
- same set of formats, but in a simpler form. Component structures that are
- identical are merged. Component structures that have values that can be
- merged are also merged.
- This function takes ownership of @caps and will call gst_caps_make_writable()
- on it if necessary, so you must not use @caps afterwards unless you keep an
- additional reference to it with gst_caps_ref().
- This method does not preserve the original order of @caps.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The simplified caps.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="full">
- <doc xml:space="preserve">a #GstCaps to simplify</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="steal_structure" c:identifier="gst_caps_steal_structure">
- <doc xml:space="preserve">Retrieves the structure with the given index from the list of structures
- contained in @caps. The caller becomes the owner of the returned structure.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a pointer to the #GstStructure corresponding
- to @index.</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps to retrieve from</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">Index of the structure to retrieve</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="subtract" c:identifier="gst_caps_subtract">
- <doc xml:space="preserve">Subtracts the @subtrahend from the @minuend.
- <note>This function does not work reliably if optional properties for caps
- are included on one caps and omitted on the other.</note></doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the resulting caps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="minuend" transfer-ownership="none">
- <doc xml:space="preserve">#GstCaps to subtract from</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- <parameter name="subtrahend" transfer-ownership="none">
- <doc xml:space="preserve">#GstCaps to subtract</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_string" c:identifier="gst_caps_to_string">
- <doc xml:space="preserve">Converts @caps to a string representation. This string representation
- can be converted back to a #GstCaps by gst_caps_from_string().
- For debugging purposes its easier to do something like this:
- |[<!-- language="C" -->
- GST_LOG ("caps are %" GST_PTR_FORMAT, caps);
- ]|
- This prints the caps in human readable form.
- The current implementation of serialization will lead to unexpected results
- when there are nested #GstCaps / #GstStructure deeper than one level.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated string representing @caps.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="truncate" c:identifier="gst_caps_truncate">
- <doc xml:space="preserve">Discard all but the first structure from @caps. Useful when
- fixating.
- This function takes ownership of @caps and will call gst_caps_make_writable()
- on it if necessary, so you must not use @caps afterwards unless you keep an
- additional reference to it with gst_caps_ref().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">truncated caps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="caps" transfer-ownership="full">
- <doc xml:space="preserve">the #GstCaps to truncate</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </instance-parameter>
- </parameters>
- </method>
- <function name="from_string" c:identifier="gst_caps_from_string">
- <doc xml:space="preserve">Converts @caps from a string representation.
- The current implementation of serialization will lead to unexpected results
- when there are nested #GstCaps / #GstStructure deeper than one level.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <doc xml:space="preserve">a string to convert to #GstCaps</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <record name="CapsFeatures"
- c:type="GstCapsFeatures"
- glib:type-name="GstCapsFeatures"
- glib:get-type="gst_caps_features_get_type"
- c:symbol-prefix="caps_features">
- <doc xml:space="preserve">#GstCapsFeatures can optionally be set on a #GstCaps to add requirements
- for additional features for a specific #GstStructure. Caps structures with
- the same name but with a non-equal set of caps features are not compatible.
- If a pad supports multiple sets of features it has to add multiple equal
- structures with different feature sets to the caps.
- Empty #GstCapsFeatures are equivalent with the #GstCapsFeatures that only
- contain #GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY. ANY #GstCapsFeatures as
- created by gst_caps_features_new_any() are equal to any other #GstCapsFeatures
- and can be used to specify that any #GstCapsFeatures would be supported, e.g.
- for elements that don't touch buffer memory. #GstCaps with ANY #GstCapsFeatures
- are considered non-fixed and during negotiation some #GstCapsFeatures have
- to be selected.
- Examples for caps features would be the requirement of a specific #GstMemory
- types or the requirement of having a specific #GstMeta on the buffer. Features
- are given as a string of the format "memory:GstMemoryTypeName" or
- "meta:GstMetaAPIName".</doc>
- <constructor name="new"
- c:identifier="gst_caps_features_new"
- version="1.2"
- introspectable="0">
- <doc xml:space="preserve">Creates a new #GstCapsFeatures with the given features.
- The last argument must be %NULL.
- Free-function: gst_caps_features_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new, empty #GstCapsFeatures</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </return-value>
- <parameters>
- <parameter name="feature1" transfer-ownership="none">
- <doc xml:space="preserve">name of first feature to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">additional features</doc>
- <varargs/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_any"
- c:identifier="gst_caps_features_new_any"
- version="1.2">
- <doc xml:space="preserve">Creates a new, ANY #GstCapsFeatures. This will be equal
- to any other #GstCapsFeatures but caps with these are
- unfixed.
- Free-function: gst_caps_features_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new, ANY #GstCapsFeatures</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </return-value>
- </constructor>
- <constructor name="new_empty"
- c:identifier="gst_caps_features_new_empty"
- version="1.2">
- <doc xml:space="preserve">Creates a new, empty #GstCapsFeatures.
- Free-function: gst_caps_features_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new, empty #GstCapsFeatures</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </return-value>
- </constructor>
- <constructor name="new_id"
- c:identifier="gst_caps_features_new_id"
- version="1.2"
- introspectable="0">
- <doc xml:space="preserve">Creates a new #GstCapsFeatures with the given features.
- The last argument must be 0.
- Free-function: gst_caps_features_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new, empty #GstCapsFeatures</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </return-value>
- <parameters>
- <parameter name="feature1" transfer-ownership="none">
- <doc xml:space="preserve">name of first feature to set</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">additional features</doc>
- <varargs/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_id_valist"
- c:identifier="gst_caps_features_new_id_valist"
- version="1.2"
- introspectable="0">
- <doc xml:space="preserve">Creates a new #GstCapsFeatures with the given features.
- Free-function: gst_caps_features_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new, empty #GstCapsFeatures</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </return-value>
- <parameters>
- <parameter name="feature1" transfer-ownership="none">
- <doc xml:space="preserve">name of first feature to set</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="varargs" transfer-ownership="none">
- <doc xml:space="preserve">variable argument list</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_valist"
- c:identifier="gst_caps_features_new_valist"
- version="1.2"
- introspectable="0">
- <doc xml:space="preserve">Creates a new #GstCapsFeatures with the given features.
- Free-function: gst_caps_features_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new, empty #GstCapsFeatures</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </return-value>
- <parameters>
- <parameter name="feature1" transfer-ownership="none">
- <doc xml:space="preserve">name of first feature to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="varargs" transfer-ownership="none">
- <doc xml:space="preserve">variable argument list</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="add" c:identifier="gst_caps_features_add" version="1.2">
- <doc xml:space="preserve">Adds @feature to @features.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCapsFeatures.</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </instance-parameter>
- <parameter name="feature" transfer-ownership="none">
- <doc xml:space="preserve">a feature.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_id"
- c:identifier="gst_caps_features_add_id"
- version="1.2">
- <doc xml:space="preserve">Adds @feature to @features.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCapsFeatures.</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </instance-parameter>
- <parameter name="feature" transfer-ownership="none">
- <doc xml:space="preserve">a feature.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- </parameters>
- </method>
- <method name="contains"
- c:identifier="gst_caps_features_contains"
- version="1.2">
- <doc xml:space="preserve">Check if @features contains @feature.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @features contains @feature.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCapsFeatures.</doc>
- <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
- </instance-parameter>
- <parameter name="feature" transfer-ownership="none">
- <doc xml:space="preserve">a feature</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="contains_id"
- c:identifier="gst_caps_features_contains_id"
- version="1.2">
- <doc xml:space="preserve">Check if @features contains @feature.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @features contains @feature.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCapsFeatures.</doc>
- <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
- </instance-parameter>
- <parameter name="feature" transfer-ownership="none">
- <doc xml:space="preserve">a feature</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- </parameters>
- </method>
- <method name="copy" c:identifier="gst_caps_features_copy" version="1.2">
- <doc xml:space="preserve">Duplicates a #GstCapsFeatures and all its values.
- Free-function: gst_caps_features_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstCapsFeatures.</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </return-value>
- <parameters>
- <instance-parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCapsFeatures to duplicate</doc>
- <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="free" c:identifier="gst_caps_features_free" version="1.2">
- <doc xml:space="preserve">Frees a #GstCapsFeatures and all its values. The caps features must not
- have a parent when this function is called.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="features" transfer-ownership="full">
- <doc xml:space="preserve">the #GstCapsFeatures to free</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_nth"
- c:identifier="gst_caps_features_get_nth"
- version="1.2">
- <doc xml:space="preserve">Returns the @i-th feature of @features.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The @i-th feature of @features.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCapsFeatures.</doc>
- <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
- </instance-parameter>
- <parameter name="i" transfer-ownership="none">
- <doc xml:space="preserve">index of the feature</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_nth_id"
- c:identifier="gst_caps_features_get_nth_id"
- version="1.2">
- <doc xml:space="preserve">Returns the @i-th feature of @features.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The @i-th feature of @features.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- <parameters>
- <instance-parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCapsFeatures.</doc>
- <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
- </instance-parameter>
- <parameter name="i" transfer-ownership="none">
- <doc xml:space="preserve">index of the feature</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_size"
- c:identifier="gst_caps_features_get_size"
- version="1.2">
- <doc xml:space="preserve">Returns the number of features in @features.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The number of features in @features.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCapsFeatures.</doc>
- <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_any"
- c:identifier="gst_caps_features_is_any"
- version="1.2">
- <doc xml:space="preserve">Check if @features is %GST_CAPS_FEATURES_ANY.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @features is %GST_CAPS_FEATURES_ANY.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCapsFeatures.</doc>
- <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_equal"
- c:identifier="gst_caps_features_is_equal"
- version="1.2">
- <doc xml:space="preserve">Check if @features1 and @features2 are equal.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @features1 and @features2 are equal.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="features1" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCapsFeatures.</doc>
- <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
- </instance-parameter>
- <parameter name="features2" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCapsFeatures.</doc>
- <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove"
- c:identifier="gst_caps_features_remove"
- version="1.2">
- <doc xml:space="preserve">Removes @feature from @features.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCapsFeatures.</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </instance-parameter>
- <parameter name="feature" transfer-ownership="none">
- <doc xml:space="preserve">a feature.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_id"
- c:identifier="gst_caps_features_remove_id"
- version="1.2">
- <doc xml:space="preserve">Removes @feature from @features.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCapsFeatures.</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </instance-parameter>
- <parameter name="feature" transfer-ownership="none">
- <doc xml:space="preserve">a feature.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_parent_refcount"
- c:identifier="gst_caps_features_set_parent_refcount"
- version="1.2">
- <doc xml:space="preserve">Sets the parent_refcount field of #GstCapsFeatures. This field is used to
- determine whether a caps features is mutable or not. This function should only be
- called by code implementing parent objects of #GstCapsFeatures, as described in
- the MT Refcounting section of the design documents.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the parent refcount could be set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCapsFeatures</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </instance-parameter>
- <parameter name="refcount" transfer-ownership="none">
- <doc xml:space="preserve">a pointer to the parent's refcount</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_string"
- c:identifier="gst_caps_features_to_string"
- version="1.2">
- <doc xml:space="preserve">Converts @features to a human-readable string representation.
- For debugging purposes its easier to do something like this:
- |[<!-- language="C" -->
- GST_LOG ("features is %" GST_PTR_FORMAT, features);
- ]|
- This prints the features in human readable form.
- Free-function: g_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a pointer to string allocated by g_malloc().
- g_free() after usage.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCapsFeatures</doc>
- <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
- </instance-parameter>
- </parameters>
- </method>
- <function name="from_string"
- c:identifier="gst_caps_features_from_string"
- version="1.2">
- <doc xml:space="preserve">Creates a #GstCapsFeatures from a string representation.
- Free-function: gst_caps_features_free</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a new #GstCapsFeatures or
- %NULL when the string could not be parsed. Free with
- gst_caps_features_free() after use.</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </return-value>
- <parameters>
- <parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">a string representation of a #GstCapsFeatures.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <callback name="CapsFilterMapFunc" c:type="GstCapsFilterMapFunc">
- <doc xml:space="preserve">A function that will be called in gst_caps_filter_and_map_in_place().
- The function may modify @features and @structure, and both will be
- removed from the caps if %FALSE is returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the features and structure should be preserved,
- %FALSE if it should be removed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCapsFeatures</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </parameter>
- <parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">the #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="CapsFlags"
- glib:type-name="GstCapsFlags"
- glib:get-type="gst_caps_flags_get_type"
- c:type="GstCapsFlags">
- <doc xml:space="preserve">Extra flags for a caps.</doc>
- <member name="any"
- value="16"
- c:identifier="GST_CAPS_FLAG_ANY"
- glib:nick="any">
- <doc xml:space="preserve">Caps has no specific content, but can contain
- anything.</doc>
- </member>
- </bitfield>
- <callback name="CapsForeachFunc" c:type="GstCapsForeachFunc" version="1.6">
- <doc xml:space="preserve">A function that will be called in gst_caps_foreach(). The function may
- not modify @features or @structure.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the foreach operation should continue, %FALSE if
- the foreach operation should stop with %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCapsFeatures</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </parameter>
- <parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">the #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="CapsIntersectMode"
- glib:type-name="GstCapsIntersectMode"
- glib:get-type="gst_caps_intersect_mode_get_type"
- c:type="GstCapsIntersectMode">
- <doc xml:space="preserve">Modes of caps intersection
- @GST_CAPS_INTERSECT_ZIG_ZAG tries to preserve overall order of both caps
- by iterating on the caps' structures as the following matrix shows:
- |[
- caps1
- +-------------
- | 1 2 4 7
- caps2 | 3 5 8 10
- | 6 9 11 12
- ]|
- Used when there is no explicit precedence of one caps over the other. e.g.
- tee's sink pad getcaps function, it will probe its src pad peers' for their
- caps and intersect them with this mode.
- @GST_CAPS_INTERSECT_FIRST is useful when an element wants to preserve
- another element's caps priority order when intersecting with its own caps.
- Example: If caps1 is [A, B, C] and caps2 is [E, B, D, A], the result
- would be [A, B], maintaining the first caps priority on the intersection.</doc>
- <member name="zig_zag"
- value="0"
- c:identifier="GST_CAPS_INTERSECT_ZIG_ZAG"
- glib:nick="zig-zag">
- <doc xml:space="preserve">Zig-zags over both caps.</doc>
- </member>
- <member name="first"
- value="1"
- c:identifier="GST_CAPS_INTERSECT_FIRST"
- glib:nick="first">
- <doc xml:space="preserve">Keeps the first caps order.</doc>
- </member>
- </enumeration>
- <callback name="CapsMapFunc" c:type="GstCapsMapFunc">
- <doc xml:space="preserve">A function that will be called in gst_caps_map_in_place(). The function
- may modify @features and @structure.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the map operation should continue, %FALSE if
- the map operation should stop with %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCapsFeatures</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </parameter>
- <parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">the #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <interface name="ChildProxy"
- c:symbol-prefix="child_proxy"
- c:type="GstChildProxy"
- glib:type-name="GstChildProxy"
- glib:get-type="gst_child_proxy_get_type"
- glib:type-struct="ChildProxyInterface">
- <doc xml:space="preserve">This interface abstracts handling of property sets for elements with
- children. Imagine elements such as mixers or polyphonic generators. They all
- have multiple #GstPad or some kind of voice objects. Another use case are
- container elements like #GstBin.
- The element implementing the interface acts as a parent for those child
- objects.
- By implementing this interface the child properties can be accessed from the
- parent element by using gst_child_proxy_get() and gst_child_proxy_set().
- Property names are written as "child-name::property-name". The whole naming
- scheme is recursive. Thus "child1::child2::property" is valid too, if
- "child1" and "child2" implement the #GstChildProxy interface.</doc>
- <virtual-method name="child_added" invoker="child_added">
- <doc xml:space="preserve">Emits the "child-added" signal.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent object</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- <parameter name="child" transfer-ownership="none">
- <doc xml:space="preserve">the newly added child</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the new child</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="child_removed" invoker="child_removed">
- <doc xml:space="preserve">Emits the "child-removed" signal.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent object</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- <parameter name="child" transfer-ownership="none">
- <doc xml:space="preserve">the removed child</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the old child</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_child_by_index" invoker="get_child_by_index">
- <doc xml:space="preserve">Fetches a child by its number.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the child object or %NULL if
- not found (index too high). Unref after usage.
- MT safe.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent object to get the child from</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">the child's position in the child list</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_child_by_name" invoker="get_child_by_name">
- <doc xml:space="preserve">Looks up a child element by the given name.
- This virtual method has a default implementation that uses #GstObject
- together with gst_object_get_name(). If the interface is to be used with
- #GObjects, this methods needs to be overridden.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the child object or %NULL if
- not found. Unref after usage.
- MT safe.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent object to get the child from</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the child's name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_children_count" invoker="get_children_count">
- <doc xml:space="preserve">Gets the number of child objects this parent contains.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of child objects
- MT safe.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent object</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="child_added" c:identifier="gst_child_proxy_child_added">
- <doc xml:space="preserve">Emits the "child-added" signal.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent object</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- <parameter name="child" transfer-ownership="none">
- <doc xml:space="preserve">the newly added child</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the new child</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="child_removed"
- c:identifier="gst_child_proxy_child_removed">
- <doc xml:space="preserve">Emits the "child-removed" signal.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent object</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- <parameter name="child" transfer-ownership="none">
- <doc xml:space="preserve">the removed child</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the old child</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get" c:identifier="gst_child_proxy_get" introspectable="0">
- <doc xml:space="preserve">Gets properties of the parent object and its children.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the parent object</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- <parameter name="first_property_name" transfer-ownership="none">
- <doc xml:space="preserve">name of the first property to get</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">return location for the first property, followed optionally by more name/return location pairs, followed by %NULL</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="get_child_by_index"
- c:identifier="gst_child_proxy_get_child_by_index">
- <doc xml:space="preserve">Fetches a child by its number.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the child object or %NULL if
- not found (index too high). Unref after usage.
- MT safe.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent object to get the child from</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">the child's position in the child list</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_child_by_name"
- c:identifier="gst_child_proxy_get_child_by_name">
- <doc xml:space="preserve">Looks up a child element by the given name.
- This virtual method has a default implementation that uses #GstObject
- together with gst_object_get_name(). If the interface is to be used with
- #GObjects, this methods needs to be overridden.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the child object or %NULL if
- not found. Unref after usage.
- MT safe.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent object to get the child from</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the child's name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_children_count"
- c:identifier="gst_child_proxy_get_children_count">
- <doc xml:space="preserve">Gets the number of child objects this parent contains.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of child objects
- MT safe.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent object</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_property" c:identifier="gst_child_proxy_get_property">
- <doc xml:space="preserve">Gets a single property using the GstChildProxy mechanism.
- You are responsible for freeing it by calling g_value_unset()</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">object to query</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name of the property</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">a #GValue that should take the result.</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_valist"
- c:identifier="gst_child_proxy_get_valist"
- introspectable="0">
- <doc xml:space="preserve">Gets properties of the parent object and its children.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object to query</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- <parameter name="first_property_name" transfer-ownership="none">
- <doc xml:space="preserve">name of the first property to get</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="var_args" transfer-ownership="none">
- <doc xml:space="preserve">return location for the first property, followed optionally by more name/return location pairs, followed by %NULL</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup" c:identifier="gst_child_proxy_lookup">
- <doc xml:space="preserve">Looks up which object and #GParamSpec would be effected by the given @name.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @target and @pspec could be found. %FALSE otherwise. In that
- case the values for @pspec and @target are not modified. Unref @target after
- usage. For plain GObjects @target is the same as @object.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">child proxy object to lookup the property in</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name of the property to look up</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="target"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to a #GObject that
- takes the real object to set property on</doc>
- <type name="GObject.Object" c:type="GObject**"/>
- </parameter>
- <parameter name="pspec"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to take the #GParamSpec
- describing the property</doc>
- <type name="GObject.ParamSpec" c:type="GParamSpec**"/>
- </parameter>
- </parameters>
- </method>
- <method name="set" c:identifier="gst_child_proxy_set" introspectable="0">
- <doc xml:space="preserve">Sets properties of the parent object and its children.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the parent object</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- <parameter name="first_property_name" transfer-ownership="none">
- <doc xml:space="preserve">name of the first property to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">value for the first property, followed optionally by more name/value pairs, followed by %NULL</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="set_property" c:identifier="gst_child_proxy_set_property">
- <doc xml:space="preserve">Sets a single property using the GstChildProxy mechanism.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the parent object</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name of the property to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">new #GValue for the property</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_valist"
- c:identifier="gst_child_proxy_set_valist"
- introspectable="0">
- <doc xml:space="preserve">Sets properties of the parent object and its children.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the parent object</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </instance-parameter>
- <parameter name="first_property_name" transfer-ownership="none">
- <doc xml:space="preserve">name of the first property to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="var_args" transfer-ownership="none">
- <doc xml:space="preserve">value for the first property, followed optionally by more name/value pairs, followed by %NULL</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <glib:signal name="child-added" when="first">
- <doc xml:space="preserve">Will be emitted after the @object was added to the @child_proxy.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the #GObject that was added</doc>
- <type name="GObject.Object"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the new child</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="child-removed" when="first">
- <doc xml:space="preserve">Will be emitted after the @object was removed from the @child_proxy.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the #GObject that was removed</doc>
- <type name="GObject.Object"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the old child</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </glib:signal>
- </interface>
- <record name="ChildProxyInterface"
- c:type="GstChildProxyInterface"
- glib:is-gtype-struct-for="ChildProxy">
- <doc xml:space="preserve">#GstChildProxy interface.</doc>
- <field name="parent">
- <doc xml:space="preserve">parent interface type.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="get_child_by_name">
- <callback name="get_child_by_name">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the child object or %NULL if
- not found. Unref after usage.
- MT safe.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent object to get the child from</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the child's name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_child_by_index">
- <callback name="get_child_by_index">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the child object or %NULL if
- not found (index too high). Unref after usage.
- MT safe.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent object to get the child from</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">the child's position in the child list</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_children_count">
- <callback name="get_children_count">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of child objects
- MT safe.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent object</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="child_added">
- <callback name="child_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent object</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </parameter>
- <parameter name="child" transfer-ownership="none">
- <doc xml:space="preserve">the newly added child</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the new child</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="child_removed">
- <callback name="child_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent object</doc>
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </parameter>
- <parameter name="child" transfer-ownership="none">
- <doc xml:space="preserve">the removed child</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the old child</doc>
- <type name="utf8" c:type="const gchar*"/>
- </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>
- <class name="Clock"
- c:symbol-prefix="clock"
- c:type="GstClock"
- parent="Object"
- abstract="1"
- glib:type-name="GstClock"
- glib:get-type="gst_clock_get_type"
- glib:type-struct="ClockClass">
- <doc xml:space="preserve">GStreamer uses a global clock to synchronize the plugins in a pipeline.
- Different clock implementations are possible by implementing this abstract
- base class or, more conveniently, by subclassing #GstSystemClock.
- The #GstClock returns a monotonically increasing time with the method
- gst_clock_get_time(). Its accuracy and base time depend on the specific
- clock implementation but time is always expressed in nanoseconds. Since the
- baseline of the clock is undefined, the clock time returned is not
- meaningful in itself, what matters are the deltas between two clock times.
- The time returned by a clock is called the absolute time.
- The pipeline uses the clock to calculate the running time. Usually all
- renderers synchronize to the global clock using the buffer timestamps, the
- newsegment events and the element's base time, see #GstPipeline.
- A clock implementation can support periodic and single shot clock
- notifications both synchronous and asynchronous.
- One first needs to create a #GstClockID for the periodic or single shot
- notification using gst_clock_new_single_shot_id() or
- gst_clock_new_periodic_id().
- To perform a blocking wait for the specific time of the #GstClockID use the
- gst_clock_id_wait(). To receive a callback when the specific time is reached
- in the clock use gst_clock_id_wait_async(). Both these calls can be
- interrupted with the gst_clock_id_unschedule() call. If the blocking wait is
- unscheduled a return value of #GST_CLOCK_UNSCHEDULED is returned.
- Periodic callbacks scheduled async will be repeatedly called automatically
- until it is unscheduled. To schedule a sync periodic callback,
- gst_clock_id_wait() should be called repeatedly.
- The async callbacks can happen from any thread, either provided by the core
- or from a streaming thread. The application should be prepared for this.
- A #GstClockID that has been unscheduled cannot be used again for any wait
- operation, a new #GstClockID should be created and the old unscheduled one
- should be destroyed with gst_clock_id_unref().
- It is possible to perform a blocking wait on the same #GstClockID from
- multiple threads. However, registering the same #GstClockID for multiple
- async notifications is not possible, the callback will only be called for
- the thread registering the entry last.
- None of the wait operations unref the #GstClockID, the owner is responsible
- for unreffing the ids itself. This holds for both periodic and single shot
- notifications. The reason being that the owner of the #GstClockID has to
- keep a handle to the #GstClockID to unblock the wait on FLUSHING events or
- state changes and if the entry would be unreffed automatically, the handle
- might become invalid without any notification.
- These clock operations do not operate on the running time, so the callbacks
- will also occur when not in PLAYING state as if the clock just keeps on
- running. Some clocks however do not progress when the element that provided
- the clock is not PLAYING.
- When a clock has the #GST_CLOCK_FLAG_CAN_SET_MASTER flag set, it can be
- slaved to another #GstClock with the gst_clock_set_master(). The clock will
- then automatically be synchronized to this master clock by repeatedly
- sampling the master clock and the slave clock and recalibrating the slave
- clock with gst_clock_set_calibration(). This feature is mostly useful for
- plugins that have an internal clock but must operate with another clock
- selected by the #GstPipeline. They can track the offset and rate difference
- of their internal clock relative to the master clock by using the
- gst_clock_get_calibration() function.
- The master/slave synchronisation can be tuned with the #GstClock:timeout,
- #GstClock:window-size and #GstClock:window-threshold properties.
- The #GstClock:timeout property defines the interval to sample the master
- clock and run the calibration functions. #GstClock:window-size defines the
- number of samples to use when calibrating and #GstClock:window-threshold
- defines the minimum number of samples before the calibration is performed.</doc>
- <function name="id_compare_func"
- c:identifier="gst_clock_id_compare_func">
- <doc xml:space="preserve">Compares the two #GstClockID instances. This function can be used
- as a GCompareFunc when sorting ids.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">negative value if a < b; zero if a = b; positive value if a > b
- MT safe.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="id1"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GstClockID</doc>
- <type name="gpointer" c:type="gconstpointer"/>
- </parameter>
- <parameter name="id2"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GstClockID to compare with</doc>
- <type name="gpointer" c:type="gconstpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="id_get_time" c:identifier="gst_clock_id_get_time">
- <doc xml:space="preserve">Get the time of the clock ID</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the time of the given clock id.
- MT safe.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <doc xml:space="preserve">The #GstClockID to query</doc>
- <type name="ClockID" c:type="GstClockID"/>
- </parameter>
- </parameters>
- </function>
- <function name="id_ref" c:identifier="gst_clock_id_ref">
- <doc xml:space="preserve">Increase the refcount of given @id.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The same #GstClockID with increased refcount.
- MT safe.</doc>
- <type name="ClockID" c:type="GstClockID"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <doc xml:space="preserve">The #GstClockID to ref</doc>
- <type name="ClockID" c:type="GstClockID"/>
- </parameter>
- </parameters>
- </function>
- <function name="id_unref" c:identifier="gst_clock_id_unref">
- <doc xml:space="preserve">Unref given @id. When the refcount reaches 0 the
- #GstClockID will be freed.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="full">
- <doc xml:space="preserve">The #GstClockID to unref</doc>
- <type name="ClockID" c:type="GstClockID"/>
- </parameter>
- </parameters>
- </function>
- <function name="id_unschedule" c:identifier="gst_clock_id_unschedule">
- <doc xml:space="preserve">Cancel an outstanding request with @id. This can either
- be an outstanding async notification or a pending sync notification.
- After this call, @id cannot be used anymore to receive sync or
- async notifications, you need to create a new #GstClockID.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <doc xml:space="preserve">The id to unschedule</doc>
- <type name="ClockID" c:type="GstClockID"/>
- </parameter>
- </parameters>
- </function>
- <function name="id_wait" c:identifier="gst_clock_id_wait">
- <doc xml:space="preserve">Perform a blocking wait on @id.
- @id should have been created with gst_clock_new_single_shot_id()
- or gst_clock_new_periodic_id() and should not have been unscheduled
- with a call to gst_clock_id_unschedule().
- If the @jitter argument is not %NULL and this function returns #GST_CLOCK_OK
- or #GST_CLOCK_EARLY, it will contain the difference
- against the clock and the time of @id when this method was
- called.
- Positive values indicate how late @id was relative to the clock
- (in which case this function will return #GST_CLOCK_EARLY).
- Negative values indicate how much time was spent waiting on the clock
- before this function returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the result of the blocking wait. #GST_CLOCK_EARLY will be returned
- if the current clock time is past the time of @id, #GST_CLOCK_OK if
- @id was scheduled in time. #GST_CLOCK_UNSCHEDULED if @id was
- unscheduled with gst_clock_id_unschedule().
- MT safe.</doc>
- <type name="ClockReturn" c:type="GstClockReturn"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <doc xml:space="preserve">The #GstClockID to wait on</doc>
- <type name="ClockID" c:type="GstClockID"/>
- </parameter>
- <parameter name="jitter"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer that will contain the jitter,
- can be %NULL.</doc>
- <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
- </parameter>
- </parameters>
- </function>
- <function name="id_wait_async" c:identifier="gst_clock_id_wait_async">
- <doc xml:space="preserve">Register a callback on the given #GstClockID @id with the given
- function and user_data. When passing a #GstClockID with an invalid
- time to this function, the callback will be called immediately
- with a time set to GST_CLOCK_TIME_NONE. The callback will
- be called when the time of @id has been reached.
- The callback @func can be invoked from any thread, either provided by the
- core or from a streaming thread. The application should be prepared for this.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the result of the non blocking wait.
- MT safe.</doc>
- <type name="ClockReturn" c:type="GstClockReturn"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClockID to wait on</doc>
- <type name="ClockID" c:type="GstClockID"/>
- </parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="notified"
- closure="2"
- destroy="3">
- <doc xml:space="preserve">The callback function</doc>
- <type name="ClockCallback" c:type="GstClockCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">User data passed in the callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="destroy_data"
- transfer-ownership="none"
- scope="async">
- <doc xml:space="preserve">#GDestroyNotify for user_data</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="change_resolution">
- <return-value transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="old_resolution" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="new_resolution" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_internal_time" invoker="get_internal_time">
- <doc xml:space="preserve">Gets the current internal time of the given clock. The time is returned
- unadjusted for the offset and the rate.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the internal time of the clock. Or GST_CLOCK_TIME_NONE when
- given invalid input.
- MT safe.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock to query</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_resolution" invoker="get_resolution">
- <doc xml:space="preserve">Get the accuracy of the clock. The accuracy of the clock is the granularity
- of the values returned by gst_clock_get_time().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the resolution of the clock in units of #GstClockTime.
- MT safe.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="unschedule">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="entry" transfer-ownership="none">
- <type name="ClockEntry" c:type="GstClockEntry*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="wait">
- <return-value transfer-ownership="none">
- <type name="ClockReturn" c:type="GstClockReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="entry" transfer-ownership="none">
- <type name="ClockEntry" c:type="GstClockEntry*"/>
- </parameter>
- <parameter name="jitter" transfer-ownership="none">
- <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="wait_async">
- <return-value transfer-ownership="none">
- <type name="ClockReturn" c:type="GstClockReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="entry" transfer-ownership="none">
- <type name="ClockEntry" c:type="GstClockEntry*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="add_observation" c:identifier="gst_clock_add_observation">
- <doc xml:space="preserve">The time @master of the master clock and the time @slave of the slave
- clock are added to the list of observations. If enough observations
- are available, a linear regression algorithm is run on the
- observations and @clock is recalibrated.
- If this functions returns %TRUE, @r_squared will contain the
- correlation coefficient of the interpolation. A value of 1.0
- means a perfect regression was performed. This value can
- be used to control the sampling frequency of the master and slave
- clocks.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if enough observations were added to run the
- regression algorithm.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="slave" transfer-ownership="none">
- <doc xml:space="preserve">a time on the slave</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="master" transfer-ownership="none">
- <doc xml:space="preserve">a time on the master</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="r_squared"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to hold the result</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_observation_unapplied"
- c:identifier="gst_clock_add_observation_unapplied"
- version="1.6">
- <doc xml:space="preserve">Add a clock observation to the internal slaving algorithm the same as
- gst_clock_add_observation(), and return the result of the master clock
- estimation, without updating the internal calibration.
- The caller can then take the results and call gst_clock_set_calibration()
- with the values, or some modified version of them.</doc>
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="slave" transfer-ownership="none">
- <doc xml:space="preserve">a time on the slave</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="master" transfer-ownership="none">
- <doc xml:space="preserve">a time on the master</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="r_squared"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to hold the result</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- <parameter name="internal"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to store the internal time</doc>
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="external"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to store the external time</doc>
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="rate_num"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to store the rate numerator</doc>
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="rate_denom"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to store the rate denominator</doc>
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- </parameters>
- </method>
- <method name="adjust_unlocked" c:identifier="gst_clock_adjust_unlocked">
- <doc xml:space="preserve">Converts the given @internal clock time to the external time, adjusting for the
- rate and reference time set with gst_clock_set_calibration() and making sure
- that the returned time is increasing. This function should be called with the
- clock's OBJECT_LOCK held and is mainly used by clock subclasses.
- This function is the reverse of gst_clock_unadjust_unlocked().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the converted time of the clock.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock to use</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="internal" transfer-ownership="none">
- <doc xml:space="preserve">a clock time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="adjust_with_calibration"
- c:identifier="gst_clock_adjust_with_calibration"
- version="1.6">
- <doc xml:space="preserve">Converts the given @internal_target clock time to the external time,
- using the passed calibration parameters. This function performs the
- same calculation as gst_clock_adjust_unlocked() when called using the
- current calibration parameters, but doesn't ensure a monotonically
- increasing result as gst_clock_adjust_unlocked() does.
- Note: The @clock parameter is unused and can be NULL</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the converted time of the clock.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstClock to use</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="internal_target" transfer-ownership="none">
- <doc xml:space="preserve">a clock time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="cinternal" transfer-ownership="none">
- <doc xml:space="preserve">a reference internal time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="cexternal" transfer-ownership="none">
- <doc xml:space="preserve">a reference external time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="cnum" transfer-ownership="none">
- <doc xml:space="preserve">the numerator of the rate of the clock relative to its
- internal time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="cdenom" transfer-ownership="none">
- <doc xml:space="preserve">the denominator of the rate of the clock</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_calibration" c:identifier="gst_clock_get_calibration">
- <doc xml:space="preserve">Gets the internal rate and reference time of @clock. See
- gst_clock_set_calibration() for more information.
- @internal, @external, @rate_num, and @rate_denom can be left %NULL if the
- caller is not interested in the values.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="internal"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to store the internal time</doc>
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="external"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to store the external time</doc>
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="rate_num"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to store the rate numerator</doc>
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="rate_denom"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to store the rate denominator</doc>
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_internal_time"
- c:identifier="gst_clock_get_internal_time">
- <doc xml:space="preserve">Gets the current internal time of the given clock. The time is returned
- unadjusted for the offset and the rate.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the internal time of the clock. Or GST_CLOCK_TIME_NONE when
- given invalid input.
- MT safe.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock to query</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_master" c:identifier="gst_clock_get_master">
- <doc xml:space="preserve">Get the master clock that @clock is slaved to or %NULL when the clock is
- not slaved to any master clock.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a master #GstClock or %NULL
- when this clock is not slaved to a master clock. Unref after
- usage.
- MT safe.</doc>
- <type name="Clock" c:type="GstClock*"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_resolution" c:identifier="gst_clock_get_resolution">
- <doc xml:space="preserve">Get the accuracy of the clock. The accuracy of the clock is the granularity
- of the values returned by gst_clock_get_time().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the resolution of the clock in units of #GstClockTime.
- MT safe.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_time" c:identifier="gst_clock_get_time">
- <doc xml:space="preserve">Gets the current time of the given clock. The time is always
- monotonically increasing and adjusted according to the current
- offset and rate.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the time of the clock. Or GST_CLOCK_TIME_NONE when
- given invalid input.
- MT safe.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock to query</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_timeout" c:identifier="gst_clock_get_timeout">
- <doc xml:space="preserve">Get the amount of time that master and slave clocks are sampled.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the interval between samples.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_synced"
- c:identifier="gst_clock_is_synced"
- version="1.6">
- <doc xml:space="preserve">Checks if the clock is currently synced.
- This returns if GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC is not set on the clock.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the clock is currently synced</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="new_periodic_id" c:identifier="gst_clock_new_periodic_id">
- <doc xml:space="preserve">Get an ID from @clock to trigger a periodic notification.
- The periodic notifications will start at time @start_time and
- will then be fired with the given @interval. @id should be unreffed
- after usage.
- Free-function: gst_clock_id_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstClockID that can be used to request the
- time notification.
- MT safe.</doc>
- <type name="ClockID" c:type="GstClockID"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">The #GstClockID to get a periodic notification id from</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="start_time" transfer-ownership="none">
- <doc xml:space="preserve">the requested start time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="interval" transfer-ownership="none">
- <doc xml:space="preserve">the requested interval</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="new_single_shot_id"
- c:identifier="gst_clock_new_single_shot_id">
- <doc xml:space="preserve">Get a #GstClockID from @clock to trigger a single shot
- notification at the requested time. The single shot id should be
- unreffed after usage.
- Free-function: gst_clock_id_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstClockID that can be used to request the
- time notification.
- MT safe.</doc>
- <type name="ClockID" c:type="GstClockID"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">The #GstClockID to get a single shot notification from</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="time" transfer-ownership="none">
- <doc xml:space="preserve">the requested time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="periodic_id_reinit"
- c:identifier="gst_clock_periodic_id_reinit">
- <doc xml:space="preserve">Reinitializes the provided periodic @id to the provided start time and
- interval. Does not modify the reference count.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the GstClockID could be reinitialized to the provided
- @time, else %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="id" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClockID</doc>
- <type name="ClockID" c:type="GstClockID"/>
- </parameter>
- <parameter name="start_time" transfer-ownership="none">
- <doc xml:space="preserve">the requested start time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="interval" transfer-ownership="none">
- <doc xml:space="preserve">the requested interval</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_calibration" c:identifier="gst_clock_set_calibration">
- <doc xml:space="preserve">Adjusts the rate and time of @clock. A rate of 1/1 is the normal speed of
- the clock. Values bigger than 1/1 make the clock go faster.
- @internal and @external are calibration parameters that arrange that
- gst_clock_get_time() should have been @external at internal time @internal.
- This internal time should not be in the future; that is, it should be less
- than the value of gst_clock_get_internal_time() when this function is called.
- Subsequent calls to gst_clock_get_time() will return clock times computed as
- follows:
- <programlisting>
- time = (internal_time - internal) * rate_num / rate_denom + external
- </programlisting>
- This formula is implemented in gst_clock_adjust_unlocked(). Of course, it
- tries to do the integer arithmetic as precisely as possible.
- Note that gst_clock_get_time() always returns increasing values so when you
- move the clock backwards, gst_clock_get_time() will report the previous value
- until the clock catches up.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock to calibrate</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="internal" transfer-ownership="none">
- <doc xml:space="preserve">a reference internal time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="external" transfer-ownership="none">
- <doc xml:space="preserve">a reference external time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="rate_num" transfer-ownership="none">
- <doc xml:space="preserve">the numerator of the rate of the clock relative to its
- internal time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="rate_denom" transfer-ownership="none">
- <doc xml:space="preserve">the denominator of the rate of the clock</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_master" c:identifier="gst_clock_set_master">
- <doc xml:space="preserve">Set @master as the master clock for @clock. @clock will be automatically
- calibrated so that gst_clock_get_time() reports the same time as the
- master clock.
- A clock provider that slaves its clock to a master can get the current
- calibration values with gst_clock_get_calibration().
- @master can be %NULL in which case @clock will not be slaved anymore. It will
- however keep reporting its time adjusted with the last configured rate
- and time offsets.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the clock is capable of being slaved to a master clock.
- Trying to set a master on a clock without the
- #GST_CLOCK_FLAG_CAN_SET_MASTER flag will make this function return %FALSE.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="master"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a master #GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_resolution" c:identifier="gst_clock_set_resolution">
- <doc xml:space="preserve">Set the accuracy of the clock. Some clocks have the possibility to operate
- with different accuracy at the expense of more resource usage. There is
- normally no need to change the default resolution of a clock. The resolution
- of a clock can only be changed if the clock has the
- #GST_CLOCK_FLAG_CAN_SET_RESOLUTION flag set.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the new resolution of the clock.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="resolution" transfer-ownership="none">
- <doc xml:space="preserve">The resolution to set</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_synced"
- c:identifier="gst_clock_set_synced"
- version="1.6">
- <doc xml:space="preserve">Sets @clock to synced and emits the GstClock::synced signal, and wakes up any
- thread waiting in gst_clock_wait_for_sync().
- This function must only be called if GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC
- is set on the clock, and is intended to be called by subclasses only.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="synced" transfer-ownership="none">
- <doc xml:space="preserve">if the clock is synced</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_timeout" c:identifier="gst_clock_set_timeout">
- <doc xml:space="preserve">Set the amount of time, in nanoseconds, to sample master and slave
- clocks</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">a timeout</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="single_shot_id_reinit"
- c:identifier="gst_clock_single_shot_id_reinit">
- <doc xml:space="preserve">Reinitializes the provided single shot @id to the provided time. Does not
- modify the reference count.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the GstClockID could be reinitialized to the provided
- @time, else %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="id" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClockID</doc>
- <type name="ClockID" c:type="GstClockID"/>
- </parameter>
- <parameter name="time" transfer-ownership="none">
- <doc xml:space="preserve">The requested time.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="unadjust_unlocked"
- c:identifier="gst_clock_unadjust_unlocked">
- <doc xml:space="preserve">Converts the given @external clock time to the internal time of @clock,
- using the rate and reference time set with gst_clock_set_calibration().
- This function should be called with the clock's OBJECT_LOCK held and
- is mainly used by clock subclasses.
- This function is the reverse of gst_clock_adjust_unlocked().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the internal time of the clock corresponding to @external.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock to use</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="external" transfer-ownership="none">
- <doc xml:space="preserve">an external clock time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="unadjust_with_calibration"
- c:identifier="gst_clock_unadjust_with_calibration"
- version="1.8">
- <doc xml:space="preserve">Converts the given @external_target clock time to the internal time,
- using the passed calibration parameters. This function performs the
- same calculation as gst_clock_unadjust_unlocked() when called using the
- current calibration parameters.
- Note: The @clock parameter is unused and can be NULL</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the converted time of the clock.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstClock to use</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="external_target" transfer-ownership="none">
- <doc xml:space="preserve">a clock time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="cinternal" transfer-ownership="none">
- <doc xml:space="preserve">a reference internal time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="cexternal" transfer-ownership="none">
- <doc xml:space="preserve">a reference external time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="cnum" transfer-ownership="none">
- <doc xml:space="preserve">the numerator of the rate of the clock relative to its
- internal time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="cdenom" transfer-ownership="none">
- <doc xml:space="preserve">the denominator of the rate of the clock</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="wait_for_sync"
- c:identifier="gst_clock_wait_for_sync"
- version="1.6">
- <doc xml:space="preserve">Waits until @clock is synced for reporting the current time. If @timeout
- is %GST_CLOCK_TIME_NONE it will wait forever, otherwise it will time out
- after @timeout nanoseconds.
- For asynchronous waiting, the GstClock::synced signal can be used.
- This returns immediately with TRUE if GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC
- is not set on the clock, or if the clock is already synced.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if waiting was successful, or %FALSE on timeout</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </instance-parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">timeout for waiting or %GST_CLOCK_TIME_NONE</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <property name="timeout" writable="1" transfer-ownership="none">
- <type name="guint64" c:type="guint64"/>
- </property>
- <property name="window-size" writable="1" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </property>
- <property name="window-threshold" writable="1" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </property>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="ClockPrivate" c:type="GstClockPrivate*"/>
- </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="synced" when="last" version="1.6">
- <doc xml:space="preserve">Signaled on clocks with GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC set once
- the clock is synchronized, or when it completely lost synchronization.
- This signal will not be emitted on clocks without the flag.
- This signal will be emitted from an arbitrary thread, most likely not
- the application's main thread.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="synced" transfer-ownership="none">
- <doc xml:space="preserve">if the clock is synced now</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <callback name="ClockCallback" c:type="GstClockCallback">
- <doc xml:space="preserve">The function prototype of the callback.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE or %FALSE (currently unused)</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">The clock that triggered the callback</doc>
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- <parameter name="time" transfer-ownership="none">
- <doc xml:space="preserve">The time it was triggered</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="id" transfer-ownership="none">
- <doc xml:space="preserve">The #GstClockID that expired</doc>
- <type name="ClockID" c:type="GstClockID"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">user data passed in the gst_clock_id_wait_async() function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <record name="ClockClass"
- c:type="GstClockClass"
- glib:is-gtype-struct-for="Clock">
- <doc xml:space="preserve">GStreamer clock class. Override the vmethods to implement the clock
- functionality.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">the parent class structure</doc>
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="change_resolution">
- <callback name="change_resolution">
- <return-value transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- <parameter name="old_resolution" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="new_resolution" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_resolution">
- <callback name="get_resolution">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the resolution of the clock in units of #GstClockTime.
- MT safe.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_internal_time">
- <callback name="get_internal_time">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the internal time of the clock. Or GST_CLOCK_TIME_NONE when
- given invalid input.
- MT safe.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock to query</doc>
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="wait">
- <callback name="wait">
- <return-value transfer-ownership="none">
- <type name="ClockReturn" c:type="GstClockReturn"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- <parameter name="entry" transfer-ownership="none">
- <type name="ClockEntry" c:type="GstClockEntry*"/>
- </parameter>
- <parameter name="jitter" transfer-ownership="none">
- <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="wait_async">
- <callback name="wait_async">
- <return-value transfer-ownership="none">
- <type name="ClockReturn" c:type="GstClockReturn"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- <parameter name="entry" transfer-ownership="none">
- <type name="ClockEntry" c:type="GstClockEntry*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="unschedule">
- <callback name="unschedule">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- <parameter name="entry" transfer-ownership="none">
- <type name="ClockEntry" c:type="GstClockEntry*"/>
- </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="ClockEntry" c:type="GstClockEntry">
- <doc xml:space="preserve">All pending timeouts or periodic notifies are converted into
- an entry.
- Note that GstClockEntry should be treated as an opaque structure. It must
- not be extended or allocated using a custom allocator.</doc>
- <field name="refcount" writable="1">
- <doc xml:space="preserve">reference counter (read-only)</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="clock" writable="1">
- <type name="Clock" c:type="GstClock*"/>
- </field>
- <field name="type" writable="1">
- <type name="ClockEntryType" c:type="GstClockEntryType"/>
- </field>
- <field name="time" writable="1">
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="interval" writable="1">
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="status" writable="1">
- <type name="ClockReturn" c:type="GstClockReturn"/>
- </field>
- <field name="func" writable="1">
- <type name="ClockCallback" c:type="GstClockCallback"/>
- </field>
- <field name="user_data" writable="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="destroy_data" writable="1">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <field name="unscheduled" writable="1">
- <type name="gboolean" c:type="gboolean"/>
- </field>
- <field name="woken_up" writable="1">
- <type name="gboolean" c:type="gboolean"/>
- </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="ClockEntryType"
- glib:type-name="GstClockEntryType"
- glib:get-type="gst_clock_entry_type_get_type"
- c:type="GstClockEntryType">
- <doc xml:space="preserve">The type of the clock entry</doc>
- <member name="single"
- value="0"
- c:identifier="GST_CLOCK_ENTRY_SINGLE"
- glib:nick="single">
- <doc xml:space="preserve">a single shot timeout</doc>
- </member>
- <member name="periodic"
- value="1"
- c:identifier="GST_CLOCK_ENTRY_PERIODIC"
- glib:nick="periodic">
- <doc xml:space="preserve">a periodic timeout request</doc>
- </member>
- </enumeration>
- <bitfield name="ClockFlags"
- glib:type-name="GstClockFlags"
- glib:get-type="gst_clock_flags_get_type"
- c:type="GstClockFlags">
- <doc xml:space="preserve">The capabilities of this clock</doc>
- <member name="can_do_single_sync"
- value="16"
- c:identifier="GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC"
- glib:nick="can-do-single-sync">
- <doc xml:space="preserve">clock can do a single sync timeout request</doc>
- </member>
- <member name="can_do_single_async"
- value="32"
- c:identifier="GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC"
- glib:nick="can-do-single-async">
- <doc xml:space="preserve">clock can do a single async timeout request</doc>
- </member>
- <member name="can_do_periodic_sync"
- value="64"
- c:identifier="GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC"
- glib:nick="can-do-periodic-sync">
- <doc xml:space="preserve">clock can do sync periodic timeout requests</doc>
- </member>
- <member name="can_do_periodic_async"
- value="128"
- c:identifier="GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC"
- glib:nick="can-do-periodic-async">
- <doc xml:space="preserve">clock can do async periodic timeout callbacks</doc>
- </member>
- <member name="can_set_resolution"
- value="256"
- c:identifier="GST_CLOCK_FLAG_CAN_SET_RESOLUTION"
- glib:nick="can-set-resolution">
- <doc xml:space="preserve">clock's resolution can be changed</doc>
- </member>
- <member name="can_set_master"
- value="512"
- c:identifier="GST_CLOCK_FLAG_CAN_SET_MASTER"
- glib:nick="can-set-master">
- <doc xml:space="preserve">clock can be slaved to a master clock</doc>
- </member>
- <member name="needs_startup_sync"
- value="1024"
- c:identifier="GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC"
- glib:nick="needs-startup-sync">
- <doc xml:space="preserve">clock needs to be synced before it can be used
- (Since 1.6)</doc>
- </member>
- <member name="last"
- value="4096"
- c:identifier="GST_CLOCK_FLAG_LAST"
- glib:nick="last">
- <doc xml:space="preserve">subclasses can add additional flags starting from this flag</doc>
- </member>
- </bitfield>
- <record name="ClockPrivate" c:type="GstClockPrivate" disguised="1">
- </record>
- <enumeration name="ClockReturn"
- glib:type-name="GstClockReturn"
- glib:get-type="gst_clock_return_get_type"
- c:type="GstClockReturn">
- <doc xml:space="preserve">The return value of a clock operation.</doc>
- <member name="ok" value="0" c:identifier="GST_CLOCK_OK" glib:nick="ok">
- <doc xml:space="preserve">The operation succeeded.</doc>
- </member>
- <member name="early"
- value="1"
- c:identifier="GST_CLOCK_EARLY"
- glib:nick="early">
- <doc xml:space="preserve">The operation was scheduled too late.</doc>
- </member>
- <member name="unscheduled"
- value="2"
- c:identifier="GST_CLOCK_UNSCHEDULED"
- glib:nick="unscheduled">
- <doc xml:space="preserve">The clockID was unscheduled</doc>
- </member>
- <member name="busy"
- value="3"
- c:identifier="GST_CLOCK_BUSY"
- glib:nick="busy">
- <doc xml:space="preserve">The ClockID is busy</doc>
- </member>
- <member name="badtime"
- value="4"
- c:identifier="GST_CLOCK_BADTIME"
- glib:nick="badtime">
- <doc xml:space="preserve">A bad time was provided to a function.</doc>
- </member>
- <member name="error"
- value="5"
- c:identifier="GST_CLOCK_ERROR"
- glib:nick="error">
- <doc xml:space="preserve">An error occurred</doc>
- </member>
- <member name="unsupported"
- value="6"
- c:identifier="GST_CLOCK_UNSUPPORTED"
- glib:nick="unsupported">
- <doc xml:space="preserve">Operation is not supported</doc>
- </member>
- <member name="done"
- value="7"
- c:identifier="GST_CLOCK_DONE"
- glib:nick="done">
- <doc xml:space="preserve">The ClockID is done waiting</doc>
- </member>
- </enumeration>
- <enumeration name="ClockType"
- glib:type-name="GstClockType"
- glib:get-type="gst_clock_type_get_type"
- c:type="GstClockType">
- <doc xml:space="preserve">The different kind of clocks.</doc>
- <member name="realtime"
- value="0"
- c:identifier="GST_CLOCK_TYPE_REALTIME"
- glib:nick="realtime">
- <doc xml:space="preserve">time since Epoch</doc>
- </member>
- <member name="monotonic"
- value="1"
- c:identifier="GST_CLOCK_TYPE_MONOTONIC"
- glib:nick="monotonic">
- <doc xml:space="preserve">monotonic time since some unspecified starting
- point</doc>
- </member>
- <member name="other"
- value="2"
- c:identifier="GST_CLOCK_TYPE_OTHER"
- glib:nick="other">
- <doc xml:space="preserve">some other time source is used (Since 1.0.5)</doc>
- </member>
- </enumeration>
- <record name="Context"
- c:type="GstContext"
- glib:type-name="GstContext"
- glib:get-type="gst_context_get_type"
- c:symbol-prefix="context">
- <doc xml:space="preserve">#GstContext is a container object used to store contexts like a device
- context, a display server connection and similar concepts that should
- be shared between multiple elements.
- Applications can set a context on a complete pipeline by using
- gst_element_set_context(), which will then be propagated to all
- child elements. Elements can handle these in #GstElementClass.set_context()
- and merge them with the context information they already have.
- When an element needs a context it will do the following actions in this
- order until one step succeeds:
- 1. Check if the element already has a context
- 2. Query downstream with GST_QUERY_CONTEXT for the context
- 3. Query upstream with GST_QUERY_CONTEXT for the context
- 4. Post a GST_MESSAGE_NEED_CONTEXT message on the bus with the required
- context types and afterwards check if a usable context was set now
- 5. Create a context by itself and post a GST_MESSAGE_HAVE_CONTEXT message
- on the bus.
- Bins will catch GST_MESSAGE_NEED_CONTEXT messages and will set any previously
- known context on the element that asks for it if possible. Otherwise the
- application should provide one if it can.
- #GstContext<!-- -->s can be persistent.
- A persistent #GstContext is kept in elements when they reach
- %GST_STATE_NULL, non-persistent ones will be removed.
- Also, a non-persistent context won't override a previous persistent
- context set to an element.</doc>
- <constructor name="new" c:identifier="gst_context_new" version="1.2">
- <doc xml:space="preserve">Create a new context.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new context.</doc>
- <type name="Context" c:type="GstContext*"/>
- </return-value>
- <parameters>
- <parameter name="context_type" transfer-ownership="none">
- <doc xml:space="preserve">Context type</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="persistent" transfer-ownership="none">
- <doc xml:space="preserve">Persistent context</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_context_type"
- c:identifier="gst_context_get_context_type"
- version="1.2">
- <doc xml:space="preserve">Get the type of @context.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The type of the context.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">The #GstContext.</doc>
- <type name="Context" c:type="const GstContext*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_structure"
- c:identifier="gst_context_get_structure"
- version="1.2">
- <doc xml:space="preserve">Access the structure of the context.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The structure of the context. The structure is
- still owned by the context, which means that you should not modify it,
- free it and that the pointer becomes invalid when you free the context.</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">The #GstContext.</doc>
- <type name="Context" c:type="const GstContext*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_context_type"
- c:identifier="gst_context_has_context_type"
- version="1.2">
- <doc xml:space="preserve">Checks if @context has @context_type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @context has @context_type.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">The #GstContext.</doc>
- <type name="Context" c:type="const GstContext*"/>
- </instance-parameter>
- <parameter name="context_type" transfer-ownership="none">
- <doc xml:space="preserve">Context type to check.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_persistent"
- c:identifier="gst_context_is_persistent"
- version="1.2">
- <doc xml:space="preserve">Check if @context is persistent.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the context is persistent.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">The #GstContext.</doc>
- <type name="Context" c:type="const GstContext*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="writable_structure"
- c:identifier="gst_context_writable_structure"
- version="1.2">
- <doc xml:space="preserve">Get a writable version of the structure.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The structure of the context. The structure is still
- owned by the context, which means that you should not free it and
- that the pointer becomes invalid when you free the context.
- This function checks if @context is writable.</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">The #GstContext.</doc>
- <type name="Context" c:type="GstContext*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <class name="ControlBinding"
- c:symbol-prefix="control_binding"
- c:type="GstControlBinding"
- parent="Object"
- abstract="1"
- glib:type-name="GstControlBinding"
- glib:get-type="gst_control_binding_get_type"
- glib:type-struct="ControlBindingClass">
- <doc xml:space="preserve">A base class for value mapping objects that attaches control sources to gobject
- properties. Such an object is taking one or more #GstControlSource instances,
- combines them and maps the resulting value to the type and value range of the
- bound property.</doc>
- <virtual-method name="get_g_value_array" invoker="get_g_value_array">
- <doc xml:space="preserve">Gets a number of #GValues for the given controlled property starting at the
- requested time. The array @values need to hold enough space for @n_values of
- #GValue.
- This function is useful if one wants to e.g. draw a graph of the control
- curve or apply a control curve sample by sample.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="binding" transfer-ownership="none">
- <doc xml:space="preserve">the control binding</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </instance-parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time that should be processed</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="interval" transfer-ownership="none">
- <doc xml:space="preserve">the time spacing between subsequent values</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="n_values" transfer-ownership="none">
- <doc xml:space="preserve">the number of values</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="values" transfer-ownership="none">
- <doc xml:space="preserve">array to put control-values in</doc>
- <array length="2" zero-terminated="0" c:type="GValue*">
- <type name="GObject.Value" c:type="GValue"/>
- </array>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_value" invoker="get_value">
- <doc xml:space="preserve">Gets the value for the given controlled property at the requested time.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the GValue of the property at the given time,
- or %NULL if the property isn't controlled.</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </return-value>
- <parameters>
- <instance-parameter name="binding" transfer-ownership="none">
- <doc xml:space="preserve">the control binding</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </instance-parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time the control-change should be read from</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_value_array"
- invoker="get_value_array"
- introspectable="0">
- <doc xml:space="preserve">Gets a number of values for the given controlled property starting at the
- requested time. The array @values need to hold enough space for @n_values of
- the same type as the objects property's type.
- This function is useful if one wants to e.g. draw a graph of the control
- curve or apply a control curve sample by sample.
- The values are unboxed and ready to be used. The similar function
- gst_control_binding_get_g_value_array() returns the array as #GValues and is
- more suitable for bindings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="binding" transfer-ownership="none">
- <doc xml:space="preserve">the control binding</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </instance-parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time that should be processed</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="interval" transfer-ownership="none">
- <doc xml:space="preserve">the time spacing between subsequent values</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="n_values" transfer-ownership="none">
- <doc xml:space="preserve">the number of values</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="values"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">array to put control-values in</doc>
- <array length="2" zero-terminated="0" c:type="gpointer">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="sync_values" invoker="sync_values">
- <doc xml:space="preserve">Sets the property of the @object, according to the #GstControlSources that
- handle them and for the given timestamp.
- If this function fails, it is most likely the application developers fault.
- Most probably the control sources are not setup correctly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the controller value could be applied to the object
- property, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="binding" transfer-ownership="none">
- <doc xml:space="preserve">the control binding</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </instance-parameter>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object that has controlled properties</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time that should be processed</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="last_sync" transfer-ownership="none">
- <doc xml:space="preserve">the last time this was called</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_g_value_array"
- c:identifier="gst_control_binding_get_g_value_array">
- <doc xml:space="preserve">Gets a number of #GValues for the given controlled property starting at the
- requested time. The array @values need to hold enough space for @n_values of
- #GValue.
- This function is useful if one wants to e.g. draw a graph of the control
- curve or apply a control curve sample by sample.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="binding" transfer-ownership="none">
- <doc xml:space="preserve">the control binding</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </instance-parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time that should be processed</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="interval" transfer-ownership="none">
- <doc xml:space="preserve">the time spacing between subsequent values</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="n_values" transfer-ownership="none">
- <doc xml:space="preserve">the number of values</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="values" transfer-ownership="none">
- <doc xml:space="preserve">array to put control-values in</doc>
- <array length="2" zero-terminated="0" c:type="GValue*">
- <type name="GObject.Value" c:type="GValue"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="get_value" c:identifier="gst_control_binding_get_value">
- <doc xml:space="preserve">Gets the value for the given controlled property at the requested time.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the GValue of the property at the given time,
- or %NULL if the property isn't controlled.</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </return-value>
- <parameters>
- <instance-parameter name="binding" transfer-ownership="none">
- <doc xml:space="preserve">the control binding</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </instance-parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time the control-change should be read from</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_value_array"
- c:identifier="gst_control_binding_get_value_array"
- introspectable="0">
- <doc xml:space="preserve">Gets a number of values for the given controlled property starting at the
- requested time. The array @values need to hold enough space for @n_values of
- the same type as the objects property's type.
- This function is useful if one wants to e.g. draw a graph of the control
- curve or apply a control curve sample by sample.
- The values are unboxed and ready to be used. The similar function
- gst_control_binding_get_g_value_array() returns the array as #GValues and is
- more suitable for bindings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="binding" transfer-ownership="none">
- <doc xml:space="preserve">the control binding</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </instance-parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time that should be processed</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="interval" transfer-ownership="none">
- <doc xml:space="preserve">the time spacing between subsequent values</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="n_values" transfer-ownership="none">
- <doc xml:space="preserve">the number of values</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="values" transfer-ownership="none">
- <doc xml:space="preserve">array to put control-values in</doc>
- <array length="2" zero-terminated="0" c:type="gpointer">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="is_disabled"
- c:identifier="gst_control_binding_is_disabled">
- <doc xml:space="preserve">Check if the control binding is disabled.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the binding is inactive</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="binding" transfer-ownership="none">
- <doc xml:space="preserve">the control binding</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_disabled"
- c:identifier="gst_control_binding_set_disabled">
- <doc xml:space="preserve">This function is used to disable a control binding for some time, i.e.
- gst_object_sync_values() will do nothing.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="binding" transfer-ownership="none">
- <doc xml:space="preserve">the control binding</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </instance-parameter>
- <parameter name="disabled" transfer-ownership="none">
- <doc xml:space="preserve">boolean that specifies whether to disable the controller
- or not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="sync_values"
- c:identifier="gst_control_binding_sync_values">
- <doc xml:space="preserve">Sets the property of the @object, according to the #GstControlSources that
- handle them and for the given timestamp.
- If this function fails, it is most likely the application developers fault.
- Most probably the control sources are not setup correctly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the controller value could be applied to the object
- property, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="binding" transfer-ownership="none">
- <doc xml:space="preserve">the control binding</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </instance-parameter>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object that has controlled properties</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time that should be processed</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="last_sync" transfer-ownership="none">
- <doc xml:space="preserve">the last time this was called</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <property name="name"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="object"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="Object"/>
- </property>
- <field name="parent">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="name">
- <doc xml:space="preserve">name of the property of this binding</doc>
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="pspec">
- <doc xml:space="preserve">#GParamSpec for this property</doc>
- <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
- </field>
- <field name="object" readable="0" private="1">
- <type name="Object" c:type="GstObject*"/>
- </field>
- <field name="disabled" readable="0" private="1">
- <type name="gboolean" c:type="gboolean"/>
- </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="ControlBindingClass"
- c:type="GstControlBindingClass"
- glib:is-gtype-struct-for="ControlBinding">
- <doc xml:space="preserve">The class structure of #GstControlBinding.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">Parent class</doc>
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="sync_values">
- <callback name="sync_values">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the controller value could be applied to the object
- property, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="binding" transfer-ownership="none">
- <doc xml:space="preserve">the control binding</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object that has controlled properties</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time that should be processed</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="last_sync" transfer-ownership="none">
- <doc xml:space="preserve">the last time this was called</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_value">
- <callback name="get_value">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the GValue of the property at the given time,
- or %NULL if the property isn't controlled.</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </return-value>
- <parameters>
- <parameter name="binding" transfer-ownership="none">
- <doc xml:space="preserve">the control binding</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time the control-change should be read from</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_value_array" introspectable="0">
- <callback name="get_value_array" introspectable="0">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="binding" transfer-ownership="none">
- <doc xml:space="preserve">the control binding</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time that should be processed</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="interval" transfer-ownership="none">
- <doc xml:space="preserve">the time spacing between subsequent values</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="n_values" transfer-ownership="none">
- <doc xml:space="preserve">the number of values</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="values"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">array to put control-values in</doc>
- <array length="3" zero-terminated="0" c:type="gpointer">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_g_value_array">
- <callback name="get_g_value_array">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="binding" transfer-ownership="none">
- <doc xml:space="preserve">the control binding</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time that should be processed</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="interval" transfer-ownership="none">
- <doc xml:space="preserve">the time spacing between subsequent values</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="n_values" transfer-ownership="none">
- <doc xml:space="preserve">the number of values</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="values" transfer-ownership="none">
- <doc xml:space="preserve">array to put control-values in</doc>
- <array length="3" zero-terminated="0" c:type="GValue*">
- <type name="GObject.Value" c:type="GValue"/>
- </array>
- </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>
- <callback name="ControlBindingConvert" c:type="GstControlBindingConvert">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="binding" transfer-ownership="none">
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </parameter>
- <parameter name="src_value" transfer-ownership="none">
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- <parameter name="dest_value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </callback>
- <class name="ControlSource"
- c:symbol-prefix="control_source"
- c:type="GstControlSource"
- parent="Object"
- abstract="1"
- glib:type-name="GstControlSource"
- glib:get-type="gst_control_source_get_type"
- glib:type-struct="ControlSourceClass">
- <doc xml:space="preserve">The #GstControlSource is a base class for control value sources that could
- be used to get timestamp-value pairs. A control source essentially is a
- function over time, returning float values between 0.0 and 1.0.
- A #GstControlSource is used by first getting an instance of a specific
- control-source, creating a binding for the control-source to the target property
- of the element and then adding the binding to the element. The binding will
- convert the data types and value range to fit to the bound property.
- For implementing a new #GstControlSource one has to implement
- #GstControlSourceGetValue and #GstControlSourceGetValueArray functions.
- These are then used by gst_control_source_get_value() and
- gst_control_source_get_value_array() to get values for specific timestamps.</doc>
- <method name="control_source_get_value"
- c:identifier="gst_control_source_get_value">
- <doc xml:space="preserve">Gets the value for this #GstControlSource at a given timestamp.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE if the value couldn't be returned, %TRUE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">the #GstControlSource object</doc>
- <type name="ControlSource" c:type="GstControlSource*"/>
- </instance-parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time for which the value should be returned</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">the value</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </method>
- <method name="control_source_get_value_array"
- c:identifier="gst_control_source_get_value_array">
- <doc xml:space="preserve">Gets an array of values for for this #GstControlSource. Values that are
- undefined contain NANs.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">the #GstControlSource object</doc>
- <type name="ControlSource" c:type="GstControlSource*"/>
- </instance-parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the first timestamp</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="interval" transfer-ownership="none">
- <doc xml:space="preserve">the time steps</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="n_values" transfer-ownership="none">
- <doc xml:space="preserve">the number of values to fetch</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="values" transfer-ownership="none">
- <doc xml:space="preserve">array to put control-values in</doc>
- <array length="2" zero-terminated="0" c:type="gdouble*">
- <type name="gdouble" c:type="gdouble"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <field name="parent">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="get_value">
- <doc xml:space="preserve">Function for returning a value for a given timestamp</doc>
- <type name="ControlSourceGetValue" c:type="GstControlSourceGetValue"/>
- </field>
- <field name="get_value_array">
- <doc xml:space="preserve">Function for returning a values array for a given timestamp</doc>
- <type name="ControlSourceGetValueArray"
- c:type="GstControlSourceGetValueArray"/>
- </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="ControlSourceClass"
- c:type="GstControlSourceClass"
- glib:is-gtype-struct-for="ControlSource">
- <doc xml:space="preserve">The class structure of #GstControlSource.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">Parent class</doc>
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </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="ControlSourceGetValue" c:type="GstControlSourceGetValue">
- <doc xml:space="preserve">Function for returning a value for a given timestamp.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the value was successfully calculated.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">the #GstControlSource instance</doc>
- <type name="ControlSource" c:type="GstControlSource*"/>
- </parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">timestamp for which a value should be calculated</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a value which will be set to the result.</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="ControlSourceGetValueArray"
- c:type="GstControlSourceGetValueArray">
- <doc xml:space="preserve">Function for returning an array of values for starting at a given timestamp.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the values were successfully calculated.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">the #GstControlSource instance</doc>
- <type name="ControlSource" c:type="GstControlSource*"/>
- </parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">timestamp for which a value should be calculated</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="interval" transfer-ownership="none">
- <doc xml:space="preserve">the time spacing between subsequent values</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="n_values" transfer-ownership="none">
- <doc xml:space="preserve">the number of values</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="values" transfer-ownership="none">
- <doc xml:space="preserve">array to put control-values in</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="CoreError"
- glib:type-name="GstCoreError"
- glib:get-type="gst_core_error_get_type"
- c:type="GstCoreError"
- glib:error-domain="gst-core-error-quark">
- <doc xml:space="preserve">Core errors are errors inside the core GStreamer library.</doc>
- <member name="failed"
- value="1"
- c:identifier="GST_CORE_ERROR_FAILED"
- glib:nick="failed">
- <doc xml:space="preserve">a general error which doesn't fit in any other
- category. Make sure you add a custom message to the error call.</doc>
- </member>
- <member name="too_lazy"
- value="2"
- c:identifier="GST_CORE_ERROR_TOO_LAZY"
- glib:nick="too-lazy">
- <doc xml:space="preserve">do not use this except as a placeholder for
- deciding where to go while developing code.</doc>
- </member>
- <member name="not_implemented"
- value="3"
- c:identifier="GST_CORE_ERROR_NOT_IMPLEMENTED"
- glib:nick="not-implemented">
- <doc xml:space="preserve">use this when you do not want to implement
- this functionality yet.</doc>
- </member>
- <member name="state_change"
- value="4"
- c:identifier="GST_CORE_ERROR_STATE_CHANGE"
- glib:nick="state-change">
- <doc xml:space="preserve">used for state change errors.</doc>
- </member>
- <member name="pad"
- value="5"
- c:identifier="GST_CORE_ERROR_PAD"
- glib:nick="pad">
- <doc xml:space="preserve">used for pad-related errors.</doc>
- </member>
- <member name="thread"
- value="6"
- c:identifier="GST_CORE_ERROR_THREAD"
- glib:nick="thread">
- <doc xml:space="preserve">used for thread-related errors.</doc>
- </member>
- <member name="negotiation"
- value="7"
- c:identifier="GST_CORE_ERROR_NEGOTIATION"
- glib:nick="negotiation">
- <doc xml:space="preserve">used for negotiation-related errors.</doc>
- </member>
- <member name="event"
- value="8"
- c:identifier="GST_CORE_ERROR_EVENT"
- glib:nick="event">
- <doc xml:space="preserve">used for event-related errors.</doc>
- </member>
- <member name="seek"
- value="9"
- c:identifier="GST_CORE_ERROR_SEEK"
- glib:nick="seek">
- <doc xml:space="preserve">used for seek-related errors.</doc>
- </member>
- <member name="caps"
- value="10"
- c:identifier="GST_CORE_ERROR_CAPS"
- glib:nick="caps">
- <doc xml:space="preserve">used for caps-related errors.</doc>
- </member>
- <member name="tag"
- value="11"
- c:identifier="GST_CORE_ERROR_TAG"
- glib:nick="tag">
- <doc xml:space="preserve">used for negotiation-related errors.</doc>
- </member>
- <member name="missing_plugin"
- value="12"
- c:identifier="GST_CORE_ERROR_MISSING_PLUGIN"
- glib:nick="missing-plugin">
- <doc xml:space="preserve">used if a plugin is missing.</doc>
- </member>
- <member name="clock"
- value="13"
- c:identifier="GST_CORE_ERROR_CLOCK"
- glib:nick="clock">
- <doc xml:space="preserve">used for clock related errors.</doc>
- </member>
- <member name="disabled"
- value="14"
- c:identifier="GST_CORE_ERROR_DISABLED"
- glib:nick="disabled">
- <doc xml:space="preserve">used if functionality has been disabled at
- compile time.</doc>
- </member>
- <member name="num_errors"
- value="15"
- c:identifier="GST_CORE_ERROR_NUM_ERRORS"
- glib:nick="num-errors">
- <doc xml:space="preserve">the number of core error types.</doc>
- </member>
- <function name="quark" c:identifier="gst_core_error_quark">
- <return-value transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- </enumeration>
- <constant name="DEBUG_BG_MASK" value="240" c:type="GST_DEBUG_BG_MASK">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="DEBUG_FG_MASK" value="15" c:type="GST_DEBUG_FG_MASK">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="DEBUG_FORMAT_MASK"
- value="65280"
- c:type="GST_DEBUG_FORMAT_MASK">
- <type name="gint" c:type="gint"/>
- </constant>
- <record name="DateTime"
- c:type="GstDateTime"
- glib:type-name="GstDateTime"
- glib:get-type="gst_date_time_get_type"
- c:symbol-prefix="date_time">
- <doc xml:space="preserve">Struct to store date, time and timezone information altogether.
- #GstDateTime is refcounted and immutable.
- Date information is handled using the proleptic Gregorian calendar.
- Provides basic creation functions and accessor functions to its fields.</doc>
- <constructor name="new" c:identifier="gst_date_time_new">
- <doc xml:space="preserve">Creates a new #GstDateTime using the date and times in the gregorian calendar
- in the supplied timezone.
- @year should be from 1 to 9999, @month should be from 1 to 12, @day from
- 1 to 31, @hour from 0 to 23, @minutes and @seconds from 0 to 59.
- Note that @tzoffset is a float and was chosen so for being able to handle
- some fractional timezones, while it still keeps the readability of
- representing it in hours for most timezones.
- If value is -1 then all over value will be ignored. For example
- if @month == -1, then #GstDateTime will created only for @year. If
- @day == -1, then #GstDateTime will created for @year and @month and
- so on.
- Free-function: gst_date_time_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the newly created #GstDateTime</doc>
- <type name="DateTime" c:type="GstDateTime*"/>
- </return-value>
- <parameters>
- <parameter name="tzoffset" transfer-ownership="none">
- <doc xml:space="preserve">Offset from UTC in hours.</doc>
- <type name="gfloat" c:type="gfloat"/>
- </parameter>
- <parameter name="year" transfer-ownership="none">
- <doc xml:space="preserve">the gregorian year</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="month" transfer-ownership="none">
- <doc xml:space="preserve">the gregorian month</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="day" transfer-ownership="none">
- <doc xml:space="preserve">the day of the gregorian month</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="hour" transfer-ownership="none">
- <doc xml:space="preserve">the hour of the day</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="minute" transfer-ownership="none">
- <doc xml:space="preserve">the minute of the hour</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="seconds" transfer-ownership="none">
- <doc xml:space="preserve">the second of the minute</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_g_date_time"
- c:identifier="gst_date_time_new_from_g_date_time">
- <doc xml:space="preserve">Creates a new #GstDateTime from a #GDateTime object.
- Free-function: gst_date_time_unref</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a newly created #GstDateTime,
- or %NULL on error</doc>
- <type name="DateTime" c:type="GstDateTime*"/>
- </return-value>
- <parameters>
- <parameter name="dt" transfer-ownership="full">
- <doc xml:space="preserve">the #GDateTime. The new #GstDateTime takes ownership.</doc>
- <type name="GLib.DateTime" c:type="GDateTime*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_iso8601_string"
- c:identifier="gst_date_time_new_from_iso8601_string">
- <doc xml:space="preserve">Tries to parse common variants of ISO-8601 datetime strings into a
- #GstDateTime. Possible input formats are (for example):
- 2012-06-30T22:46:43Z, 2012, 2012-06, 2012-06-30, 2012-06-30T22:46:43-0430,
- 2012-06-30T22:46Z, 2012-06-30T22:46-0430, 2012-06-30 22:46,
- 2012-06-30 22:46:43, 2012-06-00, 2012-00-00, 2012-00-30, 22:46:43Z, 22:46Z,
- 22:46:43-0430, 22:46-0430, 22:46:30, 22:46
- If no date is provided, it is assumed to be "today" in the timezone
- provided (if any), otherwise UTC.
- Free-function: gst_date_time_unref</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a newly created #GstDateTime,
- or %NULL on error</doc>
- <type name="DateTime" c:type="GstDateTime*"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <doc xml:space="preserve">ISO 8601-formatted datetime string.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_unix_epoch_local_time"
- c:identifier="gst_date_time_new_from_unix_epoch_local_time">
- <doc xml:space="preserve">Creates a new #GstDateTime using the time since Jan 1, 1970 specified by
- @secs. The #GstDateTime is in the local timezone.
- Free-function: gst_date_time_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the newly created #GstDateTime</doc>
- <type name="DateTime" c:type="GstDateTime*"/>
- </return-value>
- <parameters>
- <parameter name="secs" transfer-ownership="none">
- <doc xml:space="preserve">seconds from the Unix epoch</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_unix_epoch_utc"
- c:identifier="gst_date_time_new_from_unix_epoch_utc">
- <doc xml:space="preserve">Creates a new #GstDateTime using the time since Jan 1, 1970 specified by
- @secs. The #GstDateTime is in the UTC timezone.
- Free-function: gst_date_time_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the newly created #GstDateTime</doc>
- <type name="DateTime" c:type="GstDateTime*"/>
- </return-value>
- <parameters>
- <parameter name="secs" transfer-ownership="none">
- <doc xml:space="preserve">seconds from the Unix epoch</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_local_time"
- c:identifier="gst_date_time_new_local_time">
- <doc xml:space="preserve">Creates a new #GstDateTime using the date and times in the gregorian calendar
- in the local timezone.
- @year should be from 1 to 9999, @month should be from 1 to 12, @day from
- 1 to 31, @hour from 0 to 23, @minutes and @seconds from 0 to 59.
- If @month is -1, then the #GstDateTime created will only contain @year,
- and all other fields will be considered not set.
- If @day is -1, then the #GstDateTime created will only contain @year and
- @month and all other fields will be considered not set.
- If @hour is -1, then the #GstDateTime created will only contain @year and
- @month and @day, and the time fields will be considered not set. In this
- case @minute and @seconds should also be -1.
- Free-function: gst_date_time_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the newly created #GstDateTime</doc>
- <type name="DateTime" c:type="GstDateTime*"/>
- </return-value>
- <parameters>
- <parameter name="year" transfer-ownership="none">
- <doc xml:space="preserve">the gregorian year</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="month" transfer-ownership="none">
- <doc xml:space="preserve">the gregorian month, or -1</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="day" transfer-ownership="none">
- <doc xml:space="preserve">the day of the gregorian month, or -1</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="hour" transfer-ownership="none">
- <doc xml:space="preserve">the hour of the day, or -1</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="minute" transfer-ownership="none">
- <doc xml:space="preserve">the minute of the hour, or -1</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="seconds" transfer-ownership="none">
- <doc xml:space="preserve">the second of the minute, or -1</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_now_local_time"
- c:identifier="gst_date_time_new_now_local_time">
- <doc xml:space="preserve">Creates a new #GstDateTime representing the current date and time.
- Free-function: gst_date_time_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the newly created #GstDateTime which should
- be freed with gst_date_time_unref().</doc>
- <type name="DateTime" c:type="GstDateTime*"/>
- </return-value>
- </constructor>
- <constructor name="new_now_utc" c:identifier="gst_date_time_new_now_utc">
- <doc xml:space="preserve">Creates a new #GstDateTime that represents the current instant at Universal
- coordinated time.
- Free-function: gst_date_time_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the newly created #GstDateTime which should
- be freed with gst_date_time_unref().</doc>
- <type name="DateTime" c:type="GstDateTime*"/>
- </return-value>
- </constructor>
- <constructor name="new_y" c:identifier="gst_date_time_new_y">
- <doc xml:space="preserve">Creates a new #GstDateTime using the date and times in the gregorian calendar
- in the local timezone.
- @year should be from 1 to 9999.
- Free-function: gst_date_time_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the newly created #GstDateTime</doc>
- <type name="DateTime" c:type="GstDateTime*"/>
- </return-value>
- <parameters>
- <parameter name="year" transfer-ownership="none">
- <doc xml:space="preserve">the gregorian year</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_ym" c:identifier="gst_date_time_new_ym">
- <doc xml:space="preserve">Creates a new #GstDateTime using the date and times in the gregorian calendar
- in the local timezone.
- @year should be from 1 to 9999, @month should be from 1 to 12.
- If value is -1 then all over value will be ignored. For example
- if @month == -1, then #GstDateTime will created only for @year.
- Free-function: gst_date_time_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the newly created #GstDateTime</doc>
- <type name="DateTime" c:type="GstDateTime*"/>
- </return-value>
- <parameters>
- <parameter name="year" transfer-ownership="none">
- <doc xml:space="preserve">the gregorian year</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="month" transfer-ownership="none">
- <doc xml:space="preserve">the gregorian month</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_ymd" c:identifier="gst_date_time_new_ymd">
- <doc xml:space="preserve">Creates a new #GstDateTime using the date and times in the gregorian calendar
- in the local timezone.
- @year should be from 1 to 9999, @month should be from 1 to 12, @day from
- 1 to 31.
- If value is -1 then all over value will be ignored. For example
- if @month == -1, then #GstDateTime will created only for @year. If
- @day == -1, then #GstDateTime will created for @year and @month and
- so on.
- Free-function: gst_date_time_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the newly created #GstDateTime</doc>
- <type name="DateTime" c:type="GstDateTime*"/>
- </return-value>
- <parameters>
- <parameter name="year" transfer-ownership="none">
- <doc xml:space="preserve">the gregorian year</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="month" transfer-ownership="none">
- <doc xml:space="preserve">the gregorian month</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="day" transfer-ownership="none">
- <doc xml:space="preserve">the day of the gregorian month</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_day" c:identifier="gst_date_time_get_day">
- <doc xml:space="preserve">Returns the day of the month of this #GstDateTime.
- Call gst_date_time_has_day before, to avoid warnings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The day of this #GstDateTime</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDateTime</doc>
- <type name="DateTime" c:type="const GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_hour" c:identifier="gst_date_time_get_hour">
- <doc xml:space="preserve">Retrieves the hour of the day represented by @datetime in the gregorian
- calendar. The return is in the range of 0 to 23.
- Call gst_date_time_has_haur before, to avoid warnings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the hour of the day</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDateTime</doc>
- <type name="DateTime" c:type="const GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_microsecond"
- c:identifier="gst_date_time_get_microsecond">
- <doc xml:space="preserve">Retrieves the fractional part of the seconds in microseconds represented by
- @datetime in the gregorian calendar.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the microsecond of the second</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDateTime</doc>
- <type name="DateTime" c:type="const GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_minute" c:identifier="gst_date_time_get_minute">
- <doc xml:space="preserve">Retrieves the minute of the hour represented by @datetime in the gregorian
- calendar.
- Call gst_date_time_has_minute before, to avoid warnings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the minute of the hour</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDateTime</doc>
- <type name="DateTime" c:type="const GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_month" c:identifier="gst_date_time_get_month">
- <doc xml:space="preserve">Returns the month of this #GstDateTime. January is 1, February is 2, etc..
- Call gst_date_time_has_month before, to avoid warnings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The month of this #GstDateTime</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDateTime</doc>
- <type name="DateTime" c:type="const GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_second" c:identifier="gst_date_time_get_second">
- <doc xml:space="preserve">Retrieves the second of the minute represented by @datetime in the gregorian
- calendar.
- Call gst_date_time_has_second before, to avoid warnings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the second represented by @datetime</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDateTime</doc>
- <type name="DateTime" c:type="const GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_time_zone_offset"
- c:identifier="gst_date_time_get_time_zone_offset">
- <doc xml:space="preserve">Retrieves the offset from UTC in hours that the timezone specified
- by @datetime represents. Timezones ahead (to the east) of UTC have positive
- values, timezones before (to the west) of UTC have negative values.
- If @datetime represents UTC time, then the offset is zero.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the offset from UTC in hours</doc>
- <type name="gfloat" c:type="gfloat"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDateTime</doc>
- <type name="DateTime" c:type="const GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_year" c:identifier="gst_date_time_get_year">
- <doc xml:space="preserve">Returns the year of this #GstDateTime
- Call gst_date_time_has_year before, to avoid warnings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The year of this #GstDateTime</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDateTime</doc>
- <type name="DateTime" c:type="const GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_day" c:identifier="gst_date_time_has_day">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @datetime<!-- -->'s day field is set, otherwise %FALSE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDateTime</doc>
- <type name="DateTime" c:type="const GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_month" c:identifier="gst_date_time_has_month">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @datetime<!-- -->'s month field is set, otherwise %FALSE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDateTime</doc>
- <type name="DateTime" c:type="const GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_second" c:identifier="gst_date_time_has_second">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @datetime<!-- -->'s second field is set, otherwise %FALSE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDateTime</doc>
- <type name="DateTime" c:type="const GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_time" c:identifier="gst_date_time_has_time">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @datetime<!-- -->'s hour and minute fields are set,
- otherwise %FALSE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDateTime</doc>
- <type name="DateTime" c:type="const GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_year" c:identifier="gst_date_time_has_year">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @datetime<!-- -->'s year field is set (which should always
- be the case), otherwise %FALSE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDateTime</doc>
- <type name="DateTime" c:type="const GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="ref" c:identifier="gst_date_time_ref">
- <doc xml:space="preserve">Atomically increments the reference count of @datetime by one.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the reference @datetime</doc>
- <type name="DateTime" c:type="GstDateTime*"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDateTime</doc>
- <type name="DateTime" c:type="GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="to_g_date_time"
- c:identifier="gst_date_time_to_g_date_time">
- <doc xml:space="preserve">Creates a new #GDateTime from a fully defined #GstDateTime object.
- Free-function: g_date_time_unref</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a newly created #GDateTime, or
- %NULL on error</doc>
- <type name="GLib.DateTime" c:type="GDateTime*"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="none">
- <doc xml:space="preserve">GstDateTime.</doc>
- <type name="DateTime" c:type="GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="to_iso8601_string"
- c:identifier="gst_date_time_to_iso8601_string">
- <doc xml:space="preserve">Create a minimal string compatible with ISO-8601. Possible output formats
- are (for example): 2012, 2012-06, 2012-06-23, 2012-06-23T23:30Z,
- 2012-06-23T23:30+0100, 2012-06-23T23:30:59Z, 2012-06-23T23:30:59+0100</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a newly allocated string formatted according
- to ISO 8601 and only including the datetime fields that are
- valid, or %NULL in case there was an error. The string should
- be freed with g_free().</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="none">
- <doc xml:space="preserve">GstDateTime.</doc>
- <type name="DateTime" c:type="GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref" c:identifier="gst_date_time_unref">
- <doc xml:space="preserve">Atomically decrements the reference count of @datetime by one. When the
- reference count reaches zero, the structure is freed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="datetime" transfer-ownership="full">
- <doc xml:space="preserve">a #GstDateTime</doc>
- <type name="DateTime" c:type="GstDateTime*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <record name="DebugCategory" c:type="GstDebugCategory">
- <doc xml:space="preserve">This is the struct that describes the categories. Once initialized with
- #GST_DEBUG_CATEGORY_INIT, its values can't be changed anymore.</doc>
- <field name="threshold" readable="0" private="1">
- <type name="gint" c:type="gint"/>
- </field>
- <field name="color" readable="0" private="1">
- <type name="guint" c:type="guint"/>
- </field>
- <field name="name" readable="0" private="1">
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="description" readable="0" private="1">
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <method name="free" c:identifier="gst_debug_category_free">
- <doc xml:space="preserve">Removes and frees the category and all associated resources.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="category" transfer-ownership="none">
- <doc xml:space="preserve">#GstDebugCategory to free.</doc>
- <type name="DebugCategory" c:type="GstDebugCategory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_color" c:identifier="gst_debug_category_get_color">
- <doc xml:space="preserve">Returns the color of a debug category used when printing output in this
- category.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the color of the category.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="category" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDebugCategory to get the color of.</doc>
- <type name="DebugCategory" c:type="GstDebugCategory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_description"
- c:identifier="gst_debug_category_get_description">
- <doc xml:space="preserve">Returns the description of a debug category.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the description of the category.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="category" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDebugCategory to get the description of.</doc>
- <type name="DebugCategory" c:type="GstDebugCategory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_name" c:identifier="gst_debug_category_get_name">
- <doc xml:space="preserve">Returns the name of a debug category.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name of the category.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="category" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDebugCategory to get name of.</doc>
- <type name="DebugCategory" c:type="GstDebugCategory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_threshold"
- c:identifier="gst_debug_category_get_threshold">
- <doc xml:space="preserve">Returns the threshold of a #GstDebugCategory.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstDebugLevel that is used as threshold.</doc>
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </return-value>
- <parameters>
- <instance-parameter name="category" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDebugCategory to get threshold of.</doc>
- <type name="DebugCategory" c:type="GstDebugCategory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="reset_threshold"
- c:identifier="gst_debug_category_reset_threshold">
- <doc xml:space="preserve">Resets the threshold of the category to the default level. Debug information
- will only be output if the threshold is lower or equal to the level of the
- debugging message.
- Use this function to set the threshold back to where it was after using
- gst_debug_category_set_threshold().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="category" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDebugCategory to reset threshold of.</doc>
- <type name="DebugCategory" c:type="GstDebugCategory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_threshold"
- c:identifier="gst_debug_category_set_threshold">
- <doc xml:space="preserve">Sets the threshold of the category to the given level. Debug information will
- only be output if the threshold is lower or equal to the level of the
- debugging message.
- <note><para>
- Do not use this function in production code, because other functions may
- change the threshold of categories as side effect. It is however a nice
- function to use when debugging (even from gdb).
- </para></note></doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="category" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDebugCategory to set threshold of.</doc>
- <type name="DebugCategory" c:type="GstDebugCategory*"/>
- </instance-parameter>
- <parameter name="level" transfer-ownership="none">
- <doc xml:space="preserve">the #GstDebugLevel threshold to set.</doc>
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <enumeration name="DebugColorFlags"
- glib:type-name="GstDebugColorFlags"
- glib:get-type="gst_debug_color_flags_get_type"
- c:type="GstDebugColorFlags">
- <doc xml:space="preserve">These are some terminal style flags you can use when creating your
- debugging categories to make them stand out in debugging output.</doc>
- <member name="fg_black"
- value="0"
- c:identifier="GST_DEBUG_FG_BLACK"
- glib:nick="fg-black">
- <doc xml:space="preserve">Use black as foreground color.</doc>
- </member>
- <member name="fg_red"
- value="1"
- c:identifier="GST_DEBUG_FG_RED"
- glib:nick="fg-red">
- <doc xml:space="preserve">Use red as foreground color.</doc>
- </member>
- <member name="fg_green"
- value="2"
- c:identifier="GST_DEBUG_FG_GREEN"
- glib:nick="fg-green">
- <doc xml:space="preserve">Use green as foreground color.</doc>
- </member>
- <member name="fg_yellow"
- value="3"
- c:identifier="GST_DEBUG_FG_YELLOW"
- glib:nick="fg-yellow">
- <doc xml:space="preserve">Use yellow as foreground color.</doc>
- </member>
- <member name="fg_blue"
- value="4"
- c:identifier="GST_DEBUG_FG_BLUE"
- glib:nick="fg-blue">
- <doc xml:space="preserve">Use blue as foreground color.</doc>
- </member>
- <member name="fg_magenta"
- value="5"
- c:identifier="GST_DEBUG_FG_MAGENTA"
- glib:nick="fg-magenta">
- <doc xml:space="preserve">Use magenta as foreground color.</doc>
- </member>
- <member name="fg_cyan"
- value="6"
- c:identifier="GST_DEBUG_FG_CYAN"
- glib:nick="fg-cyan">
- <doc xml:space="preserve">Use cyan as foreground color.</doc>
- </member>
- <member name="fg_white"
- value="7"
- c:identifier="GST_DEBUG_FG_WHITE"
- glib:nick="fg-white">
- <doc xml:space="preserve">Use white as foreground color.</doc>
- </member>
- <member name="bg_black"
- value="0"
- c:identifier="GST_DEBUG_BG_BLACK"
- glib:nick="bg-black">
- <doc xml:space="preserve">Use black as background color.</doc>
- </member>
- <member name="bg_red"
- value="16"
- c:identifier="GST_DEBUG_BG_RED"
- glib:nick="bg-red">
- <doc xml:space="preserve">Use red as background color.</doc>
- </member>
- <member name="bg_green"
- value="32"
- c:identifier="GST_DEBUG_BG_GREEN"
- glib:nick="bg-green">
- <doc xml:space="preserve">Use green as background color.</doc>
- </member>
- <member name="bg_yellow"
- value="48"
- c:identifier="GST_DEBUG_BG_YELLOW"
- glib:nick="bg-yellow">
- <doc xml:space="preserve">Use yellow as background color.</doc>
- </member>
- <member name="bg_blue"
- value="64"
- c:identifier="GST_DEBUG_BG_BLUE"
- glib:nick="bg-blue">
- <doc xml:space="preserve">Use blue as background color.</doc>
- </member>
- <member name="bg_magenta"
- value="80"
- c:identifier="GST_DEBUG_BG_MAGENTA"
- glib:nick="bg-magenta">
- <doc xml:space="preserve">Use magenta as background color.</doc>
- </member>
- <member name="bg_cyan"
- value="96"
- c:identifier="GST_DEBUG_BG_CYAN"
- glib:nick="bg-cyan">
- <doc xml:space="preserve">Use cyan as background color.</doc>
- </member>
- <member name="bg_white"
- value="112"
- c:identifier="GST_DEBUG_BG_WHITE"
- glib:nick="bg-white">
- <doc xml:space="preserve">Use white as background color.</doc>
- </member>
- <member name="bold"
- value="256"
- c:identifier="GST_DEBUG_BOLD"
- glib:nick="bold">
- <doc xml:space="preserve">Make the output bold.</doc>
- </member>
- <member name="underline"
- value="512"
- c:identifier="GST_DEBUG_UNDERLINE"
- glib:nick="underline">
- <doc xml:space="preserve">Underline the output.</doc>
- </member>
- </enumeration>
- <enumeration name="DebugColorMode"
- glib:type-name="GstDebugColorMode"
- glib:get-type="gst_debug_color_mode_get_type"
- c:type="GstDebugColorMode">
- <member name="off"
- value="0"
- c:identifier="GST_DEBUG_COLOR_MODE_OFF"
- glib:nick="off">
- <doc xml:space="preserve">Do not use colors in logs.</doc>
- </member>
- <member name="on"
- value="1"
- c:identifier="GST_DEBUG_COLOR_MODE_ON"
- glib:nick="on">
- <doc xml:space="preserve">Paint logs in a platform-specific way.</doc>
- </member>
- <member name="unix"
- value="2"
- c:identifier="GST_DEBUG_COLOR_MODE_UNIX"
- glib:nick="unix">
- <doc xml:space="preserve">Paint logs with UNIX terminal color codes
- no matter what platform GStreamer is running on.</doc>
- </member>
- </enumeration>
- <callback name="DebugFuncPtr" c:type="GstDebugFuncPtr">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- <bitfield name="DebugGraphDetails"
- glib:type-name="GstDebugGraphDetails"
- glib:get-type="gst_debug_graph_details_get_type"
- c:type="GstDebugGraphDetails">
- <doc xml:space="preserve">Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE()
- and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS().</doc>
- <member name="media_type"
- value="1"
- c:identifier="GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE"
- glib:nick="media-type">
- <doc xml:space="preserve">show caps-name on edges</doc>
- </member>
- <member name="caps_details"
- value="2"
- c:identifier="GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS"
- glib:nick="caps-details">
- <doc xml:space="preserve">show caps-details on edges</doc>
- </member>
- <member name="non_default_params"
- value="4"
- c:identifier="GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS"
- glib:nick="non-default-params">
- <doc xml:space="preserve">show modified parameters on
- elements</doc>
- </member>
- <member name="states"
- value="8"
- c:identifier="GST_DEBUG_GRAPH_SHOW_STATES"
- glib:nick="states">
- <doc xml:space="preserve">show element states</doc>
- </member>
- <member name="full_params"
- value="16"
- c:identifier="GST_DEBUG_GRAPH_SHOW_FULL_PARAMS"
- glib:nick="full-params">
- <doc xml:space="preserve">show full element parameter values even
- if they are very long</doc>
- </member>
- <member name="all"
- value="15"
- c:identifier="GST_DEBUG_GRAPH_SHOW_ALL"
- glib:nick="all">
- <doc xml:space="preserve">show all the typical details that one might want</doc>
- </member>
- <member name="verbose"
- value="-1"
- c:identifier="GST_DEBUG_GRAPH_SHOW_VERBOSE"
- glib:nick="verbose">
- <doc xml:space="preserve">show all details regardless of how large or
- verbose they make the resulting output</doc>
- </member>
- </bitfield>
- <enumeration name="DebugLevel"
- glib:type-name="GstDebugLevel"
- glib:get-type="gst_debug_level_get_type"
- c:type="GstDebugLevel">
- <doc xml:space="preserve">The level defines the importance of a debugging message. The more important a
- message is, the greater the probability that the debugging system outputs it.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_LEVEL_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No debugging level specified or desired. Used to deactivate
- debugging output.</doc>
- </member>
- <member name="error"
- value="1"
- c:identifier="GST_LEVEL_ERROR"
- glib:nick="error">
- <doc xml:space="preserve">Error messages are to be used only when an error occurred
- that stops the application from keeping working correctly.
- An examples is gst_element_error, which outputs a message with this priority.
- It does not mean that the application is terminating as with g_error.</doc>
- </member>
- <member name="warning"
- value="2"
- c:identifier="GST_LEVEL_WARNING"
- glib:nick="warning">
- <doc xml:space="preserve">Warning messages are to inform about abnormal behaviour
- that could lead to problems or weird behaviour later on. An example of this
- would be clocking issues ("your computer is pretty slow") or broken input
- data ("Can't synchronize to stream.")</doc>
- </member>
- <member name="fixme"
- value="3"
- c:identifier="GST_LEVEL_FIXME"
- glib:nick="fixme">
- <doc xml:space="preserve">Fixme messages are messages that indicate that something
- in the executed code path is not fully implemented or handled yet. Note
- that this does not replace proper error handling in any way, the purpose
- of this message is to make it easier to spot incomplete/unfinished pieces
- of code when reading the debug log.</doc>
- </member>
- <member name="info"
- value="4"
- c:identifier="GST_LEVEL_INFO"
- glib:nick="info">
- <doc xml:space="preserve">Informational messages should be used to keep the developer
- updated about what is happening.
- Examples where this should be used are when a typefind function has
- successfully determined the type of the stream or when an mp3 plugin detects
- the format to be used. ("This file has mono sound.")</doc>
- </member>
- <member name="debug"
- value="5"
- c:identifier="GST_LEVEL_DEBUG"
- glib:nick="debug">
- <doc xml:space="preserve">Debugging messages should be used when something common
- happens that is not the expected default behavior, or something that's
- useful to know but doesn't happen all the time (ie. per loop iteration or
- buffer processed or event handled).
- An example would be notifications about state changes or receiving/sending
- of events.</doc>
- </member>
- <member name="log"
- value="6"
- c:identifier="GST_LEVEL_LOG"
- glib:nick="log">
- <doc xml:space="preserve">Log messages are messages that are very common but might be
- useful to know. As a rule of thumb a pipeline that is running as expected
- should never output anything else but LOG messages whilst processing data.
- Use this log level to log recurring information in chain functions and
- loop functions, for example.</doc>
- </member>
- <member name="trace"
- value="7"
- c:identifier="GST_LEVEL_TRACE"
- glib:nick="trace">
- <doc xml:space="preserve">Tracing-related messages.
- Examples for this are referencing/dereferencing of objects.</doc>
- </member>
- <member name="memdump"
- value="9"
- c:identifier="GST_LEVEL_MEMDUMP"
- glib:nick="memdump">
- <doc xml:space="preserve">memory dump messages are used to log (small) chunks of
- data as memory dumps in the log. They will be displayed as hexdump with
- ASCII characters.</doc>
- </member>
- <member name="count"
- value="10"
- c:identifier="GST_LEVEL_COUNT"
- glib:nick="count">
- <doc xml:space="preserve">The number of defined debugging levels.</doc>
- </member>
- <function name="get_name" c:identifier="gst_debug_level_get_name">
- <doc xml:space="preserve">Get the string representation of a debugging level</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="level" transfer-ownership="none">
- <doc xml:space="preserve">the level to get the name for</doc>
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </parameter>
- </parameters>
- </function>
- </enumeration>
- <record name="DebugMessage" c:type="GstDebugMessage" disguised="1">
- <method name="get" c:identifier="gst_debug_message_get">
- <doc xml:space="preserve">Gets the string representation of a #GstDebugMessage. This function is used
- in debug handlers to extract the message.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the string representation of a #GstDebugMessage.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a debug message</doc>
- <type name="DebugMessage" c:type="GstDebugMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <class name="Device"
- c:symbol-prefix="device"
- c:type="GstDevice"
- version="1.4"
- parent="Object"
- abstract="1"
- glib:type-name="GstDevice"
- glib:get-type="gst_device_get_type"
- glib:type-struct="DeviceClass">
- <doc xml:space="preserve">#GstDevice are objects representing a device, they contain
- relevant metadata about the device, such as its class and the #GstCaps
- representing the media types it can produce or handle.
- #GstDevice are created by #GstDeviceProvider objects which can be
- aggregated by #GstDeviceMonitor objects.</doc>
- <virtual-method name="create_element"
- invoker="create_element"
- version="1.4">
- <doc xml:space="preserve">Creates the element with all of the required paramaters set to use
- this device.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstElement configured to use this device</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <instance-parameter name="device" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDevice</doc>
- <type name="Device" c:type="GstDevice*"/>
- </instance-parameter>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">name of new element, or %NULL to automatically
- create a unique name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="reconfigure_element"
- invoker="reconfigure_element"
- version="1.4">
- <doc xml:space="preserve">Tries to reconfigure an existing element to use the device. If this
- function fails, then one must destroy the element and create a new one
- using gst_device_create_element().
- Note: This should only be implemented for elements can change their
- device in the PLAYING state.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the element could be reconfigured to use this device,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="device" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDevice</doc>
- <type name="Device" c:type="GstDevice*"/>
- </instance-parameter>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="create_element"
- c:identifier="gst_device_create_element"
- version="1.4">
- <doc xml:space="preserve">Creates the element with all of the required paramaters set to use
- this device.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstElement configured to use this device</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <instance-parameter name="device" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDevice</doc>
- <type name="Device" c:type="GstDevice*"/>
- </instance-parameter>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">name of new element, or %NULL to automatically
- create a unique name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_caps" c:identifier="gst_device_get_caps" version="1.4">
- <doc xml:space="preserve">Getter for the #GstCaps that this device supports.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The #GstCaps supported by this device. Unref with
- gst_caps_unref() when done.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="device" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDevice</doc>
- <type name="Device" c:type="GstDevice*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_device_class"
- c:identifier="gst_device_get_device_class"
- version="1.4">
- <doc xml:space="preserve">Gets the "class" of a device. This is a "/" separated list of
- classes that represent this device. They are a subset of the
- classes of the #GstDeviceProvider that produced this device.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The device class. Free with g_free() after use.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="device" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDevice</doc>
- <type name="Device" c:type="GstDevice*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_display_name"
- c:identifier="gst_device_get_display_name"
- version="1.4">
- <doc xml:space="preserve">Gets the user-friendly name of the device.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The device name. Free with g_free() after use.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="device" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDevice</doc>
- <type name="Device" c:type="GstDevice*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_properties"
- c:identifier="gst_device_get_properties"
- version="1.6">
- <doc xml:space="preserve">Gets the extra properties of a device.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The extra properties or %NULL when there are none.
- Free with gst_structure_free() after use.</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <instance-parameter name="device" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDevice</doc>
- <type name="Device" c:type="GstDevice*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_classes"
- c:identifier="gst_device_has_classes"
- version="1.4">
- <doc xml:space="preserve">Check if @device matches all of the given classes</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @device matches.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="device" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDevice</doc>
- <type name="Device" c:type="GstDevice*"/>
- </instance-parameter>
- <parameter name="classes" transfer-ownership="none">
- <doc xml:space="preserve">a "/"-separated list of device classes to match, only match if
- all classes are matched</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_classesv"
- c:identifier="gst_device_has_classesv"
- version="1.4">
- <doc xml:space="preserve">Check if @factory matches all of the given classes</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @device matches.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="device" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDevice</doc>
- <type name="Device" c:type="GstDevice*"/>
- </instance-parameter>
- <parameter name="classes" transfer-ownership="none">
- <doc xml:space="preserve">a %NULL terminated array of classes
- to match, only match if all classes are matched</doc>
- <array c:type="gchar**">
- <type name="utf8" c:type="gchar*"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="reconfigure_element"
- c:identifier="gst_device_reconfigure_element"
- version="1.4">
- <doc xml:space="preserve">Tries to reconfigure an existing element to use the device. If this
- function fails, then one must destroy the element and create a new one
- using gst_device_create_element().
- Note: This should only be implemented for elements can change their
- device in the PLAYING state.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the element could be reconfigured to use this device,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="device" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDevice</doc>
- <type name="Device" c:type="GstDevice*"/>
- </instance-parameter>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </method>
- <property name="caps"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="Caps"/>
- </property>
- <property name="device-class"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="display-name"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="properties"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="Structure"/>
- </property>
- <field name="parent">
- <doc xml:space="preserve">The parent #GstObject strucuture.</doc>
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="DevicePrivate" c:type="GstDevicePrivate*"/>
- </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="removed" when="last">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- </class>
- <record name="DeviceClass"
- c:type="GstDeviceClass"
- glib:is-gtype-struct-for="Device"
- version="1.4">
- <doc xml:space="preserve">The class structure for a #GstDevice object.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">The parent #GstObjectClass strucuture.</doc>
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="create_element">
- <callback name="create_element">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstElement configured to use this device</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="device" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDevice</doc>
- <type name="Device" c:type="GstDevice*"/>
- </parameter>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">name of new element, or %NULL to automatically
- create a unique name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="reconfigure_element">
- <callback name="reconfigure_element">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the element could be reconfigured to use this device,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="device" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDevice</doc>
- <type name="Device" c:type="GstDevice*"/>
- </parameter>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement</doc>
- <type name="Element" c:type="GstElement*"/>
- </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>
- <class name="DeviceMonitor"
- c:symbol-prefix="device_monitor"
- c:type="GstDeviceMonitor"
- version="1.4"
- parent="Object"
- glib:type-name="GstDeviceMonitor"
- glib:get-type="gst_device_monitor_get_type"
- glib:type-struct="DeviceMonitorClass">
- <doc xml:space="preserve">Applications should create a #GstDeviceMonitor when they want
- to probe, list and monitor devices of a specific type. The
- #GstDeviceMonitor will create the appropriate
- #GstDeviceProvider objects and manage them. It will then post
- messages on its #GstBus for devices that have been added and
- removed.
- The device monitor will monitor all devices matching the filters that
- the application has set.
- The basic use pattern of a device monitor is as follows:
- |[
- static gboolean
- my_bus_func (GstBus * bus, GstMessage * message, gpointer user_data)
- {
- GstDevice *device;
- gchar *name;
- switch (GST_MESSAGE_TYPE (message)) {
- case GST_MESSAGE_DEVICE_ADDED:
- gst_message_parse_device_added (message, &device);
- name = gst_device_get_display_name (device);
- g_print("Device added: %s\n", name);
- g_free (name);
- break;
- case GST_MESSAGE_DEVICE_REMOVED:
- gst_message_parse_device_removed (message, &device);
- name = gst_device_get_display_name (device);
- g_print("Device removed: %s\n", name);
- g_free (name);
- break;
- default:
- break;
- }
- return G_SOURCE_CONTINUE;
- }
- GstDeviceMonitor *
- setup_raw_video_source_device_monitor (void) {
- GstDeviceMonitor *monitor;
- GstBus *bus;
- GstCaps *caps;
- monitor = gst_device_monitor_new ();
- bus = gst_device_monitor_get_bus (monitor);
- gst_bus_add_watch (bus, my_bus_func, NULL);
- gst_object_unref (bus);
- caps = gst_caps_new_empty_simple ("video/x-raw");
- gst_device_monitor_add_filter (monitor, "Video/Source", caps);
- gst_caps_unref (caps);
- gst_device_monitor_start (monitor);
- return monitor;
- }
- ]|</doc>
- <constructor name="new"
- c:identifier="gst_device_monitor_new"
- version="1.4">
- <doc xml:space="preserve">Create a new #GstDeviceMonitor</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new device monitor.</doc>
- <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
- </return-value>
- </constructor>
- <method name="add_filter"
- c:identifier="gst_device_monitor_add_filter"
- version="1.4">
- <doc xml:space="preserve">Adds a filter for which #GstDevice will be monitored, any device that matches
- all these classes and the #GstCaps will be returned.
- If this function is called multiple times to add more filters, each will be
- matched independently. That is, adding more filters will not further restrict
- what devices are matched.
- The #GstCaps supported by the device as returned by gst_device_get_caps() are
- not intersected with caps filters added using this function.
- Filters must be added before the #GstDeviceMonitor is started.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The id of the new filter or 0 if no provider matched the filter's
- classes.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a device monitor</doc>
- <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
- </instance-parameter>
- <parameter name="classes"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">device classes to use as filter or %NULL for any class</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="caps"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the #GstCaps to filter or %NULL for ANY</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_bus"
- c:identifier="gst_device_monitor_get_bus"
- version="1.4">
- <doc xml:space="preserve">Gets the #GstBus of this #GstDeviceMonitor</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstBus</doc>
- <type name="Bus" c:type="GstBus*"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDeviceProvider</doc>
- <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_devices"
- c:identifier="gst_device_monitor_get_devices"
- version="1.4">
- <doc xml:space="preserve">Gets a list of devices from all of the relevant monitors. This may actually
- probe the hardware if the monitor is not currently started.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of
- #GstDevice</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Device"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">A #GstDeviceProvider</doc>
- <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_providers"
- c:identifier="gst_device_monitor_get_providers"
- version="1.6">
- <doc xml:space="preserve">Get a list of the currently selected device provider factories.
- This</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">
- A list of device provider factory names that are currently being
- monitored by @monitor or %NULL when nothing is being monitored.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDeviceMonitor</doc>
- <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_show_all_devices"
- c:identifier="gst_device_monitor_get_show_all_devices"
- version="1.6">
- <doc xml:space="preserve">Get if @monitor is curretly showing all devices, even those from hidden
- providers.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE when all devices will be shown.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDeviceMonitor</doc>
- <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="remove_filter"
- c:identifier="gst_device_monitor_remove_filter"
- version="1.4">
- <doc xml:space="preserve">Removes a filter from the #GstDeviceMonitor using the id that was returned
- by gst_device_monitor_add_filter().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE of the filter id was valid, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a device monitor</doc>
- <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
- </instance-parameter>
- <parameter name="filter_id" transfer-ownership="none">
- <doc xml:space="preserve">the id of the filter</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_show_all_devices"
- c:identifier="gst_device_monitor_set_show_all_devices"
- version="1.6">
- <doc xml:space="preserve">Set if all devices should be visible, even those devices from hidden
- providers. Setting @show_all to true might show some devices multiple times.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDeviceMonitor</doc>
- <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
- </instance-parameter>
- <parameter name="show_all" transfer-ownership="none">
- <doc xml:space="preserve">show all devices</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="start"
- c:identifier="gst_device_monitor_start"
- version="1.4">
- <doc xml:space="preserve">Starts monitoring the devices, one this has succeeded, the
- %GST_MESSAGE_DEVICE_ADDED and %GST_MESSAGE_DEVICE_REMOVED messages
- will be emitted on the bus when the list of devices changes.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the device monitoring could be started</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">A #GstDeviceMonitor</doc>
- <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="stop" c:identifier="gst_device_monitor_stop" version="1.4">
- <doc xml:space="preserve">Stops monitoring the devices.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">A #GstDeviceProvider</doc>
- <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="show-all" writable="1" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <field name="parent">
- <doc xml:space="preserve">the parent #GstObject structure</doc>
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="DeviceMonitorPrivate" c:type="GstDeviceMonitorPrivate*"/>
- </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="DeviceMonitorClass"
- c:type="GstDeviceMonitorClass"
- glib:is-gtype-struct-for="DeviceMonitor"
- version="1.4">
- <doc xml:space="preserve">Opaque device monitor class structure.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">the parent #GstObjectClass structure</doc>
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </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="DeviceMonitorPrivate"
- c:type="GstDeviceMonitorPrivate"
- disguised="1">
- </record>
- <record name="DevicePrivate" c:type="GstDevicePrivate" disguised="1">
- </record>
- <class name="DeviceProvider"
- c:symbol-prefix="device_provider"
- c:type="GstDeviceProvider"
- version="1.4"
- parent="Object"
- abstract="1"
- glib:type-name="GstDeviceProvider"
- glib:get-type="gst_device_provider_get_type"
- glib:type-struct="DeviceProviderClass">
- <doc xml:space="preserve">A #GstDeviceProvider subclass is provided by a plugin that handles devices
- if there is a way to programatically list connected devices. It can also
- optionally provide updates to the list of connected devices.
- Each #GstDeviceProvider subclass is a singleton, a plugin should
- normally provide a single subclass for all devices.
- Applications would normally use a #GstDeviceMonitor to monitor devices
- from all relevant providers.</doc>
- <function name="register"
- c:identifier="gst_device_provider_register"
- version="1.4">
- <doc xml:space="preserve">Create a new device providerfactory capable of instantiating objects of the
- @type and add the factory to @plugin.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if the registering succeeded, %FALSE on error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="plugin"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GstPlugin to register the device provider with, or %NULL for
- a static device provider.</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name of device providers of this type</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="rank" transfer-ownership="none">
- <doc xml:space="preserve">rank of device provider (higher rank means more importance when autoplugging)</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">GType of device provider to register</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="probe" introspectable="0">
- <return-value>
- <type name="GLib.List" c:type="GList*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="provider" transfer-ownership="none">
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="start" invoker="start" version="1.4">
- <doc xml:space="preserve">Starts providering the devices. This will cause #GST_MESSAGE_DEVICE_ADDED
- and #GST_MESSAGE_DEVICE_REMOVED messages to be posted on the provider's bus
- when devices are added or removed from the system.
- Since the #GstDeviceProvider is a singleton,
- gst_device_provider_start() may already have been called by another
- user of the object, gst_device_provider_stop() needs to be called the same
- number of times.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the device providering could be started</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="provider" transfer-ownership="none">
- <doc xml:space="preserve">A #GstDeviceProvider</doc>
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="stop" invoker="stop" version="1.4">
- <doc xml:space="preserve">Decreases the use-count by one. If the use count reaches zero, this
- #GstDeviceProvider will stop providering the devices. This needs to be
- called the same number of times that gst_device_provider_start() was called.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="provider" transfer-ownership="none">
- <doc xml:space="preserve">A #GstDeviceProvider</doc>
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="can_monitor"
- c:identifier="gst_device_provider_can_monitor">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="provider" transfer-ownership="none">
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="device_add"
- c:identifier="gst_device_provider_device_add"
- version="1.4">
- <doc xml:space="preserve">Posts a message on the provider's #GstBus to inform applications that
- a new device has been added.
- This is for use by subclasses.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="provider" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDeviceProvider</doc>
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </instance-parameter>
- <parameter name="device" transfer-ownership="full">
- <doc xml:space="preserve">a #GstDevice that has been added</doc>
- <type name="Device" c:type="GstDevice*"/>
- </parameter>
- </parameters>
- </method>
- <method name="device_remove"
- c:identifier="gst_device_provider_device_remove"
- version="1.4">
- <doc xml:space="preserve">Posts a message on the provider's #GstBus to inform applications that
- a device has been removed.
- This is for use by subclasses.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="provider" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDeviceProvider</doc>
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </instance-parameter>
- <parameter name="device" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDevice that has been removed</doc>
- <type name="Device" c:type="GstDevice*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_bus"
- c:identifier="gst_device_provider_get_bus"
- version="1.4">
- <doc xml:space="preserve">Gets the #GstBus of this #GstDeviceProvider</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstBus</doc>
- <type name="Bus" c:type="GstBus*"/>
- </return-value>
- <parameters>
- <instance-parameter name="provider" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDeviceProvider</doc>
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_devices"
- c:identifier="gst_device_provider_get_devices"
- version="1.4">
- <doc xml:space="preserve">Gets a list of devices that this provider understands. This may actually
- probe the hardware if the provider is not currently started.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of
- #GstDevice</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Device"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="provider" transfer-ownership="none">
- <doc xml:space="preserve">A #GstDeviceProvider</doc>
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_factory"
- c:identifier="gst_device_provider_get_factory"
- version="1.4">
- <doc xml:space="preserve">Retrieves the factory that was used to create this device provider.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstDeviceProviderFactory used for
- creating this device provider. no refcounting is needed.</doc>
- <type name="DeviceProviderFactory"
- c:type="GstDeviceProviderFactory*"/>
- </return-value>
- <parameters>
- <instance-parameter name="provider" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDeviceProvider to request the device provider factory of.</doc>
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_hidden_providers"
- c:identifier="gst_device_provider_get_hidden_providers"
- version="1.6">
- <doc xml:space="preserve">Get the provider factory names of the #GstDeviceProvider instances that
- are hidden by @provider.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">
- a list of hidden providers factory names or %NULL when
- nothing is hidden by @provider. Free with g_strfreev.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="provider" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDeviceProvider</doc>
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="hide_provider"
- c:identifier="gst_device_provider_hide_provider"
- version="1.6">
- <doc xml:space="preserve">Make @provider hide the devices from the factory with @name.
- This function is used when @provider will also provide the devices reported
- by provider factory @name. A monitor should stop monitoring the
- device provider with @name to avoid duplicate devices.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="provider" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDeviceProvider</doc>
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">a provider factory name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="start"
- c:identifier="gst_device_provider_start"
- version="1.4">
- <doc xml:space="preserve">Starts providering the devices. This will cause #GST_MESSAGE_DEVICE_ADDED
- and #GST_MESSAGE_DEVICE_REMOVED messages to be posted on the provider's bus
- when devices are added or removed from the system.
- Since the #GstDeviceProvider is a singleton,
- gst_device_provider_start() may already have been called by another
- user of the object, gst_device_provider_stop() needs to be called the same
- number of times.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the device providering could be started</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="provider" transfer-ownership="none">
- <doc xml:space="preserve">A #GstDeviceProvider</doc>
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="stop"
- c:identifier="gst_device_provider_stop"
- version="1.4">
- <doc xml:space="preserve">Decreases the use-count by one. If the use count reaches zero, this
- #GstDeviceProvider will stop providering the devices. This needs to be
- called the same number of times that gst_device_provider_start() was called.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="provider" transfer-ownership="none">
- <doc xml:space="preserve">A #GstDeviceProvider</doc>
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unhide_provider"
- c:identifier="gst_device_provider_unhide_provider"
- version="1.6">
- <doc xml:space="preserve">Make @provider unhide the devices from factory @name.
- This function is used when @provider will no longer provide the devices
- reported by provider factory @name. A monitor should start
- monitoring the devices from provider factory @name in order to see
- all devices again.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="provider" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDeviceProvider</doc>
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">a provider factory name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent">
- <doc xml:space="preserve">The parent #GstObject</doc>
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="devices">
- <doc xml:space="preserve">a #GList of the #GstDevice objects</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="DeviceProviderPrivate" c:type="GstDeviceProviderPrivate*"/>
- </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="provider-hidden" when="first">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="provider-unhidden" when="first">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="DeviceProviderClass"
- c:type="GstDeviceProviderClass"
- glib:is-gtype-struct-for="DeviceProvider"
- version="1.4">
- <doc xml:space="preserve">The structure of the base #GstDeviceProviderClass</doc>
- <field name="parent_class">
- <doc xml:space="preserve">the parent #GstObjectClass structure</doc>
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="factory">
- <doc xml:space="preserve">a pointer to the #GstDeviceProviderFactory that creates this
- provider</doc>
- <type name="DeviceProviderFactory" c:type="GstDeviceProviderFactory*"/>
- </field>
- <field name="probe" introspectable="0">
- <callback name="probe" introspectable="0">
- <return-value>
- <type name="GLib.List" c:type="GList*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="provider" transfer-ownership="none">
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="start">
- <callback name="start">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the device providering could be started</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="provider" transfer-ownership="none">
- <doc xml:space="preserve">A #GstDeviceProvider</doc>
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="stop">
- <callback name="stop">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="provider" transfer-ownership="none">
- <doc xml:space="preserve">A #GstDeviceProvider</doc>
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="metadata" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </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="add_metadata"
- c:identifier="gst_device_provider_class_add_metadata"
- version="1.4">
- <doc xml:space="preserve">Set @key with @value as metadata in @klass.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="klass" transfer-ownership="none">
- <doc xml:space="preserve">class to set metadata for</doc>
- <type name="DeviceProviderClass" c:type="GstDeviceProviderClass*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the value to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_static_metadata"
- c:identifier="gst_device_provider_class_add_static_metadata"
- version="1.4">
- <doc xml:space="preserve">Set @key with @value as metadata in @klass.
- Same as gst_device_provider_class_add_metadata(), but @value must be a static string
- or an inlined string, as it will not be copied. (GStreamer plugins will
- be made resident once loaded, so this function can be used even from
- dynamically loaded plugins.)</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="klass" transfer-ownership="none">
- <doc xml:space="preserve">class to set metadata for</doc>
- <type name="DeviceProviderClass" c:type="GstDeviceProviderClass*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="full">
- <doc xml:space="preserve">the value to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_metadata"
- c:identifier="gst_device_provider_class_get_metadata"
- version="1.4">
- <doc xml:space="preserve">Get metadata with @key in @klass.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the metadata for @key.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="klass" transfer-ownership="none">
- <doc xml:space="preserve">class to get metadata for</doc>
- <type name="DeviceProviderClass" c:type="GstDeviceProviderClass*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to get</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_metadata"
- c:identifier="gst_device_provider_class_set_metadata"
- version="1.4">
- <doc xml:space="preserve">Sets the detailed information for a #GstDeviceProviderClass.
- <note>This function is for use in _class_init functions only.</note></doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="klass" transfer-ownership="none">
- <doc xml:space="preserve">class to set metadata for</doc>
- <type name="DeviceProviderClass" c:type="GstDeviceProviderClass*"/>
- </instance-parameter>
- <parameter name="longname" transfer-ownership="none">
- <doc xml:space="preserve">The long English name of the device provider. E.g. "File Sink"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="classification" transfer-ownership="none">
- <doc xml:space="preserve">String describing the type of device provider, as an
- unordered list separated with slashes ('/'). See draft-klass.txt of the
- design docs
- for more details and common types. E.g: "Sink/File"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="description" transfer-ownership="none">
- <doc xml:space="preserve">Sentence describing the purpose of the device provider.
- E.g: "Write stream to a file"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="author" transfer-ownership="none">
- <doc xml:space="preserve">Name and contact details of the author(s). Use \n to separate
- multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_static_metadata"
- c:identifier="gst_device_provider_class_set_static_metadata"
- version="1.4">
- <doc xml:space="preserve">Sets the detailed information for a #GstDeviceProviderClass.
- <note>This function is for use in _class_init functions only.</note>
- Same as gst_device_provider_class_set_metadata(), but @longname, @classification,
- @description, and @author must be static strings or inlined strings, as
- they will not be copied. (GStreamer plugins will be made resident once
- loaded, so this function can be used even from dynamically loaded plugins.)</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="klass" transfer-ownership="none">
- <doc xml:space="preserve">class to set metadata for</doc>
- <type name="DeviceProviderClass" c:type="GstDeviceProviderClass*"/>
- </instance-parameter>
- <parameter name="longname" transfer-ownership="full">
- <doc xml:space="preserve">The long English name of the element. E.g. "File Sink"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="classification" transfer-ownership="full">
- <doc xml:space="preserve">String describing the type of element, as
- an unordered list separated with slashes ('/'). See draft-klass.txt of the
- design docs for more details and common types. E.g: "Sink/File"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="description" transfer-ownership="full">
- <doc xml:space="preserve">Sentence describing the purpose of the
- element. E.g: "Write stream to a file"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="author" transfer-ownership="full">
- <doc xml:space="preserve">Name and contact details of the author(s). Use \n
- to separate multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at
- foo.com&gt;"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <class name="DeviceProviderFactory"
- c:symbol-prefix="device_provider_factory"
- c:type="GstDeviceProviderFactory"
- version="1.4"
- parent="PluginFeature"
- glib:type-name="GstDeviceProviderFactory"
- glib:get-type="gst_device_provider_factory_get_type"
- glib:type-struct="DeviceProviderFactoryClass">
- <doc xml:space="preserve">#GstDeviceProviderFactory is used to create instances of device providers. A
- GstDeviceProviderfactory can be added to a #GstPlugin as it is also a
- #GstPluginFeature.
- Use the gst_device_provider_factory_find() and
- gst_device_provider_factory_get() functions to create device
- provider instances or use gst_device_provider_factory_get_by_name() as a
- convenient shortcut.</doc>
- <function name="find"
- c:identifier="gst_device_provider_factory_find"
- version="1.4">
- <doc xml:space="preserve">Search for an device provider factory of the given name. Refs the returned
- device provider factory; caller is responsible for unreffing.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">#GstDeviceProviderFactory if
- found, %NULL otherwise</doc>
- <type name="DeviceProviderFactory"
- c:type="GstDeviceProviderFactory*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name of factory to find</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_by_name"
- c:identifier="gst_device_provider_factory_get_by_name"
- version="1.4">
- <doc xml:space="preserve">Returns the device provider of the type defined by the given device
- provider factory.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GstDeviceProvider or %NULL
- if unable to create device provider</doc>
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </return-value>
- <parameters>
- <parameter name="factoryname" transfer-ownership="none">
- <doc xml:space="preserve">a named factory to instantiate</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="list_get_device_providers"
- c:identifier="gst_device_provider_factory_list_get_device_providers"
- version="1.4">
- <doc xml:space="preserve">Get a list of factories with a rank greater or equal to @minrank.
- The list of factories is returned by decreasing rank.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">
- a #GList of #GstDeviceProviderFactory device providers. Use
- gst_plugin_feature_list_free() after usage.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="DeviceProviderFactory"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="minrank" transfer-ownership="none">
- <doc xml:space="preserve">Minimum rank</doc>
- <type name="Rank" c:type="GstRank"/>
- </parameter>
- </parameters>
- </function>
- <method name="get"
- c:identifier="gst_device_provider_factory_get"
- version="1.4">
- <doc xml:space="preserve">Returns the device provider of the type defined by the given device
- providerfactory.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the #GstDeviceProvider or %NULL
- if the device provider couldn't be created</doc>
- <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">factory to instantiate</doc>
- <type name="DeviceProviderFactory"
- c:type="GstDeviceProviderFactory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_device_provider_type"
- c:identifier="gst_device_provider_factory_get_device_provider_type"
- version="1.4">
- <doc xml:space="preserve">Get the #GType for device providers managed by this factory. The type can
- only be retrieved if the device provider factory is loaded, which can be
- assured with gst_plugin_feature_load().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GType for device providers managed by this factory.</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">factory to get managed #GType from</doc>
- <type name="DeviceProviderFactory"
- c:type="GstDeviceProviderFactory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_metadata"
- c:identifier="gst_device_provider_factory_get_metadata"
- version="1.4">
- <doc xml:space="preserve">Get the metadata on @factory with @key.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the metadata with @key on @factory or %NULL
- when there was no metadata with the given @key.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDeviceProviderFactory</doc>
- <type name="DeviceProviderFactory"
- c:type="GstDeviceProviderFactory*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">a key</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_metadata_keys"
- c:identifier="gst_device_provider_factory_get_metadata_keys"
- version="1.4">
- <doc xml:space="preserve">Get the available keys for the metadata on @factory.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">
- a %NULL-terminated array of key strings, or %NULL when there is no
- metadata. Free with g_strfreev() when no longer needed.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDeviceProviderFactory</doc>
- <type name="DeviceProviderFactory"
- c:type="GstDeviceProviderFactory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_classes"
- c:identifier="gst_device_provider_factory_has_classes"
- version="1.4">
- <doc xml:space="preserve">Check if @factory matches all of the given @classes</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @factory matches or if @classes is %NULL.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDeviceProviderFactory</doc>
- <type name="DeviceProviderFactory"
- c:type="GstDeviceProviderFactory*"/>
- </instance-parameter>
- <parameter name="classes"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a "/" separate list of classes to match, only match
- if all classes are matched</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_classesv"
- c:identifier="gst_device_provider_factory_has_classesv"
- version="1.4">
- <doc xml:space="preserve">Check if @factory matches all of the given classes</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @factory matches.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDeviceProviderFactory</doc>
- <type name="DeviceProviderFactory"
- c:type="GstDeviceProviderFactory*"/>
- </instance-parameter>
- <parameter name="classes"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %NULL terminated array
- of classes to match, only match if all classes are matched</doc>
- <array c:type="gchar**">
- <type name="utf8" c:type="gchar*"/>
- </array>
- </parameter>
- </parameters>
- </method>
- </class>
- <record name="DeviceProviderFactoryClass"
- c:type="GstDeviceProviderFactoryClass"
- disguised="1"
- glib:is-gtype-struct-for="DeviceProviderFactory"
- version="1.4">
- <doc xml:space="preserve">The opaque #GstDeviceProviderFactoryClass data structure.</doc>
- </record>
- <record name="DeviceProviderPrivate"
- c:type="GstDeviceProviderPrivate"
- disguised="1">
- </record>
- <class name="DoubleRange"
- c:symbol-prefix="double_range"
- glib:type-name="GstDoubleRange"
- glib:get-type="gst_double_range_get_type"
- glib:fundamental="1">
- </class>
- <constant name="ELEMENT_FACTORY_KLASS_DECODER"
- value="Decoder"
- c:type="GST_ELEMENT_FACTORY_KLASS_DECODER">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_KLASS_DECRYPTOR"
- value="Decryptor"
- c:type="GST_ELEMENT_FACTORY_KLASS_DECRYPTOR">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_KLASS_DEMUXER"
- value="Demuxer"
- c:type="GST_ELEMENT_FACTORY_KLASS_DEMUXER">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_KLASS_DEPAYLOADER"
- value="Depayloader"
- c:type="GST_ELEMENT_FACTORY_KLASS_DEPAYLOADER">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_KLASS_ENCODER"
- value="Encoder"
- c:type="GST_ELEMENT_FACTORY_KLASS_ENCODER">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_KLASS_ENCRYPTOR"
- value="Encryptor"
- c:type="GST_ELEMENT_FACTORY_KLASS_ENCRYPTOR">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_KLASS_FORMATTER"
- value="Formatter"
- c:type="GST_ELEMENT_FACTORY_KLASS_FORMATTER">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_KLASS_MEDIA_AUDIO"
- value="Audio"
- c:type="GST_ELEMENT_FACTORY_KLASS_MEDIA_AUDIO">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_KLASS_MEDIA_IMAGE"
- value="Image"
- c:type="GST_ELEMENT_FACTORY_KLASS_MEDIA_IMAGE">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_KLASS_MEDIA_METADATA"
- value="Metadata"
- c:type="GST_ELEMENT_FACTORY_KLASS_MEDIA_METADATA">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE"
- value="Subtitle"
- c:type="GST_ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_KLASS_MEDIA_VIDEO"
- value="Video"
- c:type="GST_ELEMENT_FACTORY_KLASS_MEDIA_VIDEO">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_KLASS_MUXER"
- value="Muxer"
- c:type="GST_ELEMENT_FACTORY_KLASS_MUXER">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_KLASS_PARSER"
- value="Parser"
- c:type="GST_ELEMENT_FACTORY_KLASS_PARSER">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_KLASS_PAYLOADER"
- value="Payloader"
- c:type="GST_ELEMENT_FACTORY_KLASS_PAYLOADER">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_KLASS_SINK"
- value="Sink"
- c:type="GST_ELEMENT_FACTORY_KLASS_SINK">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_KLASS_SRC"
- value="Source"
- c:type="GST_ELEMENT_FACTORY_KLASS_SRC">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_ANY"
- value="562949953421311"
- c:type="GST_ELEMENT_FACTORY_TYPE_ANY">
- <doc xml:space="preserve">Elements of any of the defined GST_ELEMENT_FACTORY_LIST types</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS"
- value="3940649673949188"
- c:type="GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS">
- <doc xml:space="preserve">All sinks handling audio, video or image media types</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_AUDIO_ENCODER"
- value="1125899906842626"
- c:type="GST_ELEMENT_FACTORY_TYPE_AUDIO_ENCODER">
- <doc xml:space="preserve">All encoders handling audio media types</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_DECODABLE"
- value="353"
- c:type="GST_ELEMENT_FACTORY_TYPE_DECODABLE">
- <doc xml:space="preserve">All elements used to 'decode' streams (decoders, demuxers, parsers, depayloaders)</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_DECODER"
- value="1"
- c:type="GST_ELEMENT_FACTORY_TYPE_DECODER">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_DECRYPTOR"
- value="1024"
- c:type="GST_ELEMENT_FACTORY_TYPE_DECRYPTOR">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_DEMUXER"
- value="32"
- c:type="GST_ELEMENT_FACTORY_TYPE_DEMUXER">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_DEPAYLOADER"
- value="256"
- c:type="GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_ENCODER"
- value="2"
- c:type="GST_ELEMENT_FACTORY_TYPE_ENCODER">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_ENCRYPTOR"
- value="2048"
- c:type="GST_ELEMENT_FACTORY_TYPE_ENCRYPTOR">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_FORMATTER"
- value="512"
- c:type="GST_ELEMENT_FACTORY_TYPE_FORMATTER">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_MAX_ELEMENTS"
- value="281474976710656"
- c:type="GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_MEDIA_ANY"
- value="18446462598732840960"
- c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY">
- <doc xml:space="preserve">Elements matching any of the defined GST_ELEMENT_FACTORY_TYPE_MEDIA types
- Note: Do not use this if you wish to not filter against any of the defined
- media types. If you wish to do this, simply don't specify any
- GST_ELEMENT_FACTORY_TYPE_MEDIA flag.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_MEDIA_AUDIO"
- value="1125899906842624"
- c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_MEDIA_IMAGE"
- value="2251799813685248"
- c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_MEDIA_METADATA"
- value="9007199254740992"
- c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE"
- value="4503599627370496"
- c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_MEDIA_VIDEO"
- value="562949953421312"
- c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_MUXER"
- value="16"
- c:type="GST_ELEMENT_FACTORY_TYPE_MUXER">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_PARSER"
- value="64"
- c:type="GST_ELEMENT_FACTORY_TYPE_PARSER">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_PAYLOADER"
- value="128"
- c:type="GST_ELEMENT_FACTORY_TYPE_PAYLOADER">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_SINK"
- value="4"
- c:type="GST_ELEMENT_FACTORY_TYPE_SINK">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_SRC"
- value="8"
- c:type="GST_ELEMENT_FACTORY_TYPE_SRC">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_FACTORY_TYPE_VIDEO_ENCODER"
- value="2814749767106562"
- c:type="GST_ELEMENT_FACTORY_TYPE_VIDEO_ENCODER">
- <doc xml:space="preserve">All encoders handling video or image media types</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="ELEMENT_METADATA_AUTHOR"
- value="author"
- c:type="GST_ELEMENT_METADATA_AUTHOR">
- <doc xml:space="preserve">Name and contact details of the author(s). Use \n to separate
- multiple author details.
- E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_METADATA_DESCRIPTION"
- value="description"
- c:type="GST_ELEMENT_METADATA_DESCRIPTION">
- <doc xml:space="preserve">Sentence describing the purpose of the element.
- E.g: "Write stream to a file"</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_METADATA_DOC_URI"
- value="doc-uri"
- c:type="GST_ELEMENT_METADATA_DOC_URI">
- <doc xml:space="preserve">Set uri pointing to user documentation. Applications can use this to show
- help for e.g. effects to users.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_METADATA_ICON_NAME"
- value="icon-name"
- c:type="GST_ELEMENT_METADATA_ICON_NAME">
- <doc xml:space="preserve">Elements that bridge to certain other products can include an icon of that
- used product. Application can show the icon in menus/selectors to help
- identifying specific elements.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_METADATA_KLASS"
- value="klass"
- c:type="GST_ELEMENT_METADATA_KLASS">
- <doc xml:space="preserve">String describing the type of element, as an unordered list
- separated with slashes ('/'). See draft-klass.txt of the design docs
- for more details and common types. E.g: "Sink/File"</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ELEMENT_METADATA_LONGNAME"
- value="long-name"
- c:type="GST_ELEMENT_METADATA_LONGNAME">
- <doc xml:space="preserve">The long English name of the element. E.g. "File Sink"</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="ERROR_SYSTEM"
- value="system error: %s"
- c:type="GST_ERROR_SYSTEM">
- <doc xml:space="preserve">Builds a string using errno describing the previously failed system
- call. To be used as the debug argument in #GST_ELEMENT_ERROR.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="EVENT_NUM_SHIFT" value="8" c:type="GST_EVENT_NUM_SHIFT">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="EVENT_TYPE_BOTH" value="0" c:type="GST_EVENT_TYPE_BOTH">
- <doc xml:space="preserve">The same thing as #GST_EVENT_TYPE_UPSTREAM | #GST_EVENT_TYPE_DOWNSTREAM.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <class name="Element"
- c:symbol-prefix="element"
- c:type="GstElement"
- parent="Object"
- abstract="1"
- glib:type-name="GstElement"
- glib:get-type="gst_element_get_type"
- glib:type-struct="ElementClass">
- <doc xml:space="preserve">GstElement is the abstract base class needed to construct an element that
- can be used in a GStreamer pipeline. Please refer to the plugin writers
- guide for more information on creating #GstElement subclasses.
- The name of a #GstElement can be get with gst_element_get_name() and set with
- gst_element_set_name(). For speed, GST_ELEMENT_NAME() can be used in the
- core when using the appropriate locking. Do not use this in plug-ins or
- applications in order to retain ABI compatibility.
- Elements can have pads (of the type #GstPad). These pads link to pads on
- other elements. #GstBuffer flow between these linked pads.
- A #GstElement has a #GList of #GstPad structures for all their input (or sink)
- and output (or source) pads.
- Core and plug-in writers can add and remove pads with gst_element_add_pad()
- and gst_element_remove_pad().
- An existing pad of an element can be retrieved by name with
- gst_element_get_static_pad(). A new dynamic pad can be created using
- gst_element_request_pad() with a #GstPadTemplate.
- An iterator of all pads can be retrieved with gst_element_iterate_pads().
- Elements can be linked through their pads.
- If the link is straightforward, use the gst_element_link()
- convenience function to link two elements, or gst_element_link_many()
- for more elements in a row.
- Use gst_element_link_filtered() to link two elements constrained by
- a specified set of #GstCaps.
- For finer control, use gst_element_link_pads() and
- gst_element_link_pads_filtered() to specify the pads to link on
- each element by name.
- Each element has a state (see #GstState). You can get and set the state
- of an element with gst_element_get_state() and gst_element_set_state().
- Setting a state triggers a #GstStateChange. To get a string representation
- of a #GstState, use gst_element_state_get_name().
- You can get and set a #GstClock on an element using gst_element_get_clock()
- and gst_element_set_clock().
- Some elements can provide a clock for the pipeline if
- the #GST_ELEMENT_FLAG_PROVIDE_CLOCK flag is set. With the
- gst_element_provide_clock() method one can retrieve the clock provided by
- such an element.
- Not all elements require a clock to operate correctly. If the
- #GST_ELEMENT_FLAG_REQUIRE_CLOCK() flag is set, a clock should be set on the
- element with gst_element_set_clock().
- Note that clock selection and distribution is normally handled by the
- toplevel #GstPipeline so the clock functions are only to be used in very
- specific situations.</doc>
- <function name="make_from_uri"
- c:identifier="gst_element_make_from_uri"
- throws="1">
- <doc xml:space="preserve">Creates an element for handling the given URI.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a new element or %NULL if none could be created</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">Whether to create a source or a sink</doc>
- <type name="URIType" c:type="const GstURIType"/>
- </parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">URI to create an element for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="elementname"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Name of created element, can be %NULL.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="register" c:identifier="gst_element_register">
- <doc xml:space="preserve">Create a new elementfactory capable of instantiating objects of the
- @type and add the factory to @plugin.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if the registering succeeded, %FALSE on error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="plugin"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GstPlugin to register the element with, or %NULL for
- a static element.</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name of elements of this type</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="rank" transfer-ownership="none">
- <doc xml:space="preserve">rank of element (higher rank means more importance when autoplugging)</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">GType of element to register</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </function>
- <function name="state_change_return_get_name"
- c:identifier="gst_element_state_change_return_get_name">
- <doc xml:space="preserve">Gets a string representing the given state change result.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string with the name of the state
- result.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="state_ret" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStateChangeReturn to get the name of.</doc>
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </parameter>
- </parameters>
- </function>
- <function name="state_get_name"
- c:identifier="gst_element_state_get_name">
- <doc xml:space="preserve">Gets a string representing the given state.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string with the name of the state.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="state" transfer-ownership="none">
- <doc xml:space="preserve">a #GstState to get the name of.</doc>
- <type name="State" c:type="GstState"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="change_state" invoker="change_state">
- <doc xml:space="preserve">Perform @transition on @element.
- This function must be called with STATE_LOCK held and is mainly used
- internally.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstStateChangeReturn of the state transition.</doc>
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="transition" transfer-ownership="none">
- <doc xml:space="preserve">the requested transition</doc>
- <type name="StateChange" c:type="GstStateChange"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_state" invoker="get_state">
- <doc xml:space="preserve">Gets the state of the element.
- For elements that performed an ASYNC state change, as reported by
- gst_element_set_state(), this function will block up to the
- specified timeout value for the state change to complete.
- If the element completes the state change or goes into
- an error, this function returns immediately with a return value of
- %GST_STATE_CHANGE_SUCCESS or %GST_STATE_CHANGE_FAILURE respectively.
- For elements that did not return %GST_STATE_CHANGE_ASYNC, this function
- returns the current and pending state immediately.
- This function returns %GST_STATE_CHANGE_NO_PREROLL if the element
- successfully changed its state but is not able to provide data yet.
- This mostly happens for live sources that only produce data in
- %GST_STATE_PLAYING. While the state change return is equivalent to
- %GST_STATE_CHANGE_SUCCESS, it is returned to the application to signal that
- some sink elements might not be able to complete their state change because
- an element is not producing data to complete the preroll. When setting the
- element to playing, the preroll will complete and playback will start.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%GST_STATE_CHANGE_SUCCESS if the element has no more pending state
- and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the
- element is still performing a state change or
- %GST_STATE_CHANGE_FAILURE if the last state change failed.
- MT safe.</doc>
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to get the state of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="state"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to #GstState to hold the state.
- Can be %NULL.</doc>
- <type name="State" c:type="GstState*"/>
- </parameter>
- <parameter name="pending"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to #GstState to hold the pending
- state. Can be %NULL.</doc>
- <type name="State" c:type="GstState*"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClockTime to specify the timeout for an async
- state change or %GST_CLOCK_TIME_NONE for infinite timeout.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="no_more_pads" invoker="no_more_pads">
- <doc xml:space="preserve">Use this function to signal that the element does not expect any more pads
- to show up in the current pipeline. This function should be called whenever
- pads have been added by the element itself. Elements with #GST_PAD_SOMETIMES
- pad templates use this in combination with autopluggers to figure out that
- the element is done initializing its pads.
- This function emits the #GstElement::no-more-pads signal.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="pad_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="pad_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="post_message" invoker="post_message">
- <doc xml:space="preserve">Post a message on the element's #GstBus. This function takes ownership of the
- message; if you want to access the message after this call, you should add an
- additional reference before calling.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the message was successfully posted. The function returns
- %FALSE if the element did not have a bus.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement posting the message</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="full">
- <doc xml:space="preserve">a #GstMessage to post</doc>
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="provide_clock" invoker="provide_clock">
- <doc xml:space="preserve">Get the clock provided by the given element.
- <note>An element is only required to provide a clock in the PAUSED
- state. Some elements can provide a clock in other states.</note></doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the GstClock provided by the
- element or %NULL if no clock could be provided. Unref after usage.
- MT safe.</doc>
- <type name="Clock" c:type="GstClock*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to query</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query" invoker="query">
- <doc xml:space="preserve">Performs a query on the given element.
- For elements that don't implement a query handler, this function
- forwards the query to a random srcpad or to the peer of a
- random linked sinkpad of this element.
- Please note that some queries might need a running pipeline to work.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be performed.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to perform the query on.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">the #GstQuery.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="release_pad">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="request_new_pad" invoker="request_pad">
- <doc xml:space="preserve">Retrieves a request pad from the element according to the provided template.
- Pad templates can be looked up using
- gst_element_factory_get_static_pad_templates().
- The pad should be released with gst_element_release_request_pad().</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">requested #GstPad if found,
- otherwise %NULL. Release after usage.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to find a request pad of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="templ" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadTemplate of which we want a pad of.</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the request #GstPad
- to retrieve. Can be %NULL.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="caps"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the caps of the pad we want to
- request. Can be %NULL.</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="send_event" invoker="send_event">
- <doc xml:space="preserve">Sends an event to an element. If the element doesn't implement an
- event handler, the event will be pushed on a random linked sink pad for
- downstream events or a random linked source pad for upstream events.
- This function takes ownership of the provided event so you should
- gst_event_ref() it if you want to reuse the event after this call.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the event was handled. Events that trigger a preroll (such
- as flushing seeks and steps) will emit %GST_MESSAGE_ASYNC_DONE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to send the event to.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="full">
- <doc xml:space="preserve">the #GstEvent to send to the element.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_bus" invoker="set_bus">
- <doc xml:space="preserve">Sets the bus of the element. Increases the refcount on the bus.
- For internal use only, unless you're testing elements.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to set the bus of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">the #GstBus to set.</doc>
- <type name="Bus" c:type="GstBus*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_clock" invoker="set_clock">
- <doc xml:space="preserve">Sets the clock for the element. This function increases the
- refcount on the clock. Any previously set clock on the object
- is unreffed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the element accepted the clock. An element can refuse a
- clock when it, for example, is not able to slave its internal clock to the
- @clock or when it requires a specific clock to operate.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to set the clock for.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">the #GstClock to set for the element.</doc>
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_context" invoker="set_context">
- <doc xml:space="preserve">Sets the context of the element. Increases the refcount of the context.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to set the context of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">the #GstContext to set.</doc>
- <type name="Context" c:type="GstContext*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_state" invoker="set_state">
- <doc xml:space="preserve">Sets the state of the element. This function will try to set the
- requested state by going through all the intermediary states and calling
- the class's state change function for each.
- This function can return #GST_STATE_CHANGE_ASYNC, in which case the
- element will perform the remainder of the state change asynchronously in
- another thread.
- An application can use gst_element_get_state() to wait for the completion
- of the state change or it can wait for a %GST_MESSAGE_ASYNC_DONE or
- %GST_MESSAGE_STATE_CHANGED on the bus.
- State changes to %GST_STATE_READY or %GST_STATE_NULL never return
- #GST_STATE_CHANGE_ASYNC.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Result of the state change using #GstStateChangeReturn.
- MT safe.</doc>
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to change state of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="state" transfer-ownership="none">
- <doc xml:space="preserve">the element's new #GstState.</doc>
- <type name="State" c:type="GstState"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="state_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="oldstate" transfer-ownership="none">
- <type name="State" c:type="GstState"/>
- </parameter>
- <parameter name="newstate" transfer-ownership="none">
- <type name="State" c:type="GstState"/>
- </parameter>
- <parameter name="pending" transfer-ownership="none">
- <type name="State" c:type="GstState"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="abort_state" c:identifier="gst_element_abort_state">
- <doc xml:space="preserve">Abort the state change of the element. This function is used
- by elements that do asynchronous state changes and find out
- something is wrong.
- This function should be called with the STATE_LOCK held.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to abort the state of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="add_pad" c:identifier="gst_element_add_pad">
- <doc xml:space="preserve">Adds a pad (link point) to @element. @pad's parent will be set to @element;
- see gst_object_set_parent() for refcounting information.
- Pads are not automatically activated so elements should perform the needed
- steps to activate the pad in case this pad is added in the PAUSED or PLAYING
- state. See gst_pad_set_active() for more information about activating pads.
- The pad and the element should be unlocked when calling this function.
- This function will emit the #GstElement::pad-added signal on the element.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pad could be added. This function can fail when
- a pad with the same name already existed or the pad already had another
- parent.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to add the pad to.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="pad" transfer-ownership="full">
- <doc xml:space="preserve">the #GstPad to add to the element.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <method name="change_state" c:identifier="gst_element_change_state">
- <doc xml:space="preserve">Perform @transition on @element.
- This function must be called with STATE_LOCK held and is mainly used
- internally.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstStateChangeReturn of the state transition.</doc>
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="transition" transfer-ownership="none">
- <doc xml:space="preserve">the requested transition</doc>
- <type name="StateChange" c:type="GstStateChange"/>
- </parameter>
- </parameters>
- </method>
- <method name="continue_state" c:identifier="gst_element_continue_state">
- <doc xml:space="preserve">Commit the state change of the element and proceed to the next
- pending state if any. This function is used
- by elements that do asynchronous state changes.
- The core will normally call this method automatically when an
- element returned %GST_STATE_CHANGE_SUCCESS from the state change function.
- If after calling this method the element still has not reached
- the pending state, the next state change is performed.
- This method is used internally and should normally not be called by plugins
- or applications.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The result of the commit state change.
- MT safe.</doc>
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to continue the state change of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="ret" transfer-ownership="none">
- <doc xml:space="preserve">The previous state return value</doc>
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </parameter>
- </parameters>
- </method>
- <method name="create_all_pads"
- c:identifier="gst_element_create_all_pads">
- <doc xml:space="preserve">Creates a pad for each pad template that is always available.
- This function is only useful during object initialization of
- subclasses of #GstElement.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to create pads for</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_base_time" c:identifier="gst_element_get_base_time">
- <doc xml:space="preserve">Returns the base time of the element. The base time is the
- absolute time of the clock when this element was last put to
- PLAYING. Subtracting the base time from the clock time gives
- the running time of the element.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the base time of the element.
- MT safe.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_bus" c:identifier="gst_element_get_bus">
- <doc xml:space="preserve">Returns the bus of the element. Note that only a #GstPipeline will provide a
- bus for the application.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the element's #GstBus. unref after usage.
- MT safe.</doc>
- <type name="Bus" c:type="GstBus*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to get the bus of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_clock" c:identifier="gst_element_get_clock">
- <doc xml:space="preserve">Gets the currently configured clock of the element. This is the clock as was
- last set with gst_element_set_clock().
- Elements in a pipeline will only have their clock set when the
- pipeline is in the PLAYING state.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the #GstClock of the element. unref after usage.
- MT safe.</doc>
- <type name="Clock" c:type="GstClock*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to get the clock of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_compatible_pad"
- c:identifier="gst_element_get_compatible_pad">
- <doc xml:space="preserve">Looks for an unlinked pad to which the given pad can link. It is not
- guaranteed that linking the pads will work, though it should work in most
- cases.
- This function will first attempt to find a compatible unlinked ALWAYS pad,
- and if none can be found, it will request a compatible REQUEST pad by looking
- at the templates of @element.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the #GstPad to which a link
- can be made, or %NULL if one cannot be found. gst_object_unref()
- after usage.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement in which the pad should be found.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to find a compatible one for.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="caps"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the #GstCaps to use as a filter.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_compatible_pad_template"
- c:identifier="gst_element_get_compatible_pad_template">
- <doc xml:space="preserve">Retrieves a pad template from @element that is compatible with @compattempl.
- Pads from compatible templates can be linked together.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a compatible #GstPadTemplate,
- or %NULL if none was found. No unreferencing is necessary.</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to get a compatible pad template for</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="compattempl" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPadTemplate to find a compatible
- template for</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_context"
- c:identifier="gst_element_get_context"
- version="1.8">
- <doc xml:space="preserve">Gets the context with @context_type set on the element or NULL.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GstContext or NULL</doc>
- <type name="Context" c:type="GstContext*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to get the context of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="context_type" transfer-ownership="none">
- <doc xml:space="preserve">a name of a context to retrieve</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_context_unlocked"
- c:identifier="gst_element_get_context_unlocked"
- version="1.8">
- <doc xml:space="preserve">Gets the context with @context_type set on the element or NULL.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GstContext or NULL</doc>
- <type name="Context" c:type="GstContext*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to get the context of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="context_type" transfer-ownership="none">
- <doc xml:space="preserve">a name of a context to retrieve</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_contexts"
- c:identifier="gst_element_get_contexts"
- version="1.8">
- <doc xml:space="preserve">Gets the contexts set on the element.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">List of #GstContext</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Context"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to set the context of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_factory" c:identifier="gst_element_get_factory">
- <doc xml:space="preserve">Retrieves the factory that was used to create this element.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstElementFactory used for creating this
- element. no refcounting is needed.</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to request the element factory of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_request_pad"
- c:identifier="gst_element_get_request_pad">
- <doc xml:space="preserve">Retrieves a pad from the element by name (e.g. "src_\%d"). This version only
- retrieves request pads. The pad should be released with
- gst_element_release_request_pad().
- This method is slower than manually getting the pad template and calling
- gst_element_request_pad() if the pads should have a specific name (e.g.
- @name is "src_1" instead of "src_\%u").</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">requested #GstPad if found,
- otherwise %NULL. Release after usage.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to find a request pad of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the request #GstPad to retrieve.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_start_time" c:identifier="gst_element_get_start_time">
- <doc xml:space="preserve">Returns the start time of the element. The start time is the
- running time of the clock when this element was last put to PAUSED.
- Usually the start_time is managed by a toplevel element such as
- #GstPipeline.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the start time of the element.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_state" c:identifier="gst_element_get_state">
- <doc xml:space="preserve">Gets the state of the element.
- For elements that performed an ASYNC state change, as reported by
- gst_element_set_state(), this function will block up to the
- specified timeout value for the state change to complete.
- If the element completes the state change or goes into
- an error, this function returns immediately with a return value of
- %GST_STATE_CHANGE_SUCCESS or %GST_STATE_CHANGE_FAILURE respectively.
- For elements that did not return %GST_STATE_CHANGE_ASYNC, this function
- returns the current and pending state immediately.
- This function returns %GST_STATE_CHANGE_NO_PREROLL if the element
- successfully changed its state but is not able to provide data yet.
- This mostly happens for live sources that only produce data in
- %GST_STATE_PLAYING. While the state change return is equivalent to
- %GST_STATE_CHANGE_SUCCESS, it is returned to the application to signal that
- some sink elements might not be able to complete their state change because
- an element is not producing data to complete the preroll. When setting the
- element to playing, the preroll will complete and playback will start.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%GST_STATE_CHANGE_SUCCESS if the element has no more pending state
- and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the
- element is still performing a state change or
- %GST_STATE_CHANGE_FAILURE if the last state change failed.
- MT safe.</doc>
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to get the state of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="state"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to #GstState to hold the state.
- Can be %NULL.</doc>
- <type name="State" c:type="GstState*"/>
- </parameter>
- <parameter name="pending"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to #GstState to hold the pending
- state. Can be %NULL.</doc>
- <type name="State" c:type="GstState*"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClockTime to specify the timeout for an async
- state change or %GST_CLOCK_TIME_NONE for infinite timeout.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_static_pad" c:identifier="gst_element_get_static_pad">
- <doc xml:space="preserve">Retrieves a pad from @element by name. This version only retrieves
- already-existing (i.e. 'static') pads.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the requested #GstPad if
- found, otherwise %NULL. unref after usage.
- MT safe.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to find a static pad of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the static #GstPad to retrieve.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_locked_state"
- c:identifier="gst_element_is_locked_state">
- <doc xml:space="preserve">Checks if the state of an element is locked.
- If the state of an element is locked, state changes of the parent don't
- affect the element.
- This way you can leave currently unused elements inside bins. Just lock their
- state before changing the state from #GST_STATE_NULL.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if the element's state is locked.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="iterate_pads" c:identifier="gst_element_iterate_pads">
- <doc xml:space="preserve">Retrieves an iterator of @element's pads. The iterator should
- be freed after usage. Also more specialized iterators exists such as
- gst_element_iterate_src_pads() or gst_element_iterate_sink_pads().
- The order of pads returned by the iterator will be the order in which
- the pads were added to the element.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the #GstIterator of #GstPad.
- MT safe.</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to iterate pads of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="iterate_sink_pads"
- c:identifier="gst_element_iterate_sink_pads">
- <doc xml:space="preserve">Retrieves an iterator of @element's sink pads.
- The order of pads returned by the iterator will be the order in which
- the pads were added to the element.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the #GstIterator of #GstPad.
- MT safe.</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="iterate_src_pads"
- c:identifier="gst_element_iterate_src_pads">
- <doc xml:space="preserve">Retrieves an iterator of @element's source pads.
- The order of pads returned by the iterator will be the order in which
- the pads were added to the element.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the #GstIterator of #GstPad.
- MT safe.</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="link" c:identifier="gst_element_link">
- <doc xml:space="preserve">Links @src to @dest. The link must be from source to
- destination; the other direction will not be tried. The function looks for
- existing pads that aren't linked yet. It will request new pads if necessary.
- Such pads need to be released manually when unlinking.
- If multiple links are possible, only one is established.
- Make sure you have added your elements to a bin or pipeline with
- gst_bin_add() before trying to link them.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the elements could be linked, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement containing the source pad.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">the #GstElement containing the destination pad.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </method>
- <method name="link_filtered" c:identifier="gst_element_link_filtered">
- <doc xml:space="preserve">Links @src to @dest using the given caps as filtercaps.
- The link must be from source to
- destination; the other direction will not be tried. The function looks for
- existing pads that aren't linked yet. It will request new pads if necessary.
- If multiple links are possible, only one is established.
- Make sure you have added your elements to a bin or pipeline with
- gst_bin_add() before trying to link them.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pads could be linked, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement containing the source pad.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">the #GstElement containing the destination pad.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="filter"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the #GstCaps to filter the link,
- or %NULL for no filter.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="link_many"
- c:identifier="gst_element_link_many"
- introspectable="0">
- <doc xml:space="preserve">Chain together a series of elements. Uses gst_element_link().
- Make sure you have added your elements to a bin or pipeline with
- gst_bin_add() before trying to link them.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element_1" transfer-ownership="none">
- <doc xml:space="preserve">the first #GstElement in the link chain.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="element_2" transfer-ownership="none">
- <doc xml:space="preserve">the second #GstElement in the link chain.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">the %NULL-terminated list of elements to link in order.</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="link_pads" c:identifier="gst_element_link_pads">
- <doc xml:space="preserve">Links the two named pads of the source and destination elements.
- Side effect is that if one of the pads has no parent, it becomes a
- child of the parent of the other element. If they have different
- parents, the link fails.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pads could be linked, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement containing the source pad.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="srcpadname"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the #GstPad in source element
- or %NULL for any pad.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">the #GstElement containing the destination pad.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="destpadname"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the #GstPad in destination element,
- or %NULL for any pad.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="link_pads_filtered"
- c:identifier="gst_element_link_pads_filtered">
- <doc xml:space="preserve">Links the two named pads of the source and destination elements. Side effect
- is that if one of the pads has no parent, it becomes a child of the parent of
- the other element. If they have different parents, the link fails. If @caps
- is not %NULL, makes sure that the caps of the link is a subset of @caps.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pads could be linked, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement containing the source pad.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="srcpadname"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the #GstPad in source element
- or %NULL for any pad.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">the #GstElement containing the destination pad.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="destpadname"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the #GstPad in destination element
- or %NULL for any pad.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="filter"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the #GstCaps to filter the link,
- or %NULL for no filter.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="link_pads_full" c:identifier="gst_element_link_pads_full">
- <doc xml:space="preserve">Links the two named pads of the source and destination elements.
- Side effect is that if one of the pads has no parent, it becomes a
- child of the parent of the other element. If they have different
- parents, the link fails.
- Calling gst_element_link_pads_full() with @flags == %GST_PAD_LINK_CHECK_DEFAULT
- is the same as calling gst_element_link_pads() and the recommended way of
- linking pads with safety checks applied.
- This is a convenience function for gst_pad_link_full().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pads could be linked, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement containing the source pad.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="srcpadname"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the #GstPad in source element
- or %NULL for any pad.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">the #GstElement containing the destination pad.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="destpadname"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the #GstPad in destination element,
- or %NULL for any pad.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPadLinkCheck to be performed when linking pads.</doc>
- <type name="PadLinkCheck" c:type="GstPadLinkCheck"/>
- </parameter>
- </parameters>
- </method>
- <method name="lost_state" c:identifier="gst_element_lost_state">
- <doc xml:space="preserve">Brings the element to the lost state. The current state of the
- element is copied to the pending state so that any call to
- gst_element_get_state() will return %GST_STATE_CHANGE_ASYNC.
- An ASYNC_START message is posted. If the element was PLAYING, it will
- go to PAUSED. The element will be restored to its PLAYING state by
- the parent pipeline when it prerolls again.
- This is mostly used for elements that lost their preroll buffer
- in the %GST_STATE_PAUSED or %GST_STATE_PLAYING state after a flush,
- they will go to their pending state again when a new preroll buffer is
- queued. This function can only be called when the element is currently
- not in error or an async state change.
- This function is used internally and should normally not be called from
- plugins or applications.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement the state is lost of</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="message_full" c:identifier="gst_element_message_full">
- <doc xml:space="preserve">Post an error, warning or info message on the bus from inside an element.
- @type must be of #GST_MESSAGE_ERROR, #GST_MESSAGE_WARNING or
- #GST_MESSAGE_INFO.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to send message from</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the #GstMessageType</doc>
- <type name="MessageType" c:type="GstMessageType"/>
- </parameter>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">the GStreamer GError domain this message belongs to</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="code" transfer-ownership="none">
- <doc xml:space="preserve">the GError code belonging to the domain</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="text"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an allocated text string to be used
- as a replacement for the default message connected to code,
- or %NULL</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="debug"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an allocated debug message to be
- used as a replacement for the default debugging information,
- or %NULL</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">the source code file where the error was generated</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="function" transfer-ownership="none">
- <doc xml:space="preserve">the source code function where the error was generated</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="line" transfer-ownership="none">
- <doc xml:space="preserve">the source code line where the error was generated</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="no_more_pads" c:identifier="gst_element_no_more_pads">
- <doc xml:space="preserve">Use this function to signal that the element does not expect any more pads
- to show up in the current pipeline. This function should be called whenever
- pads have been added by the element itself. Elements with #GST_PAD_SOMETIMES
- pad templates use this in combination with autopluggers to figure out that
- the element is done initializing its pads.
- This function emits the #GstElement::no-more-pads signal.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="post_message" c:identifier="gst_element_post_message">
- <doc xml:space="preserve">Post a message on the element's #GstBus. This function takes ownership of the
- message; if you want to access the message after this call, you should add an
- additional reference before calling.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the message was successfully posted. The function returns
- %FALSE if the element did not have a bus.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement posting the message</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="full">
- <doc xml:space="preserve">a #GstMessage to post</doc>
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </method>
- <method name="provide_clock" c:identifier="gst_element_provide_clock">
- <doc xml:space="preserve">Get the clock provided by the given element.
- <note>An element is only required to provide a clock in the PAUSED
- state. Some elements can provide a clock in other states.</note></doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the GstClock provided by the
- element or %NULL if no clock could be provided. Unref after usage.
- MT safe.</doc>
- <type name="Clock" c:type="GstClock*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to query</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="query" c:identifier="gst_element_query">
- <doc xml:space="preserve">Performs a query on the given element.
- For elements that don't implement a query handler, this function
- forwards the query to a random srcpad or to the peer of a
- random linked sinkpad of this element.
- Please note that some queries might need a running pipeline to work.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be performed.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to perform the query on.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">the #GstQuery.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_convert" c:identifier="gst_element_query_convert">
- <doc xml:space="preserve">Queries an element to convert @src_val in @src_format to @dest_format.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to invoke the convert query on.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="src_format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstFormat to convert from.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="src_val" transfer-ownership="none">
- <doc xml:space="preserve">a value to convert.</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="dest_format" transfer-ownership="none">
- <doc xml:space="preserve">the #GstFormat to convert to.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="dest_val"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to the result.</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_duration" c:identifier="gst_element_query_duration">
- <doc xml:space="preserve">Queries an element (usually top-level pipeline or playbin element) for the
- total stream duration in nanoseconds. This query will only work once the
- pipeline is prerolled (i.e. reached PAUSED or PLAYING state). The application
- will receive an ASYNC_DONE message on the pipeline bus when that is the case.
- If the duration changes for some reason, you will get a DURATION_CHANGED
- message on the pipeline bus, in which case you should re-query the duration
- using this function.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to invoke the duration query on.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the #GstFormat requested</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="duration"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">A location in which to store the total duration, or %NULL.</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_position" c:identifier="gst_element_query_position">
- <doc xml:space="preserve">Queries an element (usually top-level pipeline or playbin element) for the
- stream position in nanoseconds. This will be a value between 0 and the
- stream duration (if the stream duration is known). This query will usually
- only work once the pipeline is prerolled (i.e. reached PAUSED or PLAYING
- state). The application will receive an ASYNC_DONE message on the pipeline
- bus when that is the case.
- If one repeatedly calls this function one can also create a query and reuse
- it in gst_element_query().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to invoke the position query on.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the #GstFormat requested</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="cur"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location in which to store the current
- position, or %NULL.</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="release_request_pad"
- c:identifier="gst_element_release_request_pad">
- <doc xml:space="preserve">Makes the element free the previously requested pad as obtained
- with gst_element_request_pad().
- This does not unref the pad. If the pad was created by using
- gst_element_request_pad(), gst_element_release_request_pad() needs to be
- followed by gst_object_unref() to free the @pad.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to release the request pad of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to release.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_pad" c:identifier="gst_element_remove_pad">
- <doc xml:space="preserve">Removes @pad from @element. @pad will be destroyed if it has not been
- referenced elsewhere using gst_object_unparent().
- This function is used by plugin developers and should not be used
- by applications. Pads that were dynamically requested from elements
- with gst_element_request_pad() should be released with the
- gst_element_release_request_pad() function instead.
- Pads are not automatically deactivated so elements should perform the needed
- steps to deactivate the pad in case this pad is removed in the PAUSED or
- PLAYING state. See gst_pad_set_active() for more information about
- deactivating pads.
- The pad and the element should be unlocked when calling this function.
- This function will emit the #GstElement::pad-removed signal on the element.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pad could be removed. Can return %FALSE if the
- pad does not belong to the provided element.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to remove pad from.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="pad" transfer-ownership="full">
- <doc xml:space="preserve">the #GstPad to remove from the element.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <method name="request_pad" c:identifier="gst_element_request_pad">
- <doc xml:space="preserve">Retrieves a request pad from the element according to the provided template.
- Pad templates can be looked up using
- gst_element_factory_get_static_pad_templates().
- The pad should be released with gst_element_release_request_pad().</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">requested #GstPad if found,
- otherwise %NULL. Release after usage.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to find a request pad of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="templ" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadTemplate of which we want a pad of.</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the request #GstPad
- to retrieve. Can be %NULL.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="caps"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the caps of the pad we want to
- request. Can be %NULL.</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="seek" c:identifier="gst_element_seek">
- <doc xml:space="preserve">Sends a seek event to an element. See gst_event_new_seek() for the details of
- the parameters. The seek event is sent to the element using
- gst_element_send_event().
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the event was handled. Flushing seeks will trigger a
- preroll, which will emit %GST_MESSAGE_ASYNC_DONE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to send the event to.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="rate" transfer-ownership="none">
- <doc xml:space="preserve">The new playback rate</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">The format of the seek values</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">The optional seek flags.</doc>
- <type name="SeekFlags" c:type="GstSeekFlags"/>
- </parameter>
- <parameter name="start_type" transfer-ownership="none">
- <doc xml:space="preserve">The type and flags for the new start position</doc>
- <type name="SeekType" c:type="GstSeekType"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <doc xml:space="preserve">The value of the new start position</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="stop_type" transfer-ownership="none">
- <doc xml:space="preserve">The type and flags for the new stop position</doc>
- <type name="SeekType" c:type="GstSeekType"/>
- </parameter>
- <parameter name="stop" transfer-ownership="none">
- <doc xml:space="preserve">The value of the new stop position</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="seek_simple" c:identifier="gst_element_seek_simple">
- <doc xml:space="preserve">Simple API to perform a seek on the given element, meaning it just seeks
- to the given position relative to the start of the stream. For more complex
- operations like segment seeks (e.g. for looping) or changing the playback
- rate or seeking relative to the last configured playback segment you should
- use gst_element_seek().
- In a completely prerolled PAUSED or PLAYING pipeline, seeking is always
- guaranteed to return %TRUE on a seekable media type or %FALSE when the media
- type is certainly not seekable (such as a live stream).
- Some elements allow for seeking in the READY state, in this
- case they will store the seek event and execute it when they are put to
- PAUSED. If the element supports seek in READY, it will always return %TRUE when
- it receives the event in the READY state.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the seek operation succeeded. Flushing seeks will trigger a
- preroll, which will emit %GST_MESSAGE_ASYNC_DONE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to seek on</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstFormat to execute the seek in, such as #GST_FORMAT_TIME</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="seek_flags" transfer-ownership="none">
- <doc xml:space="preserve">seek options; playback applications will usually want to use
- GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT here</doc>
- <type name="SeekFlags" c:type="GstSeekFlags"/>
- </parameter>
- <parameter name="seek_pos" transfer-ownership="none">
- <doc xml:space="preserve">position to seek to (relative to the start); if you are doing
- a seek in #GST_FORMAT_TIME this value is in nanoseconds -
- multiply with #GST_SECOND to convert seconds to nanoseconds or
- with #GST_MSECOND to convert milliseconds to nanoseconds.</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_event" c:identifier="gst_element_send_event">
- <doc xml:space="preserve">Sends an event to an element. If the element doesn't implement an
- event handler, the event will be pushed on a random linked sink pad for
- downstream events or a random linked source pad for upstream events.
- This function takes ownership of the provided event so you should
- gst_event_ref() it if you want to reuse the event after this call.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the event was handled. Events that trigger a preroll (such
- as flushing seeks and steps) will emit %GST_MESSAGE_ASYNC_DONE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to send the event to.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="full">
- <doc xml:space="preserve">the #GstEvent to send to the element.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_base_time" c:identifier="gst_element_set_base_time">
- <doc xml:space="preserve">Set the base time of an element. See gst_element_get_base_time().
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="time" transfer-ownership="none">
- <doc xml:space="preserve">the base time to set.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_bus" c:identifier="gst_element_set_bus">
- <doc xml:space="preserve">Sets the bus of the element. Increases the refcount on the bus.
- For internal use only, unless you're testing elements.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to set the bus of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">the #GstBus to set.</doc>
- <type name="Bus" c:type="GstBus*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_clock" c:identifier="gst_element_set_clock">
- <doc xml:space="preserve">Sets the clock for the element. This function increases the
- refcount on the clock. Any previously set clock on the object
- is unreffed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the element accepted the clock. An element can refuse a
- clock when it, for example, is not able to slave its internal clock to the
- @clock or when it requires a specific clock to operate.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to set the clock for.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">the #GstClock to set for the element.</doc>
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_context" c:identifier="gst_element_set_context">
- <doc xml:space="preserve">Sets the context of the element. Increases the refcount of the context.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to set the context of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">the #GstContext to set.</doc>
- <type name="Context" c:type="GstContext*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_locked_state"
- c:identifier="gst_element_set_locked_state">
- <doc xml:space="preserve">Locks the state of an element, so state changes of the parent don't affect
- this element anymore.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the state was changed, %FALSE if bad parameters were given
- or the elements state-locking needed no change.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="locked_state" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to lock the element's state</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_start_time" c:identifier="gst_element_set_start_time">
- <doc xml:space="preserve">Set the start time of an element. The start time of the element is the
- running time of the element when it last went to the PAUSED state. In READY
- or after a flushing seek, it is set to 0.
- Toplevel elements like #GstPipeline will manage the start_time and
- base_time on its children. Setting the start_time to #GST_CLOCK_TIME_NONE
- on such a toplevel element will disable the distribution of the base_time to
- the children and can be useful if the application manages the base_time
- itself, for example if you want to synchronize capture from multiple
- pipelines, and you can also ensure that the pipelines have the same clock.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="time" transfer-ownership="none">
- <doc xml:space="preserve">the base time to set.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_state" c:identifier="gst_element_set_state">
- <doc xml:space="preserve">Sets the state of the element. This function will try to set the
- requested state by going through all the intermediary states and calling
- the class's state change function for each.
- This function can return #GST_STATE_CHANGE_ASYNC, in which case the
- element will perform the remainder of the state change asynchronously in
- another thread.
- An application can use gst_element_get_state() to wait for the completion
- of the state change or it can wait for a %GST_MESSAGE_ASYNC_DONE or
- %GST_MESSAGE_STATE_CHANGED on the bus.
- State changes to %GST_STATE_READY or %GST_STATE_NULL never return
- #GST_STATE_CHANGE_ASYNC.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Result of the state change using #GstStateChangeReturn.
- MT safe.</doc>
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to change state of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="state" transfer-ownership="none">
- <doc xml:space="preserve">the element's new #GstState.</doc>
- <type name="State" c:type="GstState"/>
- </parameter>
- </parameters>
- </method>
- <method name="sync_state_with_parent"
- c:identifier="gst_element_sync_state_with_parent">
- <doc xml:space="preserve">Tries to change the state of the element to the same as its parent.
- If this function returns %FALSE, the state of element is undefined.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if the element's state could be synced to the parent's state.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unlink" c:identifier="gst_element_unlink">
- <doc xml:space="preserve">Unlinks all source pads of the source element with all sink pads
- of the sink element to which they are linked.
- If the link has been made using gst_element_link(), it could have created an
- requestpad, which has to be released using gst_element_release_request_pad().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">the source #GstElement to unlink.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">the sink #GstElement to unlink.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </method>
- <method name="unlink_many"
- c:identifier="gst_element_unlink_many"
- introspectable="0">
- <doc xml:space="preserve">Unlinks a series of elements. Uses gst_element_unlink().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="element_1" transfer-ownership="none">
- <doc xml:space="preserve">the first #GstElement in the link chain.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="element_2" transfer-ownership="none">
- <doc xml:space="preserve">the second #GstElement in the link chain.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">the %NULL-terminated list of elements to unlink in order.</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="unlink_pads" c:identifier="gst_element_unlink_pads">
- <doc xml:space="preserve">Unlinks the two named pads of the source and destination elements.
- This is a convenience function for gst_pad_unlink().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">a (transfer none): #GstElement containing the source pad.</doc>
- <type name="Element" c:type="GstElement*"/>
- </instance-parameter>
- <parameter name="srcpadname" transfer-ownership="none">
- <doc xml:space="preserve">the name of the #GstPad in source element.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement containing the destination pad.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="destpadname" transfer-ownership="none">
- <doc xml:space="preserve">the name of the #GstPad in destination element.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="state_lock">
- <doc xml:space="preserve">Used to serialize execution of gst_element_set_state()</doc>
- <type name="GLib.RecMutex" c:type="GRecMutex"/>
- </field>
- <field name="state_cond">
- <doc xml:space="preserve">Used to signal completion of a state change</doc>
- <type name="GLib.Cond" c:type="GCond"/>
- </field>
- <field name="state_cookie">
- <doc xml:space="preserve">Used to detect concurrent execution of
- gst_element_set_state() and gst_element_get_state()</doc>
- <type name="guint32" c:type="guint32"/>
- </field>
- <field name="target_state">
- <doc xml:space="preserve">the target state of an element as set by the application</doc>
- <type name="State" c:type="GstState"/>
- </field>
- <field name="current_state">
- <doc xml:space="preserve">the current state of an element</doc>
- <type name="State" c:type="GstState"/>
- </field>
- <field name="next_state">
- <doc xml:space="preserve">the next state of an element, can be #GST_STATE_VOID_PENDING if
- the element is in the correct state.</doc>
- <type name="State" c:type="GstState"/>
- </field>
- <field name="pending_state">
- <doc xml:space="preserve">the final state the element should go to, can be
- #GST_STATE_VOID_PENDING if the element is in the correct state</doc>
- <type name="State" c:type="GstState"/>
- </field>
- <field name="last_return">
- <doc xml:space="preserve">the last return value of an element state change</doc>
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </field>
- <field name="bus">
- <doc xml:space="preserve">the bus of the element. This bus is provided to the element by the
- parent element or the application. A #GstPipeline has a bus of its own.</doc>
- <type name="Bus" c:type="GstBus*"/>
- </field>
- <field name="clock">
- <doc xml:space="preserve">the clock of the element. This clock is usually provided to the
- element by the toplevel #GstPipeline.</doc>
- <type name="Clock" c:type="GstClock*"/>
- </field>
- <field name="base_time">
- <doc xml:space="preserve">the time of the clock right before the element is set to
- PLAYING. Subtracting @base_time from the current clock time in the PLAYING
- state will yield the running_time against the clock.</doc>
- <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
- </field>
- <field name="start_time">
- <doc xml:space="preserve">the running_time of the last PAUSED state</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="numpads">
- <doc xml:space="preserve">number of pads of the element, includes both source and sink pads.</doc>
- <type name="guint16" c:type="guint16"/>
- </field>
- <field name="pads">
- <doc xml:space="preserve">list of pads</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Pad"/>
- </type>
- </field>
- <field name="numsrcpads">
- <doc xml:space="preserve">number of source pads of the element.</doc>
- <type name="guint16" c:type="guint16"/>
- </field>
- <field name="srcpads">
- <doc xml:space="preserve">list of source pads</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Pad"/>
- </type>
- </field>
- <field name="numsinkpads">
- <doc xml:space="preserve">number of sink pads of the element.</doc>
- <type name="guint16" c:type="guint16"/>
- </field>
- <field name="sinkpads">
- <doc xml:space="preserve">list of sink pads</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Pad"/>
- </type>
- </field>
- <field name="pads_cookie">
- <doc xml:space="preserve">updated whenever the a pad is added or removed</doc>
- <type name="guint32" c:type="guint32"/>
- </field>
- <field name="contexts">
- <type name="GLib.List" c:type="GList*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="3">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- <glib:signal name="no-more-pads" when="last">
- <doc xml:space="preserve">This signals that the element will not generate more dynamic pads.
- Note that this signal will usually be emitted from the context of
- the streaming thread.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- <glib:signal name="pad-added" when="last">
- <doc xml:space="preserve">a new #GstPad has been added to the element. Note that this signal will
- usually be emitted from the context of the streaming thread. Also keep in
- mind that if you add new elements to the pipeline in the signal handler
- you will need to set them to the desired target state with
- gst_element_set_state() or gst_element_sync_state_with_parent().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="new_pad" transfer-ownership="none">
- <doc xml:space="preserve">the pad that has been added</doc>
- <type name="Pad"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="pad-removed" when="last">
- <doc xml:space="preserve">a #GstPad has been removed from the element</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="old_pad" transfer-ownership="none">
- <doc xml:space="preserve">the pad that has been removed</doc>
- <type name="Pad"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="ElementClass"
- c:type="GstElementClass"
- glib:is-gtype-struct-for="Element">
- <doc xml:space="preserve">GStreamer element class. Override the vmethods to implement the element
- functionality.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">the parent class structure</doc>
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="metadata">
- <doc xml:space="preserve">metadata for elements of this class</doc>
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="elementfactory">
- <doc xml:space="preserve">the #GstElementFactory that creates these elements</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </field>
- <field name="padtemplates">
- <doc xml:space="preserve">a #GList of #GstPadTemplate</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </field>
- <field name="numpadtemplates">
- <doc xml:space="preserve">the number of padtemplates</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="pad_templ_cookie">
- <doc xml:space="preserve">changed whenever the padtemplates change</doc>
- <type name="guint32" c:type="guint32"/>
- </field>
- <field name="pad_added">
- <callback name="pad_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="pad_removed">
- <callback name="pad_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="no_more_pads">
- <callback name="no_more_pads">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="request_new_pad">
- <callback name="request_new_pad">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">requested #GstPad if found,
- otherwise %NULL. Release after usage.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to find a request pad of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="templ" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadTemplate of which we want a pad of.</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the request #GstPad
- to retrieve. Can be %NULL.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="caps"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the caps of the pad we want to
- request. Can be %NULL.</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="release_pad">
- <callback name="release_pad">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_state">
- <callback name="get_state">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%GST_STATE_CHANGE_SUCCESS if the element has no more pending state
- and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the
- element is still performing a state change or
- %GST_STATE_CHANGE_FAILURE if the last state change failed.
- MT safe.</doc>
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to get the state of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="state"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to #GstState to hold the state.
- Can be %NULL.</doc>
- <type name="State" c:type="GstState*"/>
- </parameter>
- <parameter name="pending"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to #GstState to hold the pending
- state. Can be %NULL.</doc>
- <type name="State" c:type="GstState*"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClockTime to specify the timeout for an async
- state change or %GST_CLOCK_TIME_NONE for infinite timeout.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_state">
- <callback name="set_state">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Result of the state change using #GstStateChangeReturn.
- MT safe.</doc>
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to change state of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="state" transfer-ownership="none">
- <doc xml:space="preserve">the element's new #GstState.</doc>
- <type name="State" c:type="GstState"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="change_state">
- <callback name="change_state">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstStateChangeReturn of the state transition.</doc>
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="transition" transfer-ownership="none">
- <doc xml:space="preserve">the requested transition</doc>
- <type name="StateChange" c:type="GstStateChange"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="state_changed">
- <callback name="state_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="oldstate" transfer-ownership="none">
- <type name="State" c:type="GstState"/>
- </parameter>
- <parameter name="newstate" transfer-ownership="none">
- <type name="State" c:type="GstState"/>
- </parameter>
- <parameter name="pending" transfer-ownership="none">
- <type name="State" c:type="GstState"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_bus">
- <callback name="set_bus">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to set the bus of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="bus" transfer-ownership="none">
- <doc xml:space="preserve">the #GstBus to set.</doc>
- <type name="Bus" c:type="GstBus*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="provide_clock">
- <callback name="provide_clock">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the GstClock provided by the
- element or %NULL if no clock could be provided. Unref after usage.
- MT safe.</doc>
- <type name="Clock" c:type="GstClock*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to query</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_clock">
- <callback name="set_clock">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the element accepted the clock. An element can refuse a
- clock when it, for example, is not able to slave its internal clock to the
- @clock or when it requires a specific clock to operate.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to set the clock for.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">the #GstClock to set for the element.</doc>
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="send_event">
- <callback name="send_event">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the event was handled. Events that trigger a preroll (such
- as flushing seeks and steps) will emit %GST_MESSAGE_ASYNC_DONE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to send the event to.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="event" transfer-ownership="full">
- <doc xml:space="preserve">the #GstEvent to send to the element.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query">
- <callback name="query">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be performed.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to perform the query on.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">the #GstQuery.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="post_message">
- <callback name="post_message">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the message was successfully posted. The function returns
- %FALSE if the element did not have a bus.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement posting the message</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="message" transfer-ownership="full">
- <doc xml:space="preserve">a #GstMessage to post</doc>
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_context">
- <callback name="set_context">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to set the context of.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">the #GstContext to set.</doc>
- <type name="Context" c:type="GstContext*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="18">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- <method name="add_metadata"
- c:identifier="gst_element_class_add_metadata">
- <doc xml:space="preserve">Set @key with @value as metadata in @klass.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="klass" transfer-ownership="none">
- <doc xml:space="preserve">class to set metadata for</doc>
- <type name="ElementClass" c:type="GstElementClass*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the value to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_pad_template"
- c:identifier="gst_element_class_add_pad_template">
- <doc xml:space="preserve">Adds a padtemplate to an element class. This is mainly used in the _class_init
- functions of classes. If a pad template with the same name as an already
- existing one is added the old one is replaced by the new one.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="klass" transfer-ownership="none">
- <doc xml:space="preserve">the #GstElementClass to add the pad template to.</doc>
- <type name="ElementClass" c:type="GstElementClass*"/>
- </instance-parameter>
- <parameter name="templ" transfer-ownership="full">
- <doc xml:space="preserve">a #GstPadTemplate to add to the element class.</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_static_metadata"
- c:identifier="gst_element_class_add_static_metadata">
- <doc xml:space="preserve">Set @key with @value as metadata in @klass.
- Same as gst_element_class_add_metadata(), but @value must be a static string
- or an inlined string, as it will not be copied. (GStreamer plugins will
- be made resident once loaded, so this function can be used even from
- dynamically loaded plugins.)</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="klass" transfer-ownership="none">
- <doc xml:space="preserve">class to set metadata for</doc>
- <type name="ElementClass" c:type="GstElementClass*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the value to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_static_pad_template"
- c:identifier="gst_element_class_add_static_pad_template"
- version="1.8">
- <doc xml:space="preserve">Adds a pad template to an element class based on the static pad template
- @templ. This is mainly used in the _class_init functions of element
- implementations. If a pad template with the same name already exists,
- the old one is replaced by the new one.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="klass" transfer-ownership="none">
- <doc xml:space="preserve">the #GstElementClass to add the pad template to.</doc>
- <type name="ElementClass" c:type="GstElementClass*"/>
- </instance-parameter>
- <parameter name="static_templ" transfer-ownership="none">
- <doc xml:space="preserve">#GstStaticPadTemplate to add as pad template to the element class.</doc>
- <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_metadata"
- c:identifier="gst_element_class_get_metadata">
- <doc xml:space="preserve">Get metadata with @key in @klass.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the metadata for @key.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="klass" transfer-ownership="none">
- <doc xml:space="preserve">class to get metadata for</doc>
- <type name="ElementClass" c:type="GstElementClass*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to get</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_pad_template"
- c:identifier="gst_element_class_get_pad_template">
- <doc xml:space="preserve">Retrieves a padtemplate from @element_class with the given name.
- <note>If you use this function in the #GInstanceInitFunc of an object class
- that has subclasses, make sure to pass the g_class parameter of the
- #GInstanceInitFunc here.</note></doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the #GstPadTemplate with the
- given name, or %NULL if none was found. No unreferencing is
- necessary.</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="element_class" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElementClass to get the pad template of.</doc>
- <type name="ElementClass" c:type="GstElementClass*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the #GstPadTemplate to get.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_pad_template_list"
- c:identifier="gst_element_class_get_pad_template_list">
- <doc xml:space="preserve">Retrieves a list of the pad templates associated with @element_class. The
- list must not be modified by the calling code.
- <note>If you use this function in the #GInstanceInitFunc of an object class
- that has subclasses, make sure to pass the g_class parameter of the
- #GInstanceInitFunc here.</note></doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GList of
- pad templates.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="PadTemplate"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="element_class" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElementClass to get pad templates of.</doc>
- <type name="ElementClass" c:type="GstElementClass*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_metadata"
- c:identifier="gst_element_class_set_metadata">
- <doc xml:space="preserve">Sets the detailed information for a #GstElementClass.
- <note>This function is for use in _class_init functions only.</note></doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="klass" transfer-ownership="none">
- <doc xml:space="preserve">class to set metadata for</doc>
- <type name="ElementClass" c:type="GstElementClass*"/>
- </instance-parameter>
- <parameter name="longname" transfer-ownership="none">
- <doc xml:space="preserve">The long English name of the element. E.g. "File Sink"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="classification" transfer-ownership="none">
- <doc xml:space="preserve">String describing the type of element, as an unordered list
- separated with slashes ('/'). See draft-klass.txt of the design docs
- for more details and common types. E.g: "Sink/File"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="description" transfer-ownership="none">
- <doc xml:space="preserve">Sentence describing the purpose of the element.
- E.g: "Write stream to a file"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="author" transfer-ownership="none">
- <doc xml:space="preserve">Name and contact details of the author(s). Use \n to separate
- multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_static_metadata"
- c:identifier="gst_element_class_set_static_metadata">
- <doc xml:space="preserve">Sets the detailed information for a #GstElementClass.
- <note>This function is for use in _class_init functions only.</note>
- Same as gst_element_class_set_metadata(), but @longname, @classification,
- @description, and @author must be static strings or inlined strings, as
- they will not be copied. (GStreamer plugins will be made resident once
- loaded, so this function can be used even from dynamically loaded plugins.)</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="klass" transfer-ownership="none">
- <doc xml:space="preserve">class to set metadata for</doc>
- <type name="ElementClass" c:type="GstElementClass*"/>
- </instance-parameter>
- <parameter name="longname" transfer-ownership="none">
- <doc xml:space="preserve">The long English name of the element. E.g. "File Sink"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="classification" transfer-ownership="none">
- <doc xml:space="preserve">String describing the type of element, as an unordered list
- separated with slashes ('/'). See draft-klass.txt of the design docs
- for more details and common types. E.g: "Sink/File"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="description" transfer-ownership="none">
- <doc xml:space="preserve">Sentence describing the purpose of the element.
- E.g: "Write stream to a file"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="author" transfer-ownership="none">
- <doc xml:space="preserve">Name and contact details of the author(s). Use \n to separate
- multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <class name="ElementFactory"
- c:symbol-prefix="element_factory"
- c:type="GstElementFactory"
- parent="PluginFeature"
- glib:type-name="GstElementFactory"
- glib:get-type="gst_element_factory_get_type"
- glib:type-struct="ElementFactoryClass">
- <doc xml:space="preserve">#GstElementFactory is used to create instances of elements. A
- GstElementFactory can be added to a #GstPlugin as it is also a
- #GstPluginFeature.
- Use the gst_element_factory_find() and gst_element_factory_create()
- functions to create element instances or use gst_element_factory_make() as a
- convenient shortcut.
- The following code example shows you how to create a GstFileSrc element.
- <example>
- <title>Using an element factory</title>
- <programlisting language="c">
- #include &lt;gst/gst.h&gt;
- GstElement *src;
- GstElementFactory *srcfactory;
- gst_init (&amp;argc, &amp;argv);
- srcfactory = gst_element_factory_find ("filesrc");
- g_return_if_fail (srcfactory != NULL);
- src = gst_element_factory_create (srcfactory, "src");
- g_return_if_fail (src != NULL);
- ...
- </programlisting>
- </example></doc>
- <function name="find" c:identifier="gst_element_factory_find">
- <doc xml:space="preserve">Search for an element factory of the given name. Refs the returned
- element factory; caller is responsible for unreffing.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">#GstElementFactory if found,
- %NULL otherwise</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name of factory to find</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="list_filter"
- c:identifier="gst_element_factory_list_filter">
- <doc xml:space="preserve">Filter out all the elementfactories in @list that can handle @caps in
- the given direction.
- If @subsetonly is %TRUE, then only the elements whose pads templates
- are a complete superset of @caps will be returned. Else any element
- whose pad templates caps can intersect with @caps will be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of
- #GstElementFactory elements that match the given requisites.
- Use #gst_plugin_feature_list_free after usage.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="ElementFactory"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GList of
- #GstElementFactory to filter</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="ElementFactory"/>
- </type>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </parameter>
- <parameter name="direction" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadDirection to filter on</doc>
- <type name="PadDirection" c:type="GstPadDirection"/>
- </parameter>
- <parameter name="subsetonly" transfer-ownership="none">
- <doc xml:space="preserve">whether to filter on caps subsets or not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="list_get_elements"
- c:identifier="gst_element_factory_list_get_elements">
- <doc xml:space="preserve">Get a list of factories that match the given @type. Only elements
- with a rank greater or equal to @minrank will be returned.
- The list of factories is returned by decreasing rank.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of
- #GstElementFactory elements. Use gst_plugin_feature_list_free() after
- usage.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="ElementFactory"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElementFactoryListType</doc>
- <type name="ElementFactoryListType"
- c:type="GstElementFactoryListType"/>
- </parameter>
- <parameter name="minrank" transfer-ownership="none">
- <doc xml:space="preserve">Minimum rank</doc>
- <type name="Rank" c:type="GstRank"/>
- </parameter>
- </parameters>
- </function>
- <function name="make" c:identifier="gst_element_factory_make">
- <doc xml:space="preserve">Create a new element of the type defined by the given element factory.
- If name is %NULL, then the element will receive a guaranteed unique name,
- consisting of the element factory name and a number.
- If name is given, it will be given the name supplied.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">new #GstElement or %NULL
- if unable to create element</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="factoryname" transfer-ownership="none">
- <doc xml:space="preserve">a named factory to instantiate</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">name of new element, or %NULL to automatically create
- a unique name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <method name="can_sink_all_caps"
- c:identifier="gst_element_factory_can_sink_all_caps">
- <doc xml:space="preserve">Checks if the factory can sink all possible capabilities.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the caps are fully compatible.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">factory to query</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </instance-parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the caps to check</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="can_sink_any_caps"
- c:identifier="gst_element_factory_can_sink_any_caps">
- <doc xml:space="preserve">Checks if the factory can sink any possible capability.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the caps have a common subset.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">factory to query</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </instance-parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the caps to check</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="can_src_all_caps"
- c:identifier="gst_element_factory_can_src_all_caps">
- <doc xml:space="preserve">Checks if the factory can src all possible capabilities.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the caps are fully compatible.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">factory to query</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </instance-parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the caps to check</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="can_src_any_caps"
- c:identifier="gst_element_factory_can_src_any_caps">
- <doc xml:space="preserve">Checks if the factory can src any possible capability.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the caps have a common subset.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">factory to query</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </instance-parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the caps to check</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="create" c:identifier="gst_element_factory_create">
- <doc xml:space="preserve">Create a new element of the type defined by the given elementfactory.
- It will be given the name supplied, since all elements require a name as
- their first argument.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">new #GstElement or %NULL
- if the element couldn't be created</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">factory to instantiate</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </instance-parameter>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">name of new element, or %NULL to automatically create
- a unique name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_element_type"
- c:identifier="gst_element_factory_get_element_type">
- <doc xml:space="preserve">Get the #GType for elements managed by this factory. The type can
- only be retrieved if the element factory is loaded, which can be
- assured with gst_plugin_feature_load().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GType for elements managed by this factory or 0 if
- the factory is not loaded.</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">factory to get managed #GType from</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_metadata"
- c:identifier="gst_element_factory_get_metadata">
- <doc xml:space="preserve">Get the metadata on @factory with @key.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the metadata with @key on @factory or %NULL
- when there was no metadata with the given @key.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElementFactory</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">a key</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_metadata_keys"
- c:identifier="gst_element_factory_get_metadata_keys">
- <doc xml:space="preserve">Get the available keys for the metadata on @factory.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">
- a %NULL-terminated array of key strings, or %NULL when there is no
- metadata. Free with g_strfreev() when no longer needed.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElementFactory</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_num_pad_templates"
- c:identifier="gst_element_factory_get_num_pad_templates">
- <doc xml:space="preserve">Gets the number of pad_templates in this factory.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of pad_templates</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElementFactory</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_static_pad_templates"
- c:identifier="gst_element_factory_get_static_pad_templates">
- <doc xml:space="preserve">Gets the #GList of #GstStaticPadTemplate for this factory.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the
- static pad templates</doc>
- <type name="GLib.List" c:type="const GList*">
- <type name="StaticPadTemplate"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElementFactory</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_uri_protocols"
- c:identifier="gst_element_factory_get_uri_protocols">
- <doc xml:space="preserve">Gets a %NULL-terminated array of protocols this element supports or %NULL if
- no protocols are supported. You may not change the contents of the returned
- array, as it is still owned by the element factory. Use g_strdupv() to
- make a copy of the protocol string array if you need to.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the supported protocols
- or %NULL</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElementFactory</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_uri_type"
- c:identifier="gst_element_factory_get_uri_type">
- <doc xml:space="preserve">Gets the type of URIs the element supports or #GST_URI_UNKNOWN if none.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">type of URIs this element supports</doc>
- <type name="URIType" c:type="GstURIType"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElementFactory</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_interface"
- c:identifier="gst_element_factory_has_interface">
- <doc xml:space="preserve">Check if @factory implements the interface with name @interfacename.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE when @factory implement the interface.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElementFactory</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </instance-parameter>
- <parameter name="interfacename" transfer-ownership="none">
- <doc xml:space="preserve">an interface name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="list_is_type"
- c:identifier="gst_element_factory_list_is_type">
- <doc xml:space="preserve">Check if @factory is of the given types.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @factory is of @type.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElementFactory</doc>
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </instance-parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElementFactoryListType</doc>
- <type name="ElementFactoryListType"
- c:type="GstElementFactoryListType"/>
- </parameter>
- </parameters>
- </method>
- </class>
- <record name="ElementFactoryClass"
- c:type="GstElementFactoryClass"
- disguised="1"
- glib:is-gtype-struct-for="ElementFactory">
- </record>
- <bitfield name="ElementFlags"
- glib:type-name="GstElementFlags"
- glib:get-type="gst_element_flags_get_type"
- c:type="GstElementFlags">
- <doc xml:space="preserve">The standard flags that an element may have.</doc>
- <member name="locked_state"
- value="16"
- c:identifier="GST_ELEMENT_FLAG_LOCKED_STATE"
- glib:nick="locked-state">
- <doc xml:space="preserve">ignore state changes from parent</doc>
- </member>
- <member name="sink"
- value="32"
- c:identifier="GST_ELEMENT_FLAG_SINK"
- glib:nick="sink">
- <doc xml:space="preserve">the element is a sink</doc>
- </member>
- <member name="source"
- value="64"
- c:identifier="GST_ELEMENT_FLAG_SOURCE"
- glib:nick="source">
- <doc xml:space="preserve">the element is a source.</doc>
- </member>
- <member name="provide_clock"
- value="128"
- c:identifier="GST_ELEMENT_FLAG_PROVIDE_CLOCK"
- glib:nick="provide-clock">
- <doc xml:space="preserve">the element can provide a clock</doc>
- </member>
- <member name="require_clock"
- value="256"
- c:identifier="GST_ELEMENT_FLAG_REQUIRE_CLOCK"
- glib:nick="require-clock">
- <doc xml:space="preserve">the element requires a clock</doc>
- </member>
- <member name="indexable"
- value="512"
- c:identifier="GST_ELEMENT_FLAG_INDEXABLE"
- glib:nick="indexable">
- <doc xml:space="preserve">the element can use an index</doc>
- </member>
- <member name="last"
- value="16384"
- c:identifier="GST_ELEMENT_FLAG_LAST"
- glib:nick="last">
- <doc xml:space="preserve">offset to define more flags</doc>
- </member>
- </bitfield>
- <record name="Event"
- c:type="GstEvent"
- glib:type-name="GstEvent"
- glib:get-type="gst_event_get_type"
- c:symbol-prefix="event">
- <doc xml:space="preserve">The event class provides factory methods to construct events for sending
- and functions to query (parse) received events.
- Events are usually created with gst_event_new_*() which takes event-type
- specific parameters as arguments.
- To send an event application will usually use gst_element_send_event() and
- elements will use gst_pad_send_event() or gst_pad_push_event().
- The event should be unreffed with gst_event_unref() if it has not been sent.
- Events that have been received can be parsed with their respective
- gst_event_parse_*() functions. It is valid to pass %NULL for unwanted details.
- Events are passed between elements in parallel to the data stream. Some events
- are serialized with buffers, others are not. Some events only travel downstream,
- others only upstream. Some events can travel both upstream and downstream.
- The events are used to signal special conditions in the datastream such as
- EOS (end of stream) or the start of a new stream-segment.
- Events are also used to flush the pipeline of any pending data.
- Most of the event API is used inside plugins. Applications usually only
- construct and use seek events.
- To do that gst_event_new_seek() is used to create a seek event. It takes
- the needed parameters to specify seeking time and mode.
- |[<!-- language="C" -->
- GstEvent *event;
- gboolean result;
- ...
- // construct a seek event to play the media from second 2 to 5, flush
- // the pipeline to decrease latency.
- event = gst_event_new_seek (1.0,
- GST_FORMAT_TIME,
- GST_SEEK_FLAG_FLUSH,
- GST_SEEK_TYPE_SET, 2 * GST_SECOND,
- GST_SEEK_TYPE_SET, 5 * GST_SECOND);
- ...
- result = gst_element_send_event (pipeline, event);
- if (!result)
- g_warning ("seek failed");
- ...
- ]|</doc>
- <field name="mini_object" writable="1">
- <doc xml:space="preserve">the parent structure</doc>
- <type name="MiniObject" c:type="GstMiniObject"/>
- </field>
- <field name="type" writable="1">
- <doc xml:space="preserve">the #GstEventType of the event</doc>
- <type name="EventType" c:type="GstEventType"/>
- </field>
- <field name="timestamp" writable="1">
- <doc xml:space="preserve">the timestamp of the event</doc>
- <type name="guint64" c:type="guint64"/>
- </field>
- <field name="seqnum" writable="1">
- <doc xml:space="preserve">the sequence number of the event</doc>
- <type name="guint32" c:type="guint32"/>
- </field>
- <constructor name="new_buffer_size"
- c:identifier="gst_event_new_buffer_size">
- <doc xml:space="preserve">Create a new buffersize event. The event is sent downstream and notifies
- elements that they should provide a buffer of the specified dimensions.
- When the @async flag is set, a thread boundary is preferred.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstEvent</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">buffer format</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="minsize" transfer-ownership="none">
- <doc xml:space="preserve">minimum buffer size</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="maxsize" transfer-ownership="none">
- <doc xml:space="preserve">maximum buffer size</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="async" transfer-ownership="none">
- <doc xml:space="preserve">thread behavior</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_caps" c:identifier="gst_event_new_caps">
- <doc xml:space="preserve">Create a new CAPS event for @caps. The caps event can only travel downstream
- synchronized with the buffer flow and contains the format of the buffers
- that will follow after the event.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new CAPS event.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_custom" c:identifier="gst_event_new_custom">
- <doc xml:space="preserve">Create a new custom-typed event. This can be used for anything not
- handled by other event-specific functions to pass an event to another
- element.
- Make sure to allocate an event type with the #GST_EVENT_MAKE_TYPE macro,
- assigning a free number and filling in the correct direction and
- serialization flags.
- New custom events can also be created by subclassing the event type if
- needed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new custom event.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">The type of the new event</doc>
- <type name="EventType" c:type="GstEventType"/>
- </parameter>
- <parameter name="structure" transfer-ownership="full">
- <doc xml:space="preserve">the structure for the event. The event will
- take ownership of the structure.</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_eos" c:identifier="gst_event_new_eos">
- <doc xml:space="preserve">Create a new EOS event. The eos event can only travel downstream
- synchronized with the buffer flow. Elements that receive the EOS
- event on a pad can return #GST_FLOW_EOS as a #GstFlowReturn
- when data after the EOS event arrives.
- The EOS event will travel down to the sink elements in the pipeline
- which will then post the #GST_MESSAGE_EOS on the bus after they have
- finished playing any buffered data.
- When all sinks have posted an EOS message, an EOS message is
- forwarded to the application.
- The EOS event itself will not cause any state transitions of the pipeline.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new EOS event.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- </constructor>
- <constructor name="new_flush_start"
- c:identifier="gst_event_new_flush_start">
- <doc xml:space="preserve">Allocate a new flush start event. The flush start event can be sent
- upstream and downstream and travels out-of-bounds with the dataflow.
- It marks pads as being flushing and will make them return
- #GST_FLOW_FLUSHING when used for data flow with gst_pad_push(),
- gst_pad_chain(), gst_pad_get_range() and gst_pad_pull_range().
- Any event (except a #GST_EVENT_FLUSH_STOP) received
- on a flushing pad will return %FALSE immediately.
- Elements should unlock any blocking functions and exit their streaming
- functions as fast as possible when this event is received.
- This event is typically generated after a seek to flush out all queued data
- in the pipeline so that the new media is played as soon as possible.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new flush start event.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- </constructor>
- <constructor name="new_flush_stop"
- c:identifier="gst_event_new_flush_stop">
- <doc xml:space="preserve">Allocate a new flush stop event. The flush stop event can be sent
- upstream and downstream and travels serialized with the dataflow.
- It is typically sent after sending a FLUSH_START event to make the
- pads accept data again.
- Elements can process this event synchronized with the dataflow since
- the preceding FLUSH_START event stopped the dataflow.
- This event is typically generated to complete a seek and to resume
- dataflow.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new flush stop event.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="reset_time" transfer-ownership="none">
- <doc xml:space="preserve">if time should be reset</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_gap" c:identifier="gst_event_new_gap">
- <doc xml:space="preserve">Create a new GAP event. A gap event can be thought of as conceptually
- equivalent to a buffer to signal that there is no data for a certain
- amount of time. This is useful to signal a gap to downstream elements
- which may wait for data, such as muxers or mixers or overlays, especially
- for sparse streams such as subtitle streams.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new GAP event.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the start time (pts) of the gap</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="duration" transfer-ownership="none">
- <doc xml:space="preserve">the duration of the gap</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_latency" c:identifier="gst_event_new_latency">
- <doc xml:space="preserve">Create a new latency event. The event is sent upstream from the sinks and
- notifies elements that they should add an additional @latency to the
- running time before synchronising against the clock.
- The latency is mostly used in live sinks and is always expressed in
- the time format.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstEvent</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="latency" transfer-ownership="none">
- <doc xml:space="preserve">the new latency value</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_navigation"
- c:identifier="gst_event_new_navigation">
- <doc xml:space="preserve">Create a new navigation event from the given description.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstEvent</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="structure" transfer-ownership="full">
- <doc xml:space="preserve">description of the event. The event will take
- ownership of the structure.</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_protection"
- c:identifier="gst_event_new_protection"
- version="1.6">
- <doc xml:space="preserve">Creates a new event containing information specific to a particular
- protection system (uniquely identified by @system_id), by which that
- protection system can acquire key(s) to decrypt a protected stream.
- In order for a decryption element to decrypt media
- protected using a specific system, it first needs all the
- protection system specific information necessary to acquire the decryption
- key(s) for that stream. The functions defined here enable this information
- to be passed in events from elements that extract it
- (e.g., ISOBMFF demuxers, MPEG DASH demuxers) to protection decrypter
- elements that use it.
- Events containing protection system specific information are created using
- #gst_event_new_protection, and they can be parsed by downstream elements
- using #gst_event_parse_protection.
- In Common Encryption, protection system specific information may be located
- within ISOBMFF files, both in movie (moov) boxes and movie fragment (moof)
- boxes; it may also be contained in ContentProtection elements within MPEG
- DASH MPDs. The events created by #gst_event_new_protection contain data
- identifying from which of these locations the encapsulated protection system
- specific information originated. This origin information is required as
- some protection systems use different encodings depending upon where the
- information originates.
- The events returned by gst_event_new_protection() are implemented
- in such a way as to ensure that the most recently-pushed protection info
- event of a particular @origin and @system_id will
- be stuck to the output pad of the sending element.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GST_EVENT_PROTECTION event, if successful; %NULL
- if unsuccessful.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="system_id" transfer-ownership="none">
- <doc xml:space="preserve">a string holding a UUID that uniquely
- identifies a protection system.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer holding protection system specific
- information. The reference count of the buffer will be incremented by one.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="origin" transfer-ownership="none">
- <doc xml:space="preserve">a string indicating where the protection
- information carried in the event was extracted from. The allowed values
- of this string will depend upon the protection scheme.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_qos" c:identifier="gst_event_new_qos">
- <doc xml:space="preserve">Allocate a new qos event with the given values.
- The QOS event is generated in an element that wants an upstream
- element to either reduce or increase its rate because of
- high/low CPU load or other resource usage such as network performance or
- throttling. Typically sinks generate these events for each buffer
- they receive.
- @type indicates the reason for the QoS event. #GST_QOS_TYPE_OVERFLOW is
- used when a buffer arrived in time or when the sink cannot keep up with
- the upstream datarate. #GST_QOS_TYPE_UNDERFLOW is when the sink is not
- receiving buffers fast enough and thus has to drop late buffers.
- #GST_QOS_TYPE_THROTTLE is used when the datarate is artificially limited
- by the application, for example to reduce power consumption.
- @proportion indicates the real-time performance of the streaming in the
- element that generated the QoS event (usually the sink). The value is
- generally computed based on more long term statistics about the streams
- timestamps compared to the clock.
- A value < 1.0 indicates that the upstream element is producing data faster
- than real-time. A value > 1.0 indicates that the upstream element is not
- producing data fast enough. 1.0 is the ideal @proportion value. The
- proportion value can safely be used to lower or increase the quality of
- the element.
- @diff is the difference against the clock in running time of the last
- buffer that caused the element to generate the QOS event. A negative value
- means that the buffer with @timestamp arrived in time. A positive value
- indicates how late the buffer with @timestamp was. When throttling is
- enabled, @diff will be set to the requested throttling interval.
- @timestamp is the timestamp of the last buffer that cause the element
- to generate the QOS event. It is expressed in running time and thus an ever
- increasing value.
- The upstream element can use the @diff and @timestamp values to decide
- whether to process more buffers. For positive @diff, all buffers with
- timestamp <= @timestamp + @diff will certainly arrive late in the sink
- as well. A (negative) @diff value so that @timestamp + @diff would yield a
- result smaller than 0 is not allowed.
- The application can use general event probes to intercept the QoS
- event and implement custom application specific QoS handling.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new QOS event.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the QoS type</doc>
- <type name="QOSType" c:type="GstQOSType"/>
- </parameter>
- <parameter name="proportion" transfer-ownership="none">
- <doc xml:space="preserve">the proportion of the qos message</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- <parameter name="diff" transfer-ownership="none">
- <doc xml:space="preserve">The time difference of the last Clock sync</doc>
- <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
- </parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">The timestamp of the buffer</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_reconfigure"
- c:identifier="gst_event_new_reconfigure">
- <doc xml:space="preserve">Create a new reconfigure event. The purpose of the reconfigure event is
- to travel upstream and make elements renegotiate their caps or reconfigure
- their buffer pools. This is useful when changing properties on elements
- or changing the topology of the pipeline.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstEvent</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- </constructor>
- <constructor name="new_seek" c:identifier="gst_event_new_seek">
- <doc xml:space="preserve">Allocate a new seek event with the given parameters.
- The seek event configures playback of the pipeline between @start to @stop
- at the speed given in @rate, also called a playback segment.
- The @start and @stop values are expressed in @format.
- A @rate of 1.0 means normal playback rate, 2.0 means double speed.
- Negatives values means backwards playback. A value of 0.0 for the
- rate is not allowed and should be accomplished instead by PAUSING the
- pipeline.
- A pipeline has a default playback segment configured with a start
- position of 0, a stop position of -1 and a rate of 1.0. The currently
- configured playback segment can be queried with #GST_QUERY_SEGMENT.
- @start_type and @stop_type specify how to adjust the currently configured
- start and stop fields in playback segment. Adjustments can be made relative
- or absolute to the last configured values. A type of #GST_SEEK_TYPE_NONE
- means that the position should not be updated.
- When the rate is positive and @start has been updated, playback will start
- from the newly configured start position.
- For negative rates, playback will start from the newly configured stop
- position (if any). If the stop position is updated, it must be different from
- -1 (#GST_CLOCK_TIME_NONE) for negative rates.
- It is not possible to seek relative to the current playback position, to do
- this, PAUSE the pipeline, query the current playback position with
- #GST_QUERY_POSITION and update the playback segment current position with a
- #GST_SEEK_TYPE_SET to the desired position.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new seek event.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="rate" transfer-ownership="none">
- <doc xml:space="preserve">The new playback rate</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">The format of the seek values</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">The optional seek flags</doc>
- <type name="SeekFlags" c:type="GstSeekFlags"/>
- </parameter>
- <parameter name="start_type" transfer-ownership="none">
- <doc xml:space="preserve">The type and flags for the new start position</doc>
- <type name="SeekType" c:type="GstSeekType"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <doc xml:space="preserve">The value of the new start position</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="stop_type" transfer-ownership="none">
- <doc xml:space="preserve">The type and flags for the new stop position</doc>
- <type name="SeekType" c:type="GstSeekType"/>
- </parameter>
- <parameter name="stop" transfer-ownership="none">
- <doc xml:space="preserve">The value of the new stop position</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_segment" c:identifier="gst_event_new_segment">
- <doc xml:space="preserve">Create a new SEGMENT event for @segment. The segment event can only travel
- downstream synchronized with the buffer flow and contains timing information
- and playback properties for the buffers that will follow.
- The segment event marks the range of buffers to be processed. All
- data not within the segment range is not to be processed. This can be
- used intelligently by plugins to apply more efficient methods of skipping
- unneeded data. The valid range is expressed with the @start and @stop
- values.
- The time value of the segment is used in conjunction with the start
- value to convert the buffer timestamps into the stream time. This is
- usually done in sinks to report the current stream_time.
- @time represents the stream_time of a buffer carrying a timestamp of
- @start. @time cannot be -1.
- @start cannot be -1, @stop can be -1. If there
- is a valid @stop given, it must be greater or equal the @start, including
- when the indicated playback @rate is < 0.
- The @applied_rate value provides information about any rate adjustment that
- has already been made to the timestamps and content on the buffers of the
- stream. (@rate * @applied_rate) should always equal the rate that has been
- requested for playback. For example, if an element has an input segment
- with intended playback @rate of 2.0 and applied_rate of 1.0, it can adjust
- incoming timestamps and buffer content by half and output a segment event
- with @rate of 1.0 and @applied_rate of 2.0
- After a segment event, the buffer stream time is calculated with:
- time + (TIMESTAMP(buf) - start) * ABS (rate * applied_rate)</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new SEGMENT event.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment</doc>
- <type name="Segment" c:type="const GstSegment*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_segment_done"
- c:identifier="gst_event_new_segment_done">
- <doc xml:space="preserve">Create a new segment-done event. This event is sent by elements that
- finish playback of a segment as a result of a segment seek.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstEvent</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">The format of the position being done</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">The position of the segment being done</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_sink_message"
- c:identifier="gst_event_new_sink_message">
- <doc xml:space="preserve">Create a new sink-message event. The purpose of the sink-message event is
- to instruct a sink to post the message contained in the event synchronized
- with the stream.
- @name is used to store multiple sticky events on one pad.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstEvent</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">a name for the event</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="msg" transfer-ownership="none">
- <doc xml:space="preserve">the #GstMessage to be posted</doc>
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_step" c:identifier="gst_event_new_step">
- <doc xml:space="preserve">Create a new step event. The purpose of the step event is to instruct a sink
- to skip @amount (expressed in @format) of media. It can be used to implement
- stepping through the video frame by frame or for doing fast trick modes.
- A rate of <= 0.0 is not allowed. Pause the pipeline, for the effect of rate
- = 0.0 or first reverse the direction of playback using a seek event to get
- the same effect as rate < 0.0.
- The @flush flag will clear any pending data in the pipeline before starting
- the step operation.
- The @intermediate flag instructs the pipeline that this step operation is
- part of a larger step operation.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstEvent</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of @amount</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="amount" transfer-ownership="none">
- <doc xml:space="preserve">the amount of data to step</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="rate" transfer-ownership="none">
- <doc xml:space="preserve">the step rate</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- <parameter name="flush" transfer-ownership="none">
- <doc xml:space="preserve">flushing steps</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="intermediate" transfer-ownership="none">
- <doc xml:space="preserve">intermediate steps</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_stream_start"
- c:identifier="gst_event_new_stream_start">
- <doc xml:space="preserve">Create a new STREAM_START event. The stream start event can only
- travel downstream synchronized with the buffer flow. It is expected
- to be the first event that is sent for a new stream.
- Source elements, demuxers and other elements that create new streams
- are supposed to send this event as the first event of a new stream. It
- should not be sent after a flushing seek or in similar situations
- and is used to mark the beginning of a new logical stream. Elements
- combining multiple streams must ensure that this event is only forwarded
- downstream once and not for every single input stream.
- The @stream_id should be a unique string that consists of the upstream
- stream-id, / as separator and a unique stream-id for this specific
- stream. A new stream-id should only be created for a stream if the upstream
- stream is split into (potentially) multiple new streams, e.g. in a demuxer,
- but not for every single element in the pipeline.
- gst_pad_create_stream_id() or gst_pad_create_stream_id_printf() can be
- used to create a stream-id. There are no particular semantics for the
- stream-id, though it should be deterministic (to support stream matching)
- and it might be used to order streams (besides any information conveyed by
- stream flags).</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new STREAM_START event.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="stream_id" transfer-ownership="none">
- <doc xml:space="preserve">Identifier for this stream</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_tag" c:identifier="gst_event_new_tag">
- <doc xml:space="preserve">Generates a metadata tag event from the given @taglist.
- The scope of the taglist specifies if the taglist applies to the
- complete medium or only to this specific stream. As the tag event
- is a sticky event, elements should merge tags received from
- upstream with a given scope with their own tags with the same
- scope and create a new tag event from it.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstEvent</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="taglist" transfer-ownership="full">
- <doc xml:space="preserve">metadata list. The event will take ownership
- of the taglist.</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_toc" c:identifier="gst_event_new_toc">
- <doc xml:space="preserve">Generate a TOC event from the given @toc. The purpose of the TOC event is to
- inform elements that some kind of the TOC was found.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstEvent.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="toc" transfer-ownership="none">
- <doc xml:space="preserve">#GstToc structure.</doc>
- <type name="Toc" c:type="GstToc*"/>
- </parameter>
- <parameter name="updated" transfer-ownership="none">
- <doc xml:space="preserve">whether @toc was updated or not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_toc_select"
- c:identifier="gst_event_new_toc_select">
- <doc xml:space="preserve">Generate a TOC select event with the given @uid. The purpose of the
- TOC select event is to start playback based on the TOC's entry with the
- given @uid.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstEvent.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="uid" transfer-ownership="none">
- <doc xml:space="preserve">UID in the TOC to start playback from.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="copy_segment" c:identifier="gst_event_copy_segment">
- <doc xml:space="preserve">Parses a segment @event and copies the #GstSegment into the location
- given by @segment.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">The event to parse</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a pointer to a #GstSegment</doc>
- <type name="Segment" c:type="GstSegment*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_running_time_offset"
- c:identifier="gst_event_get_running_time_offset"
- version="1.4">
- <doc xml:space="preserve">Retrieve the accumulated running time offset of the event.
- Events passing through #GstPads that have a running time
- offset set via gst_pad_set_offset() will get their offset
- adjusted according to the pad's offset.
- If the event contains any information that related to the
- running time, this information will need to be updated
- before usage with this offset.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The event's running time offset
- MT safe.</doc>
- <type name="gint64" c:type="gint64"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_seqnum" c:identifier="gst_event_get_seqnum">
- <doc xml:space="preserve">Retrieve the sequence number of a event.
- Events have ever-incrementing sequence numbers, which may also be set
- explicitly via gst_event_set_seqnum(). Sequence numbers are typically used to
- indicate that a event corresponds to some other set of events or messages,
- for example an EOS event corresponding to a SEEK event. It is considered good
- practice to make this correspondence when possible, though it is not
- required.
- Note that events and messages share the same sequence number incrementor;
- two events or messages will never have the same sequence number unless
- that correspondence was made explicitly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The event's sequence number.
- MT safe.</doc>
- <type name="guint32" c:type="guint32"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_structure" c:identifier="gst_event_get_structure">
- <doc xml:space="preserve">Access the structure of the event.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The structure of the event. The structure is still
- owned by the event, which means that you should not free it and
- that the pointer becomes invalid when you free the event.
- MT safe.</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">The #GstEvent.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_name" c:identifier="gst_event_has_name">
- <doc xml:space="preserve">Checks if @event has the given @name. This function is usually used to
- check the name of a custom event.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @name matches the name of the event structure.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">The #GstEvent.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name to check</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_buffer_size"
- c:identifier="gst_event_parse_buffer_size">
- <doc xml:space="preserve">Get the format, minsize, maxsize and async-flag in the buffersize event.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">The event to query</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to store the format in</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="minsize"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to store the minsize in</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- <parameter name="maxsize"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to store the maxsize in</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- <parameter name="async"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to store the async-flag in</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_caps" c:identifier="gst_event_parse_caps">
- <doc xml:space="preserve">Get the caps from @event. The caps remains valid as long as @event remains
- valid.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">The event to parse</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="caps"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none">
- <doc xml:space="preserve">A pointer to the caps</doc>
- <type name="Caps" c:type="GstCaps**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_flush_stop"
- c:identifier="gst_event_parse_flush_stop">
- <doc xml:space="preserve">Parse the FLUSH_STOP event and retrieve the @reset_time member.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">The event to parse</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="reset_time"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">if time should be reset</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_gap" c:identifier="gst_event_parse_gap">
- <doc xml:space="preserve">Extract timestamp and duration from a new GAP event.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">a #GstEvent of type #GST_EVENT_GAP</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="timestamp"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">location where to store the
- start time (pts) of the gap, or %NULL</doc>
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="duration"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">location where to store the duration of
- the gap, or %NULL</doc>
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_group_id"
- c:identifier="gst_event_parse_group_id"
- version="1.2">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a group id was set on the event and could be parsed,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">a stream-start event</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="group_id"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">address of variable where to store the group id</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_latency" c:identifier="gst_event_parse_latency">
- <doc xml:space="preserve">Get the latency in the latency event.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">The event to query</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="latency"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to store the latency in.</doc>
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_protection"
- c:identifier="gst_event_parse_protection"
- version="1.6">
- <doc xml:space="preserve">Parses an event containing protection system specific information and stores
- the results in @system_id, @data and @origin. The data stored in @system_id,
- @origin and @data are valid until @event is released.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">a #GST_EVENT_PROTECTION event.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="system_id"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to store the UUID
- string uniquely identifying a content protection system.</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- <parameter name="data"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to store a #GstBuffer
- holding protection system specific information.</doc>
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- <parameter name="origin"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to store a value that
- indicates where the protection information carried by @event was extracted
- from.</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_qos" c:identifier="gst_event_parse_qos">
- <doc xml:space="preserve">Get the type, proportion, diff and timestamp in the qos event. See
- gst_event_new_qos() for more information about the different QoS values.
- @timestamp will be adjusted for any pad offsets of pads it was passing through.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">The event to query</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to store the QoS type in</doc>
- <type name="QOSType" c:type="GstQOSType*"/>
- </parameter>
- <parameter name="proportion"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to store the proportion in</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- <parameter name="diff"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to store the diff in</doc>
- <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
- </parameter>
- <parameter name="timestamp"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to store the timestamp in</doc>
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_seek" c:identifier="gst_event_parse_seek">
- <doc xml:space="preserve">Parses a seek @event and stores the results in the given result locations.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">a seek event</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="rate"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">result location for the rate</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- <parameter name="format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">result location for the stream format</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="flags"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">result location for the #GstSeekFlags</doc>
- <type name="SeekFlags" c:type="GstSeekFlags*"/>
- </parameter>
- <parameter name="start_type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">result location for the #GstSeekType of the start position</doc>
- <type name="SeekType" c:type="GstSeekType*"/>
- </parameter>
- <parameter name="start"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">result location for the start position expressed in @format</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- <parameter name="stop_type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">result location for the #GstSeekType of the stop position</doc>
- <type name="SeekType" c:type="GstSeekType*"/>
- </parameter>
- <parameter name="stop"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">result location for the stop position expressed in @format</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_segment" c:identifier="gst_event_parse_segment">
- <doc xml:space="preserve">Parses a segment @event and stores the result in the given @segment location.
- @segment remains valid only until the @event is freed. Don't modify the segment
- and make a copy if you want to modify it or store it for later use.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">The event to parse</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="segment"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none">
- <doc xml:space="preserve">a pointer to a #GstSegment</doc>
- <type name="Segment" c:type="const GstSegment**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_segment_done"
- c:identifier="gst_event_parse_segment_done">
- <doc xml:space="preserve">Extracts the position and format from the segment done message.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstEvent of type GST_EVENT_SEGMENT_DONE.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Result location for the format, or %NULL</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="position"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Result location for the position, or %NULL</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_sink_message"
- c:identifier="gst_event_parse_sink_message">
- <doc xml:space="preserve">Parse the sink-message event. Unref @msg after usage.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">The event to query</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="msg"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to store the #GstMessage in.</doc>
- <type name="Message" c:type="GstMessage**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_step" c:identifier="gst_event_parse_step">
- <doc xml:space="preserve">Parse the step event.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">The event to query</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to store the format in</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="amount"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to store the amount in</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="rate"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to store the rate in</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- <parameter name="flush"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to store the flush boolean in</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="intermediate"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to store the intermediate
- boolean in</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_stream_flags"
- c:identifier="gst_event_parse_stream_flags"
- version="1.2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">a stream-start event</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="flags"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">address of variable where to store the stream flags</doc>
- <type name="StreamFlags" c:type="GstStreamFlags*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_stream_start"
- c:identifier="gst_event_parse_stream_start">
- <doc xml:space="preserve">Parse a stream-id @event and store the result in the given @stream_id
- location. The string stored in @stream_id must not be modified and will
- remain valid only until @event gets freed. Make a copy if you want to
- modify it or store it for later use.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">a stream-start event.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="stream_id"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none">
- <doc xml:space="preserve">pointer to store the stream-id</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_tag" c:identifier="gst_event_parse_tag">
- <doc xml:space="preserve">Parses a tag @event and stores the results in the given @taglist location.
- No reference to the taglist will be returned, it remains valid only until
- the @event is freed. Don't modify or free the taglist, make a copy if you
- want to modify it or store it for later use.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">a tag event</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="taglist"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none">
- <doc xml:space="preserve">pointer to metadata list</doc>
- <type name="TagList" c:type="GstTagList**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_toc" c:identifier="gst_event_parse_toc">
- <doc xml:space="preserve">Parse a TOC @event and store the results in the given @toc and @updated locations.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">a TOC event.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="toc"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">pointer to #GstToc structure.</doc>
- <type name="Toc" c:type="GstToc**"/>
- </parameter>
- <parameter name="updated"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">pointer to store TOC updated flag.</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_toc_select"
- c:identifier="gst_event_parse_toc_select">
- <doc xml:space="preserve">Parse a TOC select @event and store the results in the given @uid location.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">a TOC select event.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="uid"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">storage for the selection UID.</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_group_id"
- c:identifier="gst_event_set_group_id"
- version="1.2">
- <doc xml:space="preserve">All streams that have the same group id are supposed to be played
- together, i.e. all streams inside a container file should have the
- same group id but different stream ids. The group id should change
- each time the stream is started, resulting in different group ids
- each time a file is played for example.
- Use gst_util_group_id_next() to get a new group id.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">a stream-start event</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="group_id" transfer-ownership="none">
- <doc xml:space="preserve">the group id to set</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_running_time_offset"
- c:identifier="gst_event_set_running_time_offset"
- version="1.4">
- <doc xml:space="preserve">Set the running time offset of a event. See
- gst_event_get_running_time_offset() for more information.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">A the new running time offset</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_seqnum" c:identifier="gst_event_set_seqnum">
- <doc xml:space="preserve">Set the sequence number of a event.
- This function might be called by the creator of a event to indicate that the
- event relates to other events or messages. See gst_event_get_seqnum() for
- more information.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="seqnum" transfer-ownership="none">
- <doc xml:space="preserve">A sequence number.</doc>
- <type name="guint32" c:type="guint32"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_stream_flags"
- c:identifier="gst_event_set_stream_flags"
- version="1.2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">a stream-start event</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">the stream flags to set</doc>
- <type name="StreamFlags" c:type="GstStreamFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="writable_structure"
- c:identifier="gst_event_writable_structure">
- <doc xml:space="preserve">Get a writable version of the structure.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The structure of the event. The structure
- is still owned by the event, which means that you should not free
- it and that the pointer becomes invalid when you free the event.
- This function checks if @event is writable and will never return
- %NULL.
- MT safe.</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <instance-parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">The #GstEvent.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <enumeration name="EventType"
- glib:type-name="GstEventType"
- glib:get-type="gst_event_type_get_type"
- c:type="GstEventType">
- <doc xml:space="preserve">#GstEventType lists the standard event types that can be sent in a pipeline.
- The custom event types can be used for private messages between elements
- that can't be expressed using normal
- GStreamer buffer passing semantics. Custom events carry an arbitrary
- #GstStructure.
- Specific custom events are distinguished by the name of the structure.</doc>
- <member name="unknown"
- value="0"
- c:identifier="GST_EVENT_UNKNOWN"
- glib:nick="unknown">
- <doc xml:space="preserve">unknown event.</doc>
- </member>
- <member name="flush_start"
- value="2563"
- c:identifier="GST_EVENT_FLUSH_START"
- glib:nick="flush-start">
- <doc xml:space="preserve">Start a flush operation. This event clears all data
- from the pipeline and unblock all streaming threads.</doc>
- </member>
- <member name="flush_stop"
- value="5127"
- c:identifier="GST_EVENT_FLUSH_STOP"
- glib:nick="flush-stop">
- <doc xml:space="preserve">Stop a flush operation. This event resets the
- running-time of the pipeline.</doc>
- </member>
- <member name="stream_start"
- value="10254"
- c:identifier="GST_EVENT_STREAM_START"
- glib:nick="stream-start">
- <doc xml:space="preserve">Event to mark the start of a new stream. Sent before any
- other serialized event and only sent at the start of a new stream,
- not after flushing seeks.</doc>
- </member>
- <member name="caps"
- value="12814"
- c:identifier="GST_EVENT_CAPS"
- glib:nick="caps">
- <doc xml:space="preserve">#GstCaps event. Notify the pad of a new media type.</doc>
- </member>
- <member name="segment"
- value="17934"
- c:identifier="GST_EVENT_SEGMENT"
- glib:nick="segment">
- <doc xml:space="preserve">A new media segment follows in the dataflow. The
- segment events contains information for clipping buffers and
- converting buffer timestamps to running-time and
- stream-time.</doc>
- </member>
- <member name="tag"
- value="20510"
- c:identifier="GST_EVENT_TAG"
- glib:nick="tag">
- <doc xml:space="preserve">A new set of metadata tags has been found in the stream.</doc>
- </member>
- <member name="buffersize"
- value="23054"
- c:identifier="GST_EVENT_BUFFERSIZE"
- glib:nick="buffersize">
- <doc xml:space="preserve">Notification of buffering requirements. Currently not
- used yet.</doc>
- </member>
- <member name="sink_message"
- value="25630"
- c:identifier="GST_EVENT_SINK_MESSAGE"
- glib:nick="sink-message">
- <doc xml:space="preserve">An event that sinks turn into a message. Used to
- send messages that should be emitted in sync with
- rendering.</doc>
- </member>
- <member name="eos"
- value="28174"
- c:identifier="GST_EVENT_EOS"
- glib:nick="eos">
- <doc xml:space="preserve">End-Of-Stream. No more data is to be expected to follow
- without a SEGMENT event.</doc>
- </member>
- <member name="toc"
- value="30750"
- c:identifier="GST_EVENT_TOC"
- glib:nick="toc">
- <doc xml:space="preserve">An event which indicates that a new table of contents (TOC)
- was found or updated.</doc>
- </member>
- <member name="protection"
- value="33310"
- c:identifier="GST_EVENT_PROTECTION"
- glib:nick="protection">
- <doc xml:space="preserve">An event which indicates that new or updated
- encryption information has been found in the stream.</doc>
- </member>
- <member name="segment_done"
- value="38406"
- c:identifier="GST_EVENT_SEGMENT_DONE"
- glib:nick="segment-done">
- <doc xml:space="preserve">Marks the end of a segment playback.</doc>
- </member>
- <member name="gap"
- value="40966"
- c:identifier="GST_EVENT_GAP"
- glib:nick="gap">
- <doc xml:space="preserve">Marks a gap in the datastream.</doc>
- </member>
- <member name="qos"
- value="48641"
- c:identifier="GST_EVENT_QOS"
- glib:nick="qos">
- <doc xml:space="preserve">A quality message. Used to indicate to upstream elements
- that the downstream elements should adjust their processing
- rate.</doc>
- </member>
- <member name="seek"
- value="51201"
- c:identifier="GST_EVENT_SEEK"
- glib:nick="seek">
- <doc xml:space="preserve">A request for a new playback position and rate.</doc>
- </member>
- <member name="navigation"
- value="53761"
- c:identifier="GST_EVENT_NAVIGATION"
- glib:nick="navigation">
- <doc xml:space="preserve">Navigation events are usually used for communicating
- user requests, such as mouse or keyboard movements,
- to upstream elements.</doc>
- </member>
- <member name="latency"
- value="56321"
- c:identifier="GST_EVENT_LATENCY"
- glib:nick="latency">
- <doc xml:space="preserve">Notification of new latency adjustment. Sinks will use
- the latency information to adjust their synchronisation.</doc>
- </member>
- <member name="step"
- value="58881"
- c:identifier="GST_EVENT_STEP"
- glib:nick="step">
- <doc xml:space="preserve">A request for stepping through the media. Sinks will usually
- execute the step operation.</doc>
- </member>
- <member name="reconfigure"
- value="61441"
- c:identifier="GST_EVENT_RECONFIGURE"
- glib:nick="reconfigure">
- <doc xml:space="preserve">A request for upstream renegotiating caps and reconfiguring.</doc>
- </member>
- <member name="toc_select"
- value="64001"
- c:identifier="GST_EVENT_TOC_SELECT"
- glib:nick="toc-select">
- <doc xml:space="preserve">A request for a new playback position based on TOC
- entry's UID.</doc>
- </member>
- <member name="custom_upstream"
- value="69121"
- c:identifier="GST_EVENT_CUSTOM_UPSTREAM"
- glib:nick="custom-upstream">
- <doc xml:space="preserve">Upstream custom event</doc>
- </member>
- <member name="custom_downstream"
- value="71686"
- c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM"
- glib:nick="custom-downstream">
- <doc xml:space="preserve">Downstream custom event that travels in the
- data flow.</doc>
- </member>
- <member name="custom_downstream_oob"
- value="74242"
- c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM_OOB"
- glib:nick="custom-downstream-oob">
- <doc xml:space="preserve">Custom out-of-band downstream event.</doc>
- </member>
- <member name="custom_downstream_sticky"
- value="76830"
- c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM_STICKY"
- glib:nick="custom-downstream-sticky">
- <doc xml:space="preserve">Custom sticky downstream event.</doc>
- </member>
- <member name="custom_both"
- value="79367"
- c:identifier="GST_EVENT_CUSTOM_BOTH"
- glib:nick="custom-both">
- <doc xml:space="preserve">Custom upstream or downstream event.
- In-band when travelling downstream.</doc>
- </member>
- <member name="custom_both_oob"
- value="81923"
- c:identifier="GST_EVENT_CUSTOM_BOTH_OOB"
- glib:nick="custom-both-oob">
- <doc xml:space="preserve">Custom upstream or downstream out-of-band event.</doc>
- </member>
- <function name="get_flags" c:identifier="gst_event_type_get_flags">
- <doc xml:space="preserve">Gets the #GstEventTypeFlags associated with @type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstEventTypeFlags.</doc>
- <type name="EventTypeFlags" c:type="GstEventTypeFlags"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GstEventType</doc>
- <type name="EventType" c:type="GstEventType"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_name" c:identifier="gst_event_type_get_name">
- <doc xml:space="preserve">Get a printable name for the given event type. Do not modify or free.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a reference to the static name of the event.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the event type</doc>
- <type name="EventType" c:type="GstEventType"/>
- </parameter>
- </parameters>
- </function>
- <function name="to_quark" c:identifier="gst_event_type_to_quark">
- <doc xml:space="preserve">Get the unique quark for the given event type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the quark associated with the event type</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the event type</doc>
- <type name="EventType" c:type="GstEventType"/>
- </parameter>
- </parameters>
- </function>
- </enumeration>
- <bitfield name="EventTypeFlags"
- glib:type-name="GstEventTypeFlags"
- glib:get-type="gst_event_type_flags_get_type"
- c:type="GstEventTypeFlags">
- <doc xml:space="preserve">#GstEventTypeFlags indicate the aspects of the different #GstEventType
- values. You can get the type flags of a #GstEventType with the
- gst_event_type_get_flags() function.</doc>
- <member name="upstream"
- value="1"
- c:identifier="GST_EVENT_TYPE_UPSTREAM"
- glib:nick="upstream">
- <doc xml:space="preserve">Set if the event can travel upstream.</doc>
- </member>
- <member name="downstream"
- value="2"
- c:identifier="GST_EVENT_TYPE_DOWNSTREAM"
- glib:nick="downstream">
- <doc xml:space="preserve">Set if the event can travel downstream.</doc>
- </member>
- <member name="serialized"
- value="4"
- c:identifier="GST_EVENT_TYPE_SERIALIZED"
- glib:nick="serialized">
- <doc xml:space="preserve">Set if the event should be serialized with data
- flow.</doc>
- </member>
- <member name="sticky"
- value="8"
- c:identifier="GST_EVENT_TYPE_STICKY"
- glib:nick="sticky">
- <doc xml:space="preserve">Set if the event is sticky on the pads.</doc>
- </member>
- <member name="sticky_multi"
- value="16"
- c:identifier="GST_EVENT_TYPE_STICKY_MULTI"
- glib:nick="sticky-multi">
- <doc xml:space="preserve">Multiple sticky events can be on a pad, each
- identified by the event name.</doc>
- </member>
- </bitfield>
- <constant name="FLAG_SET_MASK_EXACT"
- value="-1"
- c:type="GST_FLAG_SET_MASK_EXACT">
- <type name="guint" c:type="guint"/>
- </constant>
- <constant name="FORMAT_PERCENT_MAX"
- value="1000000"
- c:type="GST_FORMAT_PERCENT_MAX">
- <doc xml:space="preserve">The PERCENT format is between 0 and this value</doc>
- <type name="gint64" c:type="gint64"/>
- </constant>
- <constant name="FORMAT_PERCENT_SCALE"
- value="10000"
- c:type="GST_FORMAT_PERCENT_SCALE">
- <doc xml:space="preserve">The value used to scale down the reported PERCENT format value to
- its real value.</doc>
- <type name="gint64" c:type="gint64"/>
- </constant>
- <constant name="FOURCC_FORMAT" value="c%c%c%c" c:type="GST_FOURCC_FORMAT">
- <doc xml:space="preserve">Can be used together with #GST_FOURCC_ARGS to properly output a
- #guint32 fourcc value in a printf()-style text message.
- <informalexample>
- <programlisting>
- printf ("fourcc: %" GST_FOURCC_FORMAT "\n", GST_FOURCC_ARGS (fcc));
- </programlisting>
- </informalexample></doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <class name="FlagSet"
- c:symbol-prefix="flagset"
- glib:type-name="GstFlagSet"
- glib:get-type="gst_flagset_get_type"
- glib:fundamental="1">
- <function name="register"
- c:identifier="gst_flagset_register"
- version="1.6">
- <doc xml:space="preserve">Create a new sub-class of #GST_TYPE_FLAG_SET
- which will pretty-print the human-readable flags
- when serializing, for easier debugging.</doc>
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <parameter name="flags_type" transfer-ownership="none">
- <doc xml:space="preserve">a #GType of a #G_TYPE_FLAGS type.</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </function>
- </class>
- <enumeration name="FlowReturn"
- glib:type-name="GstFlowReturn"
- glib:get-type="gst_flow_return_get_type"
- c:type="GstFlowReturn">
- <doc xml:space="preserve">The result of passing data to a pad.
- Note that the custom return values should not be exposed outside of the
- element scope.</doc>
- <member name="custom_success_2"
- value="102"
- c:identifier="GST_FLOW_CUSTOM_SUCCESS_2"
- glib:nick="custom-success-2">
- <doc xml:space="preserve">Pre-defined custom success code.</doc>
- </member>
- <member name="custom_success_1"
- value="101"
- c:identifier="GST_FLOW_CUSTOM_SUCCESS_1"
- glib:nick="custom-success-1">
- <doc xml:space="preserve">Pre-defined custom success code (define your
- custom success code to this to avoid compiler
- warnings).</doc>
- </member>
- <member name="custom_success"
- value="100"
- c:identifier="GST_FLOW_CUSTOM_SUCCESS"
- glib:nick="custom-success">
- <doc xml:space="preserve">Elements can use values starting from
- this (and higher) to define custom success
- codes.</doc>
- </member>
- <member name="ok" value="0" c:identifier="GST_FLOW_OK" glib:nick="ok">
- <doc xml:space="preserve">Data passing was ok.</doc>
- </member>
- <member name="not_linked"
- value="-1"
- c:identifier="GST_FLOW_NOT_LINKED"
- glib:nick="not-linked">
- <doc xml:space="preserve">Pad is not linked.</doc>
- </member>
- <member name="flushing"
- value="-2"
- c:identifier="GST_FLOW_FLUSHING"
- glib:nick="flushing">
- <doc xml:space="preserve">Pad is flushing.</doc>
- </member>
- <member name="eos"
- value="-3"
- c:identifier="GST_FLOW_EOS"
- glib:nick="eos">
- <doc xml:space="preserve">Pad is EOS.</doc>
- </member>
- <member name="not_negotiated"
- value="-4"
- c:identifier="GST_FLOW_NOT_NEGOTIATED"
- glib:nick="not-negotiated">
- <doc xml:space="preserve">Pad is not negotiated.</doc>
- </member>
- <member name="error"
- value="-5"
- c:identifier="GST_FLOW_ERROR"
- glib:nick="error">
- <doc xml:space="preserve">Some (fatal) error occurred. Element generating
- this error should post an error message with more
- details.</doc>
- </member>
- <member name="not_supported"
- value="-6"
- c:identifier="GST_FLOW_NOT_SUPPORTED"
- glib:nick="not-supported">
- <doc xml:space="preserve">This operation is not supported.</doc>
- </member>
- <member name="custom_error"
- value="-100"
- c:identifier="GST_FLOW_CUSTOM_ERROR"
- glib:nick="custom-error">
- <doc xml:space="preserve">Elements can use values starting from
- this (and lower) to define custom error codes.</doc>
- </member>
- <member name="custom_error_1"
- value="-101"
- c:identifier="GST_FLOW_CUSTOM_ERROR_1"
- glib:nick="custom-error-1">
- <doc xml:space="preserve">Pre-defined custom error code (define your
- custom error code to this to avoid compiler
- warnings).</doc>
- </member>
- <member name="custom_error_2"
- value="-102"
- c:identifier="GST_FLOW_CUSTOM_ERROR_2"
- glib:nick="custom-error-2">
- <doc xml:space="preserve">Pre-defined custom error code.</doc>
- </member>
- </enumeration>
- <enumeration name="Format"
- glib:type-name="GstFormat"
- glib:get-type="gst_format_get_type"
- c:type="GstFormat">
- <doc xml:space="preserve">Standard predefined formats</doc>
- <member name="undefined"
- value="0"
- c:identifier="GST_FORMAT_UNDEFINED"
- glib:nick="undefined">
- <doc xml:space="preserve">undefined format</doc>
- </member>
- <member name="default"
- value="1"
- c:identifier="GST_FORMAT_DEFAULT"
- glib:nick="default">
- <doc xml:space="preserve">the default format of the pad/element. This can be
- samples for raw audio, frames/fields for raw video (some, but not all,
- elements support this; use @GST_FORMAT_TIME if you don't have a good
- reason to query for samples/frames)</doc>
- </member>
- <member name="bytes"
- value="2"
- c:identifier="GST_FORMAT_BYTES"
- glib:nick="bytes">
- <doc xml:space="preserve">bytes</doc>
- </member>
- <member name="time"
- value="3"
- c:identifier="GST_FORMAT_TIME"
- glib:nick="time">
- <doc xml:space="preserve">time in nanoseconds</doc>
- </member>
- <member name="buffers"
- value="4"
- c:identifier="GST_FORMAT_BUFFERS"
- glib:nick="buffers">
- <doc xml:space="preserve">buffers (few, if any, elements implement this as of
- May 2009)</doc>
- </member>
- <member name="percent"
- value="5"
- c:identifier="GST_FORMAT_PERCENT"
- glib:nick="percent">
- <doc xml:space="preserve">percentage of stream (few, if any, elements implement
- this as of May 2009)</doc>
- </member>
- <function name="get_by_nick" c:identifier="gst_format_get_by_nick">
- <doc xml:space="preserve">Return the format registered with the given nick.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The format with @nick or GST_FORMAT_UNDEFINED
- if the format was not registered.</doc>
- <type name="Format" c:type="GstFormat"/>
- </return-value>
- <parameters>
- <parameter name="nick" transfer-ownership="none">
- <doc xml:space="preserve">The nick of the format</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_details" c:identifier="gst_format_get_details">
- <doc xml:space="preserve">Get details about the given format.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">The #GstFormatDefinition for @format or %NULL
- on failure.
- MT safe.</doc>
- <type name="FormatDefinition" c:type="const GstFormatDefinition*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">The format to get details of</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_name" c:identifier="gst_format_get_name">
- <doc xml:space="preserve">Get a printable name for the given format. Do not modify or free.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a reference to the static name of the format
- or %NULL if the format is unknown.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstFormat</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </function>
- <function name="iterate_definitions"
- c:identifier="gst_format_iterate_definitions">
- <doc xml:space="preserve">Iterate all the registered formats. The format definition is read
- only.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a GstIterator of #GstFormatDefinition.</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- </function>
- <function name="register" c:identifier="gst_format_register">
- <doc xml:space="preserve">Create a new GstFormat based on the nick or return an
- already registered format with that nick.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A new GstFormat or an already registered format
- with the same nick.
- MT safe.</doc>
- <type name="Format" c:type="GstFormat"/>
- </return-value>
- <parameters>
- <parameter name="nick" transfer-ownership="none">
- <doc xml:space="preserve">The nick of the new format</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="description" transfer-ownership="none">
- <doc xml:space="preserve">The description of the new format</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="to_quark" c:identifier="gst_format_to_quark">
- <doc xml:space="preserve">Get the unique quark for the given format.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the quark associated with the format or 0 if the format
- is unknown.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstFormat</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </function>
- </enumeration>
- <record name="FormatDefinition" c:type="GstFormatDefinition">
- <doc xml:space="preserve">A format definition</doc>
- <field name="value" writable="1">
- <doc xml:space="preserve">The unique id of this format</doc>
- <type name="Format" c:type="GstFormat"/>
- </field>
- <field name="nick" writable="1">
- <doc xml:space="preserve">A short nick of the format</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="description" writable="1">
- <doc xml:space="preserve">A longer description of the format</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="quark" writable="1">
- <doc xml:space="preserve">A quark for the nick</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </field>
- </record>
- <class name="Fraction"
- c:symbol-prefix="fraction"
- glib:type-name="GstFraction"
- glib:get-type="gst_fraction_get_type"
- glib:fundamental="1">
- </class>
- <class name="FractionRange"
- c:symbol-prefix="fraction_range"
- glib:type-name="GstFractionRange"
- glib:get-type="gst_fraction_range_get_type"
- glib:fundamental="1">
- </class>
- <class name="GhostPad"
- c:symbol-prefix="ghost_pad"
- c:type="GstGhostPad"
- parent="ProxyPad"
- glib:type-name="GstGhostPad"
- glib:get-type="gst_ghost_pad_get_type"
- glib:type-struct="GhostPadClass">
- <doc xml:space="preserve">GhostPads are useful when organizing pipelines with #GstBin like elements.
- The idea here is to create hierarchical element graphs. The bin element
- contains a sub-graph. Now one would like to treat the bin-element like any
- other #GstElement. This is where GhostPads come into play. A GhostPad acts as
- a proxy for another pad. Thus the bin can have sink and source ghost-pads
- that are associated with sink and source pads of the child elements.
- If the target pad is known at creation time, gst_ghost_pad_new() is the
- function to use to get a ghost-pad. Otherwise one can use gst_ghost_pad_new_no_target()
- to create the ghost-pad and use gst_ghost_pad_set_target() to establish the
- association later on.
- Note that GhostPads add overhead to the data processing of a pipeline.</doc>
- <constructor name="new" c:identifier="gst_ghost_pad_new">
- <doc xml:space="preserve">Create a new ghostpad with @target as the target. The direction will be taken
- from the target pad. @target must be unlinked.
- Will ref the target.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a new #GstPad, or %NULL in
- case of an error.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the new pad, or %NULL to assign a default name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="target" transfer-ownership="none">
- <doc xml:space="preserve">the pad to ghost.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_template"
- c:identifier="gst_ghost_pad_new_from_template">
- <doc xml:space="preserve">Create a new ghostpad with @target as the target. The direction will be taken
- from the target pad. The template used on the ghostpad will be @template.
- Will ref the target.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a new #GstPad, or %NULL in
- case of an error.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the new pad, or %NULL to assign a default name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="target" transfer-ownership="none">
- <doc xml:space="preserve">the pad to ghost.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="templ" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPadTemplate to use on the ghostpad.</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_no_target"
- c:identifier="gst_ghost_pad_new_no_target">
- <doc xml:space="preserve">Create a new ghostpad without a target with the given direction.
- A target can be set on the ghostpad later with the
- gst_ghost_pad_set_target() function.
- The created ghostpad will not have a padtemplate.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a new #GstPad, or %NULL in
- case of an error.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the new pad, or %NULL to assign a default name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="dir" transfer-ownership="none">
- <doc xml:space="preserve">the direction of the ghostpad</doc>
- <type name="PadDirection" c:type="GstPadDirection"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_no_target_from_template"
- c:identifier="gst_ghost_pad_new_no_target_from_template">
- <doc xml:space="preserve">Create a new ghostpad based on @templ, without setting a target. The
- direction will be taken from the @templ.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a new #GstPad, or %NULL in
- case of an error.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the new pad, or %NULL to assign a default name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="templ" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPadTemplate to create the ghostpad from.</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="activate_mode_default"
- c:identifier="gst_ghost_pad_activate_mode_default">
- <doc xml:space="preserve">Invoke the default activate mode function of a ghost pad.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation was successful.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to activate or deactivate.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad or %NULL</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the requested activation mode</doc>
- <type name="PadMode" c:type="GstPadMode"/>
- </parameter>
- <parameter name="active" transfer-ownership="none">
- <doc xml:space="preserve">whether the pad should be active or not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="internal_activate_mode_default"
- c:identifier="gst_ghost_pad_internal_activate_mode_default">
- <doc xml:space="preserve">Invoke the default activate mode function of a proxy pad that is
- owned by a ghost pad.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation was successful.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to activate or deactivate.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad or %NULL</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the requested activation mode</doc>
- <type name="PadMode" c:type="GstPadMode"/>
- </parameter>
- <parameter name="active" transfer-ownership="none">
- <doc xml:space="preserve">whether the pad should be active or not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <method name="construct" c:identifier="gst_ghost_pad_construct">
- <doc xml:space="preserve">Finish initialization of a newly allocated ghost pad.
- This function is most useful in language bindings and when subclassing
- #GstGhostPad; plugin and application developers normally will not call this
- function. Call this function directly after a call to g_object_new
- (GST_TYPE_GHOST_PAD, "direction", @dir, ..., NULL).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the construction succeeds, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="gpad" transfer-ownership="none">
- <doc xml:space="preserve">the newly allocated ghost pad</doc>
- <type name="GhostPad" c:type="GstGhostPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_target" c:identifier="gst_ghost_pad_get_target">
- <doc xml:space="preserve">Get the target pad of @gpad. Unref target pad after usage.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the target #GstPad, can be
- %NULL if the ghostpad has no target set. Unref target pad after
- usage.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <instance-parameter name="gpad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstGhostPad</doc>
- <type name="GhostPad" c:type="GstGhostPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_target" c:identifier="gst_ghost_pad_set_target">
- <doc xml:space="preserve">Set the new target of the ghostpad @gpad. Any existing target
- is unlinked and links to the new target are established. if @newtarget is
- %NULL the target will be cleared.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the new target could be set. This function
- can return %FALSE when the internal pads could not be linked.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="gpad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstGhostPad</doc>
- <type name="GhostPad" c:type="GstGhostPad*"/>
- </instance-parameter>
- <parameter name="newtarget"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the new pad target</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <field name="pad">
- <type name="ProxyPad" c:type="GstProxyPad"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="GhostPadPrivate" c:type="GstGhostPadPrivate*"/>
- </field>
- </class>
- <record name="GhostPadClass"
- c:type="GstGhostPadClass"
- glib:is-gtype-struct-for="GhostPad">
- <field name="parent_class">
- <type name="ProxyPadClass" c:type="GstProxyPadClass"/>
- </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="GhostPadPrivate" c:type="GstGhostPadPrivate" disguised="1">
- </record>
- <class name="Int64Range"
- c:symbol-prefix="int64_range"
- glib:type-name="GstInt64Range"
- glib:get-type="gst_int64_range_get_type"
- glib:fundamental="1">
- </class>
- <class name="IntRange"
- c:symbol-prefix="int_range"
- glib:type-name="GstIntRange"
- glib:get-type="gst_int_range_get_type"
- glib:fundamental="1">
- </class>
- <record name="Iterator"
- c:type="GstIterator"
- glib:type-name="GstIterator"
- glib:get-type="gst_iterator_get_type"
- c:symbol-prefix="iterator">
- <doc xml:space="preserve">A GstIterator is used to retrieve multiple objects from another object in
- a threadsafe way.
- Various GStreamer objects provide access to their internal structures using
- an iterator.
- Note that if calling a GstIterator function results in your code receiving
- a refcounted object (with, say, g_value_get_object()), the refcount for that
- object will not be increased. Your code is responsible for taking a reference
- if it wants to continue using it later.
- The basic use pattern of an iterator is as follows:
- |[<!-- language="C" -->
- GstIterator *it = _get_iterator(object);
- GValue item = G_VALUE_INIT;
- done = FALSE;
- while (!done) {
- switch (gst_iterator_next (it, &amp;item)) {
- case GST_ITERATOR_OK:
- ...get/use/change item here...
- g_value_reset (&amp;item);
- break;
- case GST_ITERATOR_RESYNC:
- ...rollback changes to items...
- gst_iterator_resync (it);
- break;
- case GST_ITERATOR_ERROR:
- ...wrong parameters were given...
- done = TRUE;
- break;
- case GST_ITERATOR_DONE:
- done = TRUE;
- break;
- }
- }
- g_value_unset (&amp;item);
- gst_iterator_free (it);
- ]|</doc>
- <field name="copy" writable="1">
- <doc xml:space="preserve">The function to copy the iterator</doc>
- <type name="IteratorCopyFunction" c:type="GstIteratorCopyFunction"/>
- </field>
- <field name="next" writable="1">
- <doc xml:space="preserve">The function to get the next item in the iterator</doc>
- <type name="IteratorNextFunction" c:type="GstIteratorNextFunction"/>
- </field>
- <field name="item" writable="1">
- <doc xml:space="preserve">The function to be called for each item retrieved</doc>
- <type name="IteratorItemFunction" c:type="GstIteratorItemFunction"/>
- </field>
- <field name="resync" writable="1">
- <doc xml:space="preserve">The function to call when a resync is needed.</doc>
- <type name="IteratorResyncFunction"
- c:type="GstIteratorResyncFunction"/>
- </field>
- <field name="free" writable="1">
- <doc xml:space="preserve">The function to call when the iterator is freed</doc>
- <type name="IteratorFreeFunction" c:type="GstIteratorFreeFunction"/>
- </field>
- <field name="pushed" writable="1">
- <doc xml:space="preserve">The iterator that is currently pushed with gst_iterator_push()</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </field>
- <field name="type" writable="1">
- <doc xml:space="preserve">The type of the object that this iterator will return</doc>
- <type name="GType" c:type="GType"/>
- </field>
- <field name="lock" writable="1">
- <doc xml:space="preserve">The lock protecting the data structure and the cookie.</doc>
- <type name="GLib.Mutex" c:type="GMutex*"/>
- </field>
- <field name="cookie" writable="1">
- <doc xml:space="preserve">The cookie; the value of the master_cookie when this iterator was
- created.</doc>
- <type name="guint32" c:type="guint32"/>
- </field>
- <field name="master_cookie" writable="1">
- <doc xml:space="preserve">A pointer to the master cookie.</doc>
- <type name="guint32" c:type="guint32*"/>
- </field>
- <field name="size" writable="1">
- <doc xml:space="preserve">the size of the iterator</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>
- <constructor name="new"
- c:identifier="gst_iterator_new"
- introspectable="0">
- <doc xml:space="preserve">Create a new iterator. This function is mainly used for objects
- implementing the next/resync/free function to iterate a data structure.
- For each item retrieved, the @item function is called with the lock
- held. The @free function is called when the iterator is freed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstIterator.
- MT safe.</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size of the iterator structure</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">#GType of children</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="lock" transfer-ownership="none">
- <doc xml:space="preserve">pointer to a #GMutex.</doc>
- <type name="GLib.Mutex" c:type="GMutex*"/>
- </parameter>
- <parameter name="master_cookie" transfer-ownership="none">
- <doc xml:space="preserve">pointer to a guint32 that is changed when the items in the
- iterator changed.</doc>
- <type name="guint32" c:type="guint32*"/>
- </parameter>
- <parameter name="copy" transfer-ownership="none">
- <doc xml:space="preserve">copy function</doc>
- <type name="IteratorCopyFunction"
- c:type="GstIteratorCopyFunction"/>
- </parameter>
- <parameter name="next" transfer-ownership="none">
- <doc xml:space="preserve">function to get next item</doc>
- <type name="IteratorNextFunction"
- c:type="GstIteratorNextFunction"/>
- </parameter>
- <parameter name="item" transfer-ownership="none">
- <doc xml:space="preserve">function to call on each item retrieved</doc>
- <type name="IteratorItemFunction"
- c:type="GstIteratorItemFunction"/>
- </parameter>
- <parameter name="resync" transfer-ownership="none">
- <doc xml:space="preserve">function to resync the iterator</doc>
- <type name="IteratorResyncFunction"
- c:type="GstIteratorResyncFunction"/>
- </parameter>
- <parameter name="free" transfer-ownership="none">
- <doc xml:space="preserve">function to free the iterator</doc>
- <type name="IteratorFreeFunction"
- c:type="GstIteratorFreeFunction"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_list"
- c:identifier="gst_iterator_new_list"
- introspectable="0">
- <doc xml:space="preserve">Create a new iterator designed for iterating @list.
- The list you iterate is usually part of a data structure @owner and is
- protected with @lock.
- The iterator will use @lock to retrieve the next item of the list and it
- will then call the @item function before releasing @lock again.
- When a concurrent update to the list is performed, usually by @owner while
- holding @lock, @master_cookie will be updated. The iterator implementation
- will notice the update of the cookie and will return %GST_ITERATOR_RESYNC to
- the user of the iterator in the next call to gst_iterator_next().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstIterator for @list.
- MT safe.</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">#GType of elements</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="lock" transfer-ownership="none">
- <doc xml:space="preserve">pointer to a #GMutex protecting the list.</doc>
- <type name="GLib.Mutex" c:type="GMutex*"/>
- </parameter>
- <parameter name="master_cookie" transfer-ownership="none">
- <doc xml:space="preserve">pointer to a guint32 that is incremented when the list
- is changed.</doc>
- <type name="guint32" c:type="guint32*"/>
- </parameter>
- <parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">pointer to the list</doc>
- <type name="GLib.List" c:type="GList**">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </parameter>
- <parameter name="owner" transfer-ownership="none">
- <doc xml:space="preserve">object owning the list</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="item" transfer-ownership="none">
- <doc xml:space="preserve">function to call on each item retrieved</doc>
- <type name="IteratorItemFunction"
- c:type="GstIteratorItemFunction"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_single" c:identifier="gst_iterator_new_single">
- <doc xml:space="preserve">This #GstIterator is a convenient iterator for the common
- case where a #GstIterator needs to be returned but only
- a single object has to be considered. This happens often
- for the #GstPadIterIntLinkFunction.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstIterator for @object.</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">#GType of the passed object</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">object that this iterator should return</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="copy" c:identifier="gst_iterator_copy">
- <doc xml:space="preserve">Copy the iterator and its state.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new copy of @it.</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="it" transfer-ownership="none">
- <doc xml:space="preserve">a #GstIterator</doc>
- <type name="Iterator" c:type="const GstIterator*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="filter" c:identifier="gst_iterator_filter">
- <doc xml:space="preserve">Create a new iterator from an existing iterator. The new iterator
- will only return those elements that match the given compare function @func.
- The first parameter that is passed to @func is the #GValue of the current
- iterator element and the second parameter is @user_data. @func should
- return 0 for elements that should be included in the filtered iterator.
- When this iterator is freed, @it will also be freed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstIterator.
- MT safe.</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="it" transfer-ownership="none">
- <doc xml:space="preserve">The #GstIterator to filter</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </instance-parameter>
- <parameter name="func" transfer-ownership="none" scope="call">
- <doc xml:space="preserve">the compare function to select elements</doc>
- <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <doc xml:space="preserve">user data passed to the compare function</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="find_custom" c:identifier="gst_iterator_find_custom">
- <doc xml:space="preserve">Find the first element in @it that matches the compare function @func.
- @func should return 0 when the element is found. The first parameter
- to @func will be the current element of the iterator and the
- second parameter will be @user_data.
- The result will be stored in @elem if a result is found.
- The iterator will not be freed.
- This function will return %FALSE if an error happened to the iterator
- or if the element wasn't found.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Returns %TRUE if the element was found, else %FALSE.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="it" transfer-ownership="none">
- <doc xml:space="preserve">The #GstIterator to iterate</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <doc xml:space="preserve">the compare function to use</doc>
- <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
- </parameter>
- <parameter name="elem"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">pointer to a #GValue where to store the result</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to the compare function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="fold" c:identifier="gst_iterator_fold">
- <doc xml:space="preserve">Folds @func over the elements of @iter. That is to say, @func will be called
- as @func (object, @ret, @user_data) for each object in @it. The normal use
- of this procedure is to accumulate the results of operating on the objects in
- @ret.
- This procedure can be used (and is used internally) to implement the
- gst_iterator_foreach() and gst_iterator_find_custom() operations.
- The fold will proceed as long as @func returns %TRUE. When the iterator has no
- more arguments, %GST_ITERATOR_DONE will be returned. If @func returns %FALSE,
- the fold will stop, and %GST_ITERATOR_OK will be returned. Errors or resyncs
- will cause fold to return %GST_ITERATOR_ERROR or %GST_ITERATOR_RESYNC as
- appropriate.
- The iterator will not be freed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GstIteratorResult, as described above.
- MT safe.</doc>
- <type name="IteratorResult" c:type="GstIteratorResult"/>
- </return-value>
- <parameters>
- <instance-parameter name="it" transfer-ownership="none">
- <doc xml:space="preserve">The #GstIterator to fold over</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <doc xml:space="preserve">the fold function</doc>
- <type name="IteratorFoldFunction"
- c:type="GstIteratorFoldFunction"/>
- </parameter>
- <parameter name="ret" transfer-ownership="none">
- <doc xml:space="preserve">the seed value passed to the fold function</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to the fold function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="foreach" c:identifier="gst_iterator_foreach">
- <doc xml:space="preserve">Iterate over all element of @it and call the given function @func for
- each element.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the result call to gst_iterator_fold(). The iterator will not be
- freed.
- MT safe.</doc>
- <type name="IteratorResult" c:type="GstIteratorResult"/>
- </return-value>
- <parameters>
- <instance-parameter name="it" transfer-ownership="none">
- <doc xml:space="preserve">The #GstIterator to iterate</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="1">
- <doc xml:space="preserve">the function to call for each element.</doc>
- <type name="IteratorForeachFunction"
- c:type="GstIteratorForeachFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to the function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="free" c:identifier="gst_iterator_free">
- <doc xml:space="preserve">Free the iterator.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="it" transfer-ownership="none">
- <doc xml:space="preserve">The #GstIterator to free</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="next" c:identifier="gst_iterator_next">
- <doc xml:space="preserve">Get the next item from the iterator in @elem.
- Only when this function returns %GST_ITERATOR_OK, @elem will contain a valid
- value. @elem must have been initialized to the type of the iterator or
- initialized to zeroes with g_value_unset(). The caller is responsible for
- unsetting or resetting @elem with g_value_unset() or g_value_reset()
- after usage.
- When this function returns %GST_ITERATOR_DONE, no more elements can be
- retrieved from @it.
- A return value of %GST_ITERATOR_RESYNC indicates that the element list was
- concurrently updated. The user of @it should call gst_iterator_resync() to
- get the newly updated list.
- A return value of %GST_ITERATOR_ERROR indicates an unrecoverable fatal error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The result of the iteration. Unset @elem after usage.
- MT safe.</doc>
- <type name="IteratorResult" c:type="GstIteratorResult"/>
- </return-value>
- <parameters>
- <instance-parameter name="it" transfer-ownership="none">
- <doc xml:space="preserve">The #GstIterator to iterate</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </instance-parameter>
- <parameter name="elem"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">pointer to hold next element</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="push" c:identifier="gst_iterator_push">
- <doc xml:space="preserve">Pushes @other iterator onto @it. All calls performed on @it are
- forwarded to @other. If @other returns %GST_ITERATOR_DONE, it is
- popped again and calls are handled by @it again.
- This function is mainly used by objects implementing the iterator
- next function to recurse into substructures.
- When gst_iterator_resync() is called on @it, @other will automatically be
- popped.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="it" transfer-ownership="none">
- <doc xml:space="preserve">The #GstIterator to use</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </instance-parameter>
- <parameter name="other" transfer-ownership="none">
- <doc xml:space="preserve">The #GstIterator to push</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </parameter>
- </parameters>
- </method>
- <method name="resync" c:identifier="gst_iterator_resync">
- <doc xml:space="preserve">Resync the iterator. this function is mostly called
- after gst_iterator_next() returned %GST_ITERATOR_RESYNC.
- When an iterator was pushed on @it, it will automatically be popped again
- with this function.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="it" transfer-ownership="none">
- <doc xml:space="preserve">The #GstIterator to resync</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <callback name="IteratorCopyFunction" c:type="GstIteratorCopyFunction">
- <doc xml:space="preserve">This function will be called when creating a copy of @it and should
- create a copy of all custom iterator fields or increase their
- reference counts.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="it" transfer-ownership="none">
- <doc xml:space="preserve">The original iterator</doc>
- <type name="Iterator" c:type="const GstIterator*"/>
- </parameter>
- <parameter name="copy" transfer-ownership="none">
- <doc xml:space="preserve">The copied iterator</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="IteratorFoldFunction" c:type="GstIteratorFoldFunction">
- <doc xml:space="preserve">A function to be passed to gst_iterator_fold().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the fold should continue, %FALSE if it should stop.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="item" transfer-ownership="none">
- <doc xml:space="preserve">the item to fold</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="ret" transfer-ownership="none">
- <doc xml:space="preserve">a #GValue collecting the result</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">data passed to gst_iterator_fold()</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="IteratorForeachFunction"
- c:type="GstIteratorForeachFunction">
- <doc xml:space="preserve">A function that is called by gst_iterator_foreach() for every element.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="item" transfer-ownership="none">
- <doc xml:space="preserve">The item</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="1">
- <doc xml:space="preserve">User data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="IteratorFreeFunction" c:type="GstIteratorFreeFunction">
- <doc xml:space="preserve">This function will be called when the iterator is freed.
- Implementors of a #GstIterator should implement this
- function and pass it to the constructor of the custom iterator.
- The function will be called with the iterator lock held.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="it" transfer-ownership="none">
- <doc xml:space="preserve">the iterator</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="IteratorItem"
- glib:type-name="GstIteratorItem"
- glib:get-type="gst_iterator_item_get_type"
- c:type="GstIteratorItem">
- <doc xml:space="preserve">The result of a #GstIteratorItemFunction.</doc>
- <member name="skip"
- value="0"
- c:identifier="GST_ITERATOR_ITEM_SKIP"
- glib:nick="skip">
- <doc xml:space="preserve">Skip this item</doc>
- </member>
- <member name="pass"
- value="1"
- c:identifier="GST_ITERATOR_ITEM_PASS"
- glib:nick="pass">
- <doc xml:space="preserve">Return item</doc>
- </member>
- <member name="end"
- value="2"
- c:identifier="GST_ITERATOR_ITEM_END"
- glib:nick="end">
- <doc xml:space="preserve">Stop after this item.</doc>
- </member>
- </enumeration>
- <callback name="IteratorItemFunction" c:type="GstIteratorItemFunction">
- <doc xml:space="preserve">The function that will be called after the next item of the iterator
- has been retrieved. This function can be used to skip items or stop
- the iterator.
- The function will be called with the iterator lock held.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the result of the operation.</doc>
- <type name="IteratorItem" c:type="GstIteratorItem"/>
- </return-value>
- <parameters>
- <parameter name="it" transfer-ownership="none">
- <doc xml:space="preserve">the iterator</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </parameter>
- <parameter name="item" transfer-ownership="none">
- <doc xml:space="preserve">the item being retrieved.</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="IteratorNextFunction" c:type="GstIteratorNextFunction">
- <doc xml:space="preserve">The function that will be called when the next element of the iterator
- should be retrieved.
- Implementors of a #GstIterator should implement this
- function and pass it to the constructor of the custom iterator.
- The function will be called with the iterator lock held.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the result of the operation.</doc>
- <type name="IteratorResult" c:type="GstIteratorResult"/>
- </return-value>
- <parameters>
- <parameter name="it" transfer-ownership="none">
- <doc xml:space="preserve">the iterator</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a pointer to hold the next item</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="IteratorResult"
- glib:type-name="GstIteratorResult"
- glib:get-type="gst_iterator_result_get_type"
- c:type="GstIteratorResult">
- <doc xml:space="preserve">The result of gst_iterator_next().</doc>
- <member name="done"
- value="0"
- c:identifier="GST_ITERATOR_DONE"
- glib:nick="done">
- <doc xml:space="preserve">No more items in the iterator</doc>
- </member>
- <member name="ok"
- value="1"
- c:identifier="GST_ITERATOR_OK"
- glib:nick="ok">
- <doc xml:space="preserve">An item was retrieved</doc>
- </member>
- <member name="resync"
- value="2"
- c:identifier="GST_ITERATOR_RESYNC"
- glib:nick="resync">
- <doc xml:space="preserve">Datastructure changed while iterating</doc>
- </member>
- <member name="error"
- value="3"
- c:identifier="GST_ITERATOR_ERROR"
- glib:nick="error">
- <doc xml:space="preserve">An error happened</doc>
- </member>
- </enumeration>
- <callback name="IteratorResyncFunction" c:type="GstIteratorResyncFunction">
- <doc xml:space="preserve">This function will be called whenever a concurrent update happened
- to the iterated datastructure. The implementor of the iterator should
- restart the iterator from the beginning and clean up any state it might
- have.
- Implementors of a #GstIterator should implement this
- function and pass it to the constructor of the custom iterator.
- The function will be called with the iterator lock held.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="it" transfer-ownership="none">
- <doc xml:space="preserve">the iterator</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </parameter>
- </parameters>
- </callback>
- <constant name="LICENSE_UNKNOWN"
- value="unknown"
- c:type="GST_LICENSE_UNKNOWN">
- <doc xml:space="preserve">To be used in GST_PLUGIN_DEFINE if unsure about the licence.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="LOCK_FLAG_READWRITE"
- value="0"
- c:type="GST_LOCK_FLAG_READWRITE">
- <doc xml:space="preserve">GstLockFlags value alias for GST_LOCK_FLAG_READ | GST_LOCK_FLAG_WRITE</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <enumeration name="LibraryError"
- glib:type-name="GstLibraryError"
- glib:get-type="gst_library_error_get_type"
- c:type="GstLibraryError"
- glib:error-domain="gst-library-error-quark">
- <doc xml:space="preserve">Library errors are for errors from the library being used by elements
- (initializing, finalizing, settings, ...)</doc>
- <member name="failed"
- value="1"
- c:identifier="GST_LIBRARY_ERROR_FAILED"
- glib:nick="failed">
- <doc xml:space="preserve">a general error which doesn't fit in any other
- category. Make sure you add a custom message to the error call.</doc>
- </member>
- <member name="too_lazy"
- value="2"
- c:identifier="GST_LIBRARY_ERROR_TOO_LAZY"
- glib:nick="too-lazy">
- <doc xml:space="preserve">do not use this except as a placeholder for
- deciding where to go while developing code.</doc>
- </member>
- <member name="init"
- value="3"
- c:identifier="GST_LIBRARY_ERROR_INIT"
- glib:nick="init">
- <doc xml:space="preserve">used when the library could not be opened.</doc>
- </member>
- <member name="shutdown"
- value="4"
- c:identifier="GST_LIBRARY_ERROR_SHUTDOWN"
- glib:nick="shutdown">
- <doc xml:space="preserve">used when the library could not be closed.</doc>
- </member>
- <member name="settings"
- value="5"
- c:identifier="GST_LIBRARY_ERROR_SETTINGS"
- glib:nick="settings">
- <doc xml:space="preserve">used when the library doesn't accept settings.</doc>
- </member>
- <member name="encode"
- value="6"
- c:identifier="GST_LIBRARY_ERROR_ENCODE"
- glib:nick="encode">
- <doc xml:space="preserve">used when the library generated an encoding error.</doc>
- </member>
- <member name="num_errors"
- value="7"
- c:identifier="GST_LIBRARY_ERROR_NUM_ERRORS"
- glib:nick="num-errors">
- <doc xml:space="preserve">the number of library error types.</doc>
- </member>
- <function name="quark" c:identifier="gst_library_error_quark">
- <return-value transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- </enumeration>
- <bitfield name="LockFlags"
- glib:type-name="GstLockFlags"
- glib:get-type="gst_lock_flags_get_type"
- c:type="GstLockFlags">
- <doc xml:space="preserve">Flags used when locking miniobjects</doc>
- <member name="read"
- value="1"
- c:identifier="GST_LOCK_FLAG_READ"
- glib:nick="read">
- <doc xml:space="preserve">lock for read access</doc>
- </member>
- <member name="write"
- value="2"
- c:identifier="GST_LOCK_FLAG_WRITE"
- glib:nick="write">
- <doc xml:space="preserve">lock for write access</doc>
- </member>
- <member name="exclusive"
- value="4"
- c:identifier="GST_LOCK_FLAG_EXCLUSIVE"
- glib:nick="exclusive">
- <doc xml:space="preserve">lock for exclusive access</doc>
- </member>
- <member name="last"
- value="256"
- c:identifier="GST_LOCK_FLAG_LAST"
- glib:nick="last">
- <doc xml:space="preserve">first flag that can be used for custom purposes</doc>
- </member>
- </bitfield>
- <callback name="LogFunction" c:type="GstLogFunction">
- <doc xml:space="preserve">Function prototype for a logging function that can be registered with
- gst_debug_add_log_function().
- Use G_GNUC_NO_INSTRUMENT on that function.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="category" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDebugCategory</doc>
- <type name="DebugCategory" c:type="GstDebugCategory*"/>
- </parameter>
- <parameter name="level" transfer-ownership="none">
- <doc xml:space="preserve">a #GstDebugLevel</doc>
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </parameter>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">file name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="function" transfer-ownership="none">
- <doc xml:space="preserve">function name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="line" transfer-ownership="none">
- <doc xml:space="preserve">line number</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">the message</doc>
- <type name="DebugMessage" c:type="GstDebugMessage*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="7">
- <doc xml:space="preserve">user data for the log function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <constant name="MAP_READWRITE" value="0" c:type="GST_MAP_READWRITE">
- <doc xml:space="preserve">GstMapFlags value alias for GST_MAP_READ | GST_MAP_WRITE</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="META_TAG_MEMORY_STR"
- value="memory"
- c:type="GST_META_TAG_MEMORY_STR"
- version="1.2">
- <doc xml:space="preserve">This metadata stays relevant as long as memory layout is unchanged.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="MSECOND" value="1000000" c:type="GST_MSECOND">
- <doc xml:space="preserve">Constant that defines one GStreamer millisecond.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <bitfield name="MapFlags"
- glib:type-name="GstMapFlags"
- glib:get-type="gst_map_flags_get_type"
- c:type="GstMapFlags">
- <doc xml:space="preserve">Flags used when mapping memory</doc>
- <member name="read"
- value="1"
- c:identifier="GST_MAP_READ"
- glib:nick="read">
- <doc xml:space="preserve">map for read access</doc>
- </member>
- <member name="write"
- value="2"
- c:identifier="GST_MAP_WRITE"
- glib:nick="write">
- <doc xml:space="preserve">map for write access</doc>
- </member>
- <member name="flag_last"
- value="65536"
- c:identifier="GST_MAP_FLAG_LAST"
- glib:nick="flag-last">
- <doc xml:space="preserve">first flag that can be used for custom purposes</doc>
- </member>
- </bitfield>
- <record name="MapInfo" c:type="GstMapInfo">
- <doc xml:space="preserve">A structure containing the result of a map operation such as
- gst_memory_map(). It contains the data and size.</doc>
- <field name="memory" writable="1">
- <doc xml:space="preserve">a pointer to the mapped memory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </field>
- <field name="flags" writable="1">
- <doc xml:space="preserve">flags used when mapping the memory</doc>
- <type name="MapFlags" c:type="GstMapFlags"/>
- </field>
- <field name="data" writable="1">
- <doc xml:space="preserve">a pointer to the mapped data</doc>
- <array length="3" zero-terminated="0" c:type="guint8*">
- <type name="guint8" c:type="guint8"/>
- </array>
- </field>
- <field name="size" writable="1">
- <doc xml:space="preserve">the valid size in @data</doc>
- <type name="gsize" c:type="gsize"/>
- </field>
- <field name="maxsize" writable="1">
- <doc xml:space="preserve">the maximum bytes in @data</doc>
- <type name="gsize" c:type="gsize"/>
- </field>
- <field name="user_data" writable="1">
- <doc xml:space="preserve">extra private user_data that the implementation of the memory
- can use to store extra info.</doc>
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </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>
- </record>
- <record name="Memory"
- c:type="GstMemory"
- glib:type-name="GstMemory"
- glib:get-type="gst_memory_get_type"
- c:symbol-prefix="memory">
- <doc xml:space="preserve">GstMemory is a lightweight refcounted object that wraps a region of memory.
- They are typically used to manage the data of a #GstBuffer.
- A GstMemory object has an allocated region of memory of maxsize. The maximum
- size does not change during the lifetime of the memory object. The memory
- also has an offset and size property that specifies the valid range of memory
- in the allocated region.
- Memory is usually created by allocators with a gst_allocator_alloc()
- method call. When %NULL is used as the allocator, the default allocator will
- be used.
- New allocators can be registered with gst_allocator_register().
- Allocators are identified by name and can be retrieved with
- gst_allocator_find(). gst_allocator_set_default() can be used to change the
- default allocator.
- New memory can be created with gst_memory_new_wrapped() that wraps the memory
- allocated elsewhere.
- Refcounting of the memory block is performed with gst_memory_ref() and
- gst_memory_unref().
- The size of the memory can be retrieved and changed with
- gst_memory_get_sizes() and gst_memory_resize() respectively.
- Getting access to the data of the memory is performed with gst_memory_map().
- The call will return a pointer to offset bytes into the region of memory.
- After the memory access is completed, gst_memory_unmap() should be called.
- Memory can be copied with gst_memory_copy(), which will return a writable
- copy. gst_memory_share() will create a new memory block that shares the
- memory with an existing memory block at a custom offset and with a custom
- size.
- Memory can be efficiently merged when gst_memory_is_span() returns %TRUE.</doc>
- <field name="mini_object" writable="1">
- <doc xml:space="preserve">parent structure</doc>
- <type name="MiniObject" c:type="GstMiniObject"/>
- </field>
- <field name="allocator" writable="1">
- <doc xml:space="preserve">pointer to the #GstAllocator</doc>
- <type name="Allocator" c:type="GstAllocator*"/>
- </field>
- <field name="parent" writable="1">
- <doc xml:space="preserve">parent memory block</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </field>
- <field name="maxsize" writable="1">
- <doc xml:space="preserve">the maximum size allocated</doc>
- <type name="gsize" c:type="gsize"/>
- </field>
- <field name="align" writable="1">
- <doc xml:space="preserve">the alignment of the memory</doc>
- <type name="gsize" c:type="gsize"/>
- </field>
- <field name="offset" writable="1">
- <doc xml:space="preserve">the offset where valid data starts</doc>
- <type name="gsize" c:type="gsize"/>
- </field>
- <field name="size" writable="1">
- <doc xml:space="preserve">the size of valid data</doc>
- <type name="gsize" c:type="gsize"/>
- </field>
- <constructor name="new_wrapped" c:identifier="gst_memory_new_wrapped">
- <doc xml:space="preserve">Allocate a new memory block that wraps the given @data.
- The prefix/padding must be filled with 0 if @flags contains
- #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstMemory.</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </return-value>
- <parameters>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GstMemoryFlags</doc>
- <type name="MemoryFlags" c:type="GstMemoryFlags"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <doc xml:space="preserve">data to
- wrap</doc>
- <array length="4" zero-terminated="0" c:type="gpointer">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="maxsize" transfer-ownership="none">
- <doc xml:space="preserve">allocated size of @data</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">offset in @data</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">size of valid data</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">called with @user_data when the memory is freed</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="copy" c:identifier="gst_memory_copy">
- <doc xml:space="preserve">Return a copy of @size bytes from @mem starting from @offset. This copy is
- guaranteed to be writable. @size can be set to -1 to return a copy
- from @offset to the end of the memory region.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstMemory.</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mem" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">offset to copy from</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">size to copy, or -1 to copy to the end of the memory region</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_sizes" c:identifier="gst_memory_get_sizes">
- <doc xml:space="preserve">Get the current @size, @offset and @maxsize of @mem.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the current sizes of @mem</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="mem" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">pointer to offset</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="maxsize" transfer-ownership="none">
- <doc xml:space="preserve">pointer to maxsize</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </method>
- <method name="init" c:identifier="gst_memory_init" introspectable="0">
- <doc xml:space="preserve">Initializes a newly allocated @mem with the given parameters. This function
- will call gst_mini_object_init() with the default memory parameters.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mem" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GstMemoryFlags</doc>
- <type name="MemoryFlags" c:type="GstMemoryFlags"/>
- </parameter>
- <parameter name="allocator" transfer-ownership="none">
- <doc xml:space="preserve">the #GstAllocator</doc>
- <type name="Allocator" c:type="GstAllocator*"/>
- </parameter>
- <parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent of @mem</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- <parameter name="maxsize" transfer-ownership="none">
- <doc xml:space="preserve">the total size of the memory</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="align" transfer-ownership="none">
- <doc xml:space="preserve">the alignment of the memory</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">The offset in the memory</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size of valid data in the memory</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_span" c:identifier="gst_memory_is_span">
- <doc xml:space="preserve">Check if @mem1 and mem2 share the memory with a common parent memory object
- and that the memory is contiguous.
- If this is the case, the memory of @mem1 and @mem2 can be merged
- efficiently by performing gst_memory_share() on the parent object from
- the returned @offset.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the memory is contiguous and of a common parent.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mem1" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </instance-parameter>
- <parameter name="mem2" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">a pointer to a result offset</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_type" c:identifier="gst_memory_is_type" version="1.2">
- <doc xml:space="preserve">Check if @mem if allocated with an allocator for @mem_type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @mem was allocated from an allocator for @mem_type.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mem" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </instance-parameter>
- <parameter name="mem_type" transfer-ownership="none">
- <doc xml:space="preserve">a memory type</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="make_mapped" c:identifier="gst_memory_make_mapped">
- <doc xml:space="preserve">Create a #GstMemory object that is mapped with @flags. If @mem is mappable
- with @flags, this function returns the mapped @mem directly. Otherwise a
- mapped copy of @mem is returned.
- This function takes ownership of old @mem and returns a reference to a new
- #GstMemory.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GstMemory object mapped
- with @flags or %NULL when a mapping is not possible.</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mem" transfer-ownership="full">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </instance-parameter>
- <parameter name="info"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">pointer for info</doc>
- <type name="MapInfo" c:type="GstMapInfo*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">mapping flags</doc>
- <type name="MapFlags" c:type="GstMapFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="map" c:identifier="gst_memory_map">
- <doc xml:space="preserve">Fill @info with the pointer and sizes of the memory in @mem that can be
- accessed according to @flags.
- This function can return %FALSE for various reasons:
- - the memory backed by @mem is not accessible with the given @flags.
- - the memory was already mapped with a different mapping.
- @info and its contents remain valid for as long as @mem is valid and
- until gst_memory_unmap() is called.
- For each gst_memory_map() call, a corresponding gst_memory_unmap() call
- should be done.</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="mem" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </instance-parameter>
- <parameter name="info"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">pointer for info</doc>
- <type name="MapInfo" c:type="GstMapInfo*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">mapping flags</doc>
- <type name="MapFlags" c:type="GstMapFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="resize" c:identifier="gst_memory_resize">
- <doc xml:space="preserve">Resize the memory region. @mem should be writable and offset + size should be
- less than the maxsize of @mem.
- #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED will be
- cleared when offset or padding is increased respectively.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mem" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">a new offset</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">a new size</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <method name="share" c:identifier="gst_memory_share">
- <doc xml:space="preserve">Return a shared copy of @size bytes from @mem starting from @offset. No
- memory copy is performed and the memory region is simply shared. The result
- is guaranteed to be non-writable. @size can be set to -1 to return a shared
- copy from @offset to the end of the memory region.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstMemory.</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mem" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">offset to share from</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">size to share, or -1 to share to the end of the memory region</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- </parameters>
- </method>
- <method name="unmap" c:identifier="gst_memory_unmap">
- <doc xml:space="preserve">Release the memory obtained with gst_memory_map()</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mem" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </instance-parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMapInfo</doc>
- <type name="MapInfo" c:type="GstMapInfo*"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <callback name="MemoryCopyFunction" c:type="GstMemoryCopyFunction">
- <doc xml:space="preserve">Copy @size bytes from @mem starting at @offset and return them wrapped in a
- new GstMemory object.
- If @size is set to -1, all bytes starting at @offset are copied.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstMemory object wrapping a copy of the requested region in
- @mem.</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </return-value>
- <parameters>
- <parameter name="mem" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">an offset</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">a size or -1</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="MemoryFlags"
- glib:type-name="GstMemoryFlags"
- glib:get-type="gst_memory_flags_get_type"
- c:type="GstMemoryFlags">
- <doc xml:space="preserve">Flags for wrapped memory.</doc>
- <member name="readonly"
- value="2"
- c:identifier="GST_MEMORY_FLAG_READONLY"
- glib:nick="readonly">
- <doc xml:space="preserve">memory is readonly. It is not allowed to map the
- memory with #GST_MAP_WRITE.</doc>
- </member>
- <member name="no_share"
- value="16"
- c:identifier="GST_MEMORY_FLAG_NO_SHARE"
- glib:nick="no-share">
- <doc xml:space="preserve">memory must not be shared. Copies will have to be
- made when this memory needs to be shared between buffers.</doc>
- </member>
- <member name="zero_prefixed"
- value="32"
- c:identifier="GST_MEMORY_FLAG_ZERO_PREFIXED"
- glib:nick="zero-prefixed">
- <doc xml:space="preserve">the memory prefix is filled with 0 bytes</doc>
- </member>
- <member name="zero_padded"
- value="64"
- c:identifier="GST_MEMORY_FLAG_ZERO_PADDED"
- glib:nick="zero-padded">
- <doc xml:space="preserve">the memory padding is filled with 0 bytes</doc>
- </member>
- <member name="physically_contiguous"
- value="128"
- c:identifier="GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS"
- glib:nick="physically-contiguous">
- <doc xml:space="preserve">the memory is physically contiguous. (Since 1.2)</doc>
- </member>
- <member name="not_mappable"
- value="256"
- c:identifier="GST_MEMORY_FLAG_NOT_MAPPABLE"
- glib:nick="not-mappable">
- <doc xml:space="preserve">the memory can't be mapped via gst_memory_map() without any preconditions. (Since 1.2)</doc>
- </member>
- <member name="last"
- value="1048576"
- c:identifier="GST_MEMORY_FLAG_LAST"
- glib:nick="last">
- <doc xml:space="preserve">first flag that can be used for custom purposes</doc>
- </member>
- </bitfield>
- <callback name="MemoryIsSpanFunction" c:type="GstMemoryIsSpanFunction">
- <doc xml:space="preserve">Check if @mem1 and @mem2 occupy contiguous memory and return the offset of
- @mem1 in the parent buffer in @offset.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @mem1 and @mem2 are in contiguous memory.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="mem1" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- <parameter name="mem2" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">a result offset</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="MemoryMapFullFunction" c:type="GstMemoryMapFullFunction">
- <doc xml:space="preserve">Get the memory of @mem that can be accessed according to the mode specified
- in @info's flags. The function should return a pointer that contains at least
- @maxsize bytes.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a pointer to memory of which at least @maxsize bytes can be
- accessed according to the access pattern in @info's flags.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="mem" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">the #GstMapInfo to map with</doc>
- <type name="MapInfo" c:type="GstMapInfo*"/>
- </parameter>
- <parameter name="maxsize" transfer-ownership="none">
- <doc xml:space="preserve">size to map</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="MemoryMapFunction" c:type="GstMemoryMapFunction">
- <doc xml:space="preserve">Get the memory of @mem that can be accessed according to the mode specified
- in @flags. The function should return a pointer that contains at least
- @maxsize bytes.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a pointer to memory of which at least @maxsize bytes can be
- accessed according to the access pattern in @flags.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="mem" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- <parameter name="maxsize" transfer-ownership="none">
- <doc xml:space="preserve">size to map</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">access mode for the memory</doc>
- <type name="MapFlags" c:type="GstMapFlags"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="MemoryShareFunction" c:type="GstMemoryShareFunction">
- <doc xml:space="preserve">Share @size bytes from @mem starting at @offset and return them wrapped in a
- new GstMemory object. If @size is set to -1, all bytes starting at @offset are
- shared. This function does not make a copy of the bytes in @mem.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstMemory object sharing the requested region in @mem.</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </return-value>
- <parameters>
- <parameter name="mem" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">an offset</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">a size or -1</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="MemoryUnmapFullFunction"
- c:type="GstMemoryUnmapFullFunction">
- <doc xml:space="preserve">Return the pointer previously retrieved with gst_memory_map() with @info.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mem" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMapInfo</doc>
- <type name="MapInfo" c:type="GstMapInfo*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="MemoryUnmapFunction" c:type="GstMemoryUnmapFunction">
- <doc xml:space="preserve">Return the pointer previously retrieved with gst_memory_map().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mem" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMemory</doc>
- <type name="Memory" c:type="GstMemory*"/>
- </parameter>
- </parameters>
- </callback>
- <record name="Message"
- c:type="GstMessage"
- glib:type-name="GstMessage"
- glib:get-type="gst_message_get_type"
- c:symbol-prefix="message">
- <doc xml:space="preserve">Messages are implemented as a subclass of #GstMiniObject with a generic
- #GstStructure as the content. This allows for writing custom messages without
- requiring an API change while allowing a wide range of different types
- of messages.
- Messages are posted by objects in the pipeline and are passed to the
- application using the #GstBus.
- The basic use pattern of posting a message on a #GstBus is as follows:
- |[<!-- language="C" -->
- gst_bus_post (bus, gst_message_new_eos());
- ]|
- A #GstElement usually posts messages on the bus provided by the parent
- container using gst_element_post_message().</doc>
- <field name="mini_object" writable="1">
- <doc xml:space="preserve">the parent structure</doc>
- <type name="MiniObject" c:type="GstMiniObject"/>
- </field>
- <field name="type" writable="1">
- <doc xml:space="preserve">the #GstMessageType of the message</doc>
- <type name="MessageType" c:type="GstMessageType"/>
- </field>
- <field name="timestamp" writable="1">
- <doc xml:space="preserve">the timestamp of the message</doc>
- <type name="guint64" c:type="guint64"/>
- </field>
- <field name="src" writable="1">
- <doc xml:space="preserve">the src of the message</doc>
- <type name="Object" c:type="GstObject*"/>
- </field>
- <field name="seqnum" writable="1">
- <doc xml:space="preserve">the sequence number of the message</doc>
- <type name="guint32" c:type="guint32"/>
- </field>
- <field name="lock" readable="0" private="1">
- <type name="GLib.Mutex" c:type="GMutex"/>
- </field>
- <field name="cond" readable="0" private="1">
- <type name="GLib.Cond" c:type="GCond"/>
- </field>
- <constructor name="new_application"
- c:identifier="gst_message_new_application">
- <doc xml:space="preserve">Create a new application-typed message. GStreamer will never create these
- messages; they are a gift from us to you. Enjoy.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new application message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="structure" transfer-ownership="full">
- <doc xml:space="preserve">the structure for the message. The message
- will take ownership of the structure.</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_async_done"
- c:identifier="gst_message_new_async_done">
- <doc xml:space="preserve">The message is posted when elements completed an ASYNC state change.
- @running_time contains the time of the desired running_time when this
- elements goes to PLAYING. A value of #GST_CLOCK_TIME_NONE for @running_time
- means that the element has no clock interaction and thus doesn't care about
- the running_time of the pipeline.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new async_done message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="running_time" transfer-ownership="none">
- <doc xml:space="preserve">the desired running_time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_async_start"
- c:identifier="gst_message_new_async_start">
- <doc xml:space="preserve">This message is posted by elements when they start an ASYNC state change.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new async_start message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_buffering"
- c:identifier="gst_message_new_buffering">
- <doc xml:space="preserve">Create a new buffering message. This message can be posted by an element that
- needs to buffer data before it can continue processing. @percent should be a
- value between 0 and 100. A value of 100 means that the buffering completed.
- When @percent is < 100 the application should PAUSE a PLAYING pipeline. When
- @percent is 100, the application can set the pipeline (back) to PLAYING.
- The application must be prepared to receive BUFFERING messages in the
- PREROLLING state and may only set the pipeline to PLAYING after receiving a
- message with @percent set to 100, which can happen after the pipeline
- completed prerolling.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new buffering message.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="percent" transfer-ownership="none">
- <doc xml:space="preserve">The buffering percent</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_clock_lost"
- c:identifier="gst_message_new_clock_lost">
- <doc xml:space="preserve">Create a clock lost message. This message is posted whenever the
- clock is not valid anymore.
- If this message is posted by the pipeline, the pipeline will
- select a new clock again when it goes to PLAYING. It might therefore
- be needed to set the pipeline to PAUSED and PLAYING again.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new clock lost message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">the clock that was lost</doc>
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_clock_provide"
- c:identifier="gst_message_new_clock_provide">
- <doc xml:space="preserve">Create a clock provide message. This message is posted whenever an
- element is ready to provide a clock or lost its ability to provide
- a clock (maybe because it paused or became EOS).
- This message is mainly used internally to manage the clock
- selection.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new provide clock message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">the clock it provides</doc>
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- <parameter name="ready" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the sender can provide a clock</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_custom" c:identifier="gst_message_new_custom">
- <doc xml:space="preserve">Create a new custom-typed message. This can be used for anything not
- handled by other message-specific functions to pass a message to the
- app. The structure field can be %NULL.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">The #GstMessageType to distinguish messages</doc>
- <type name="MessageType" c:type="GstMessageType"/>
- </parameter>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="structure"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the structure for the
- message. The message will take ownership of the structure.</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_device_added"
- c:identifier="gst_message_new_device_added"
- version="1.4">
- <doc xml:space="preserve">Creates a new device-added message. The device-added message is produced by
- #GstDeviceProvider or a #GstDeviceMonitor. They announce the appearance
- of monitored devices.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated #GstMessage</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">The #GstObject that created the message</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="device" transfer-ownership="none">
- <doc xml:space="preserve">The new #GstDevice</doc>
- <type name="Device" c:type="GstDevice*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_device_removed"
- c:identifier="gst_message_new_device_removed"
- version="1.4">
- <doc xml:space="preserve">Creates a new device-removed message. The device-removed message is produced
- by #GstDeviceProvider or a #GstDeviceMonitor. They announce the
- disappearance of monitored devices.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated #GstMessage</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">The #GstObject that created the message</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="device" transfer-ownership="none">
- <doc xml:space="preserve">The removed #GstDevice</doc>
- <type name="Device" c:type="GstDevice*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_duration_changed"
- c:identifier="gst_message_new_duration_changed">
- <doc xml:space="preserve">Create a new duration changed message. This message is posted by elements
- that know the duration of a stream when the duration changes. This message
- is received by bins and is used to calculate the total duration of a
- pipeline. Elements may post a duration message with a duration of
- GST_CLOCK_TIME_NONE to indicate that the duration has changed and the
- cached duration should be discarded. The new duration can then be
- retrieved via a query.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new duration-changed message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_element" c:identifier="gst_message_new_element">
- <doc xml:space="preserve">Create a new element-specific message. This is meant as a generic way of
- allowing one-way communication from an element to an application, for example
- "the firewire cable was unplugged". The format of the message should be
- documented in the element's documentation. The structure field can be %NULL.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new element message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="structure" transfer-ownership="full">
- <doc xml:space="preserve">The structure for the
- message. The message will take ownership of the structure.</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_eos" c:identifier="gst_message_new_eos">
- <doc xml:space="preserve">Create a new eos message. This message is generated and posted in
- the sink elements of a GstBin. The bin will only forward the EOS
- message to the application if all sinks have posted an EOS message.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new eos message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_error" c:identifier="gst_message_new_error">
- <doc xml:space="preserve">Create a new error message. The message will copy @error and
- @debug. This message is posted by element when a fatal event
- occurred. The pipeline will probably (partially) stop. The application
- receiving this message should stop the pipeline.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new error message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">The GError for this message.</doc>
- <type name="GLib.Error" c:type="GError*"/>
- </parameter>
- <parameter name="debug" transfer-ownership="none">
- <doc xml:space="preserve">A debugging string.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_have_context"
- c:identifier="gst_message_new_have_context"
- version="1.2">
- <doc xml:space="preserve">This message is posted when an element has a new local #GstContext.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new have-context message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="context" transfer-ownership="full">
- <doc xml:space="preserve">the context</doc>
- <type name="Context" c:type="GstContext*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_info" c:identifier="gst_message_new_info">
- <doc xml:space="preserve">Create a new info message. The message will make copies of @error and
- @debug.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new info message.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">The GError for this message.</doc>
- <type name="GLib.Error" c:type="GError*"/>
- </parameter>
- <parameter name="debug" transfer-ownership="none">
- <doc xml:space="preserve">A debugging string.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_latency" c:identifier="gst_message_new_latency">
- <doc xml:space="preserve">This message can be posted by elements when their latency requirements have
- changed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new latency message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_need_context"
- c:identifier="gst_message_new_need_context"
- version="1.2">
- <doc xml:space="preserve">This message is posted when an element needs a specific #GstContext.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new need-context message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="context_type" transfer-ownership="none">
- <doc xml:space="preserve">The context type that is needed</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_new_clock"
- c:identifier="gst_message_new_new_clock">
- <doc xml:space="preserve">Create a new clock message. This message is posted whenever the
- pipeline selects a new clock for the pipeline.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new new clock message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">the new selected clock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_progress" c:identifier="gst_message_new_progress">
- <doc xml:space="preserve">Progress messages are posted by elements when they use an asynchronous task
- to perform actions triggered by a state change.
- @code contains a well defined string describing the action.
- @test should contain a user visible string detailing the current action.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new qos message.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GstProgressType</doc>
- <type name="ProgressType" c:type="GstProgressType"/>
- </parameter>
- <parameter name="code" transfer-ownership="none">
- <doc xml:space="preserve">a progress code</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="text" transfer-ownership="none">
- <doc xml:space="preserve">free, user visible text describing the progress</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_qos" c:identifier="gst_message_new_qos">
- <doc xml:space="preserve">A QOS message is posted on the bus whenever an element decides to drop a
- buffer because of QoS reasons or whenever it changes its processing strategy
- because of QoS reasons (quality adjustments such as processing at lower
- accuracy).
- This message can be posted by an element that performs synchronisation against the
- clock (live) or it could be dropped by an element that performs QoS because of QOS
- events received from a downstream element (!live).
- @running_time, @stream_time, @timestamp, @duration should be set to the
- respective running-time, stream-time, timestamp and duration of the (dropped)
- buffer that generated the QoS event. Values can be left to
- GST_CLOCK_TIME_NONE when unknown.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new qos message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="live" transfer-ownership="none">
- <doc xml:space="preserve">if the message was generated by a live element</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="running_time" transfer-ownership="none">
- <doc xml:space="preserve">the running time of the buffer that generated the message</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="stream_time" transfer-ownership="none">
- <doc xml:space="preserve">the stream time of the buffer that generated the message</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the timestamps of the buffer that generated the message</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="duration" transfer-ownership="none">
- <doc xml:space="preserve">the duration of the buffer that generated the message</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_request_state"
- c:identifier="gst_message_new_request_state">
- <doc xml:space="preserve">This message can be posted by elements when they want to have their state
- changed. A typical use case would be an audio server that wants to pause the
- pipeline because a higher priority stream is being played.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new request state message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="state" transfer-ownership="none">
- <doc xml:space="preserve">The new requested state</doc>
- <type name="State" c:type="GstState"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_reset_time"
- c:identifier="gst_message_new_reset_time">
- <doc xml:space="preserve">This message is posted when the pipeline running-time should be reset to
- @running_time, like after a flushing seek.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new reset_time message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="running_time" transfer-ownership="none">
- <doc xml:space="preserve">the requested running-time</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_segment_done"
- c:identifier="gst_message_new_segment_done">
- <doc xml:space="preserve">Create a new segment done message. This message is posted by elements that
- finish playback of a segment as a result of a segment seek. This message
- is received by the application after all elements that posted a segment_start
- have posted the segment_done.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new segment done message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">The format of the position being done</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">The position of the segment being done</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_segment_start"
- c:identifier="gst_message_new_segment_start">
- <doc xml:space="preserve">Create a new segment message. This message is posted by elements that
- start playback of a segment as a result of a segment seek. This message
- is not received by the application but is used for maintenance reasons in
- container elements.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new segment start message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">The format of the position being played</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">The position of the segment being played</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_state_changed"
- c:identifier="gst_message_new_state_changed">
- <doc xml:space="preserve">Create a state change message. This message is posted whenever an element
- changed its state.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new state change message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="oldstate" transfer-ownership="none">
- <doc xml:space="preserve">the previous state</doc>
- <type name="State" c:type="GstState"/>
- </parameter>
- <parameter name="newstate" transfer-ownership="none">
- <doc xml:space="preserve">the new (current) state</doc>
- <type name="State" c:type="GstState"/>
- </parameter>
- <parameter name="pending" transfer-ownership="none">
- <doc xml:space="preserve">the pending (target) state</doc>
- <type name="State" c:type="GstState"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_state_dirty"
- c:identifier="gst_message_new_state_dirty">
- <doc xml:space="preserve">Create a state dirty message. This message is posted whenever an element
- changed its state asynchronously and is used internally to update the
- states of container objects.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new state dirty message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_step_done"
- c:identifier="gst_message_new_step_done">
- <doc xml:space="preserve">This message is posted by elements when they complete a part, when @intermediate set
- to %TRUE, or a complete step operation.
- @duration will contain the amount of time (in GST_FORMAT_TIME) of the stepped
- @amount of media in format @format.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new step_done message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of @amount</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="amount" transfer-ownership="none">
- <doc xml:space="preserve">the amount of stepped data</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="rate" transfer-ownership="none">
- <doc xml:space="preserve">the rate of the stepped amount</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- <parameter name="flush" transfer-ownership="none">
- <doc xml:space="preserve">is this an flushing step</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="intermediate" transfer-ownership="none">
- <doc xml:space="preserve">is this an intermediate step</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="duration" transfer-ownership="none">
- <doc xml:space="preserve">the duration of the data</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="eos" transfer-ownership="none">
- <doc xml:space="preserve">the step caused EOS</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_step_start"
- c:identifier="gst_message_new_step_start">
- <doc xml:space="preserve">This message is posted by elements when they accept or activate a new step
- event for @amount in @format.
- @active is set to %FALSE when the element accepted the new step event and has
- queued it for execution in the streaming threads.
- @active is set to %TRUE when the element has activated the step operation and
- is now ready to start executing the step in the streaming thread. After this
- message is emitted, the application can queue a new step operation in the
- element.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new step_start message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="active" transfer-ownership="none">
- <doc xml:space="preserve">if the step is active or queued</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of @amount</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="amount" transfer-ownership="none">
- <doc xml:space="preserve">the amount of stepped data</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="rate" transfer-ownership="none">
- <doc xml:space="preserve">the rate of the stepped amount</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- <parameter name="flush" transfer-ownership="none">
- <doc xml:space="preserve">is this an flushing step</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="intermediate" transfer-ownership="none">
- <doc xml:space="preserve">is this an intermediate step</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_stream_start"
- c:identifier="gst_message_new_stream_start">
- <doc xml:space="preserve">Create a new stream_start message. This message is generated and posted in
- the sink elements of a GstBin. The bin will only forward the STREAM_START
- message to the application if all sinks have posted an STREAM_START message.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new stream_start message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_stream_status"
- c:identifier="gst_message_new_stream_status">
- <doc xml:space="preserve">Create a new stream status message. This message is posted when a streaming
- thread is created/destroyed or when the state changed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new stream status message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">The stream status type.</doc>
- <type name="StreamStatusType" c:type="GstStreamStatusType"/>
- </parameter>
- <parameter name="owner" transfer-ownership="none">
- <doc xml:space="preserve">the owner element of @src.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_structure_change"
- c:identifier="gst_message_new_structure_change">
- <doc xml:space="preserve">Create a new structure change message. This message is posted when the
- structure of a pipeline is in the process of being changed, for example
- when pads are linked or unlinked.
- @src should be the sinkpad that unlinked or linked.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new structure change message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">The change type.</doc>
- <type name="StructureChangeType" c:type="GstStructureChangeType"/>
- </parameter>
- <parameter name="owner" transfer-ownership="none">
- <doc xml:space="preserve">The owner element of @src.</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="busy" transfer-ownership="none">
- <doc xml:space="preserve">Whether the structure change is busy.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_tag" c:identifier="gst_message_new_tag">
- <doc xml:space="preserve">Create a new tag message. The message will take ownership of the tag list.
- The message is posted by elements that discovered a new taglist.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new tag message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="tag_list" transfer-ownership="full">
- <doc xml:space="preserve">the tag list for the message.</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_toc" c:identifier="gst_message_new_toc">
- <doc xml:space="preserve">Create a new TOC message. The message is posted by elements
- that discovered or updated a TOC.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new TOC message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">the object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="toc" transfer-ownership="none">
- <doc xml:space="preserve">#GstToc structure for the message.</doc>
- <type name="Toc" c:type="GstToc*"/>
- </parameter>
- <parameter name="updated" transfer-ownership="none">
- <doc xml:space="preserve">whether TOC was updated or not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_warning" c:identifier="gst_message_new_warning">
- <doc xml:space="preserve">Create a new warning message. The message will make copies of @error and
- @debug.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new warning message.
- MT safe.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The object originating the message.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">The GError for this message.</doc>
- <type name="GLib.Error" c:type="GError*"/>
- </parameter>
- <parameter name="debug" transfer-ownership="none">
- <doc xml:space="preserve">A debugging string.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_seqnum" c:identifier="gst_message_get_seqnum">
- <doc xml:space="preserve">Retrieve the sequence number of a message.
- Messages have ever-incrementing sequence numbers, which may also be set
- explicitly via gst_message_set_seqnum(). Sequence numbers are typically used
- to indicate that a message corresponds to some other set of messages or
- events, for example a SEGMENT_DONE message corresponding to a SEEK event. It
- is considered good practice to make this correspondence when possible, though
- it is not required.
- Note that events and messages share the same sequence number incrementor;
- two events or messages will never have the same sequence number unless
- that correspondence was made explicitly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The message's sequence number.
- MT safe.</doc>
- <type name="guint32" c:type="guint32"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GstMessage.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_stream_status_object"
- c:identifier="gst_message_get_stream_status_object">
- <doc xml:space="preserve">Extracts the object managing the streaming thread from @message.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a GValue containing the object that manages the streaming thread.
- This object is usually of type GstTask but other types can be added in the
- future. The object remains valid as long as @message is valid.</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_STREAM_STATUS.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_structure" c:identifier="gst_message_get_structure">
- <doc xml:space="preserve">Access the structure of the message.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The structure of the message. The structure is
- still owned by the message, which means that you should not free it and
- that the pointer becomes invalid when you free the message.
- MT safe.</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">The #GstMessage.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_name" c:identifier="gst_message_has_name">
- <doc xml:space="preserve">Checks if @message has the given @name. This function is usually used to
- check the name of a custom message.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @name matches the name of the message structure.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">The #GstMessage.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name to check</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_async_done"
- c:identifier="gst_message_parse_async_done">
- <doc xml:space="preserve">Extract the running_time from the async_done message.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_ASYNC_DONE.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="running_time"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Result location for the running_time or %NULL</doc>
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_buffering"
- c:identifier="gst_message_parse_buffering">
- <doc xml:space="preserve">Extracts the buffering percent from the GstMessage. see also
- gst_message_new_buffering().
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_BUFFERING.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="percent"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Return location for the percent.</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_buffering_stats"
- c:identifier="gst_message_parse_buffering_stats">
- <doc xml:space="preserve">Extracts the buffering stats values from @message.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_BUFFERING.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="mode"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a buffering mode, or %NULL</doc>
- <type name="BufferingMode" c:type="GstBufferingMode*"/>
- </parameter>
- <parameter name="avg_in"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the average input rate, or %NULL</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="avg_out"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the average output rate, or %NULL</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="buffering_left"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">amount of buffering time left in
- milliseconds, or %NULL</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_clock_lost"
- c:identifier="gst_message_parse_clock_lost">
- <doc xml:space="preserve">Extracts the lost clock from the GstMessage.
- The clock object returned remains valid until the message is freed.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_CLOCK_LOST.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="clock"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to hold the lost clock</doc>
- <type name="Clock" c:type="GstClock**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_clock_provide"
- c:identifier="gst_message_parse_clock_provide">
- <doc xml:space="preserve">Extracts the clock and ready flag from the GstMessage.
- The clock object returned remains valid until the message is freed.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_CLOCK_PROVIDE.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="clock"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to hold a clock
- object, or %NULL</doc>
- <type name="Clock" c:type="GstClock**"/>
- </parameter>
- <parameter name="ready"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to hold the ready flag, or %NULL</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_context_type"
- c:identifier="gst_message_parse_context_type"
- version="1.2">
- <doc xml:space="preserve">Parse a context type from an existing GST_MESSAGE_NEED_CONTEXT message.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean indicating if the parsing succeeded.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a GST_MESSAGE_NEED_CONTEXT type message</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="context_type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the context type, or %NULL</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_device_added"
- c:identifier="gst_message_parse_device_added"
- version="1.4">
- <doc xml:space="preserve">Parses a device-added message. The device-added message is produced by
- #GstDeviceProvider or a #GstDeviceMonitor. It announces the appearance
- of monitored devices.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMessage of type %GST_MESSAGE_DEVICE_ADDED</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="device"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">A location where to store a
- pointer to the new #GstDevice, or %NULL</doc>
- <type name="Device" c:type="GstDevice**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_device_removed"
- c:identifier="gst_message_parse_device_removed"
- version="1.4">
- <doc xml:space="preserve">Parses a device-removed message. The device-removed message is produced by
- #GstDeviceProvider or a #GstDeviceMonitor. It announces the
- disappearance of monitored devices.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMessage of type %GST_MESSAGE_DEVICE_REMOVED</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="device"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">A location where to store a
- pointer to the removed #GstDevice, or %NULL</doc>
- <type name="Device" c:type="GstDevice**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_error" c:identifier="gst_message_parse_error">
- <doc xml:space="preserve">Extracts the GError and debug string from the GstMessage. The values returned
- in the output arguments are copies; the caller must free them when done.
- Typical usage of this function might be:
- |[<!-- language="C" -->
- ...
- switch (GST_MESSAGE_TYPE (msg)) {
- case GST_MESSAGE_ERROR: {
- GError *err = NULL;
- gchar *dbg_info = NULL;
-
- gst_message_parse_error (msg, &amp;err, &amp;dbg_info);
- g_printerr ("ERROR from element %s: %s\n",
- GST_OBJECT_NAME (msg->src), err->message);
- g_printerr ("Debugging info: %s\n", (dbg_info) ? dbg_info : "none");
- g_error_free (err);
- g_free (dbg_info);
- break;
- }
- ...
- }
- ...
- ]|
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_ERROR.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="gerror"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">location for the GError</doc>
- <type name="GLib.Error" c:type="GError**"/>
- </parameter>
- <parameter name="debug"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">location for the debug message,
- or %NULL</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_group_id"
- c:identifier="gst_message_parse_group_id"
- version="1.2">
- <doc xml:space="preserve">Extract the group from the STREAM_START message.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the message had a group id set, %FALSE otherwise
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_STREAM_START.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="group_id"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Result location for the group id or
- %NULL</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_have_context"
- c:identifier="gst_message_parse_have_context"
- version="1.2">
- <doc xml:space="preserve">Extract the context from the HAVE_CONTEXT message.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_HAVE_CONTEXT.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="context"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Result location for the
- context or %NULL</doc>
- <type name="Context" c:type="GstContext**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_info" c:identifier="gst_message_parse_info">
- <doc xml:space="preserve">Extracts the GError and debug string from the GstMessage. The values returned
- in the output arguments are copies; the caller must free them when done.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_INFO.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="gerror"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">location for the GError</doc>
- <type name="GLib.Error" c:type="GError**"/>
- </parameter>
- <parameter name="debug"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">location for the debug message,
- or %NULL</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_new_clock"
- c:identifier="gst_message_parse_new_clock">
- <doc xml:space="preserve">Extracts the new clock from the GstMessage.
- The clock object returned remains valid until the message is freed.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_NEW_CLOCK.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="clock"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to hold the selected
- new clock</doc>
- <type name="Clock" c:type="GstClock**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_progress" c:identifier="gst_message_parse_progress">
- <doc xml:space="preserve">Parses the progress @type, @code and @text.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_PROGRESS.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">location for the type</doc>
- <type name="ProgressType" c:type="GstProgressType*"/>
- </parameter>
- <parameter name="code"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">location for the code</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- <parameter name="text"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">location for the text</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_qos" c:identifier="gst_message_parse_qos">
- <doc xml:space="preserve">Extract the timestamps and live status from the QoS message.
- The returned values give the running_time, stream_time, timestamp and
- duration of the dropped buffer. Values of GST_CLOCK_TIME_NONE mean unknown
- values.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_QOS.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="live"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">if the message was generated by a live element</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="running_time"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the running time of the buffer that
- generated the message</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="stream_time"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the stream time of the buffer that
- generated the message</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="timestamp"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the timestamps of the buffer that
- generated the message</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="duration"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the duration of the buffer that
- generated the message</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_qos_stats"
- c:identifier="gst_message_parse_qos_stats">
- <doc xml:space="preserve">Extract the QoS stats representing the history of the current continuous
- pipeline playback period.
- When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are
- invalid. Values of -1 for either @processed or @dropped mean unknown values.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_QOS.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Units of the 'processed' and 'dropped' fields.
- Video sinks and video filters will use GST_FORMAT_BUFFERS (frames).
- Audio sinks and audio filters will likely use GST_FORMAT_DEFAULT
- (samples).</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="processed"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Total number of units correctly processed
- since the last state change to READY or a flushing operation.</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="dropped"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Total number of units dropped since the last
- state change to READY or a flushing operation.</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_qos_values"
- c:identifier="gst_message_parse_qos_values">
- <doc xml:space="preserve">Extract the QoS values that have been calculated/analysed from the QoS data
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_QOS.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="jitter"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">The difference of the running-time against
- the deadline.</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- <parameter name="proportion"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Long term prediction of the ideal rate
- relative to normal rate to get optimal quality.</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- <parameter name="quality"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">An element dependent integer value that
- specifies the current quality level of the element. The default
- maximum quality is 1000000.</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_request_state"
- c:identifier="gst_message_parse_request_state">
- <doc xml:space="preserve">Extract the requested state from the request_state message.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_REQUEST_STATE.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="state"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Result location for the requested state or %NULL</doc>
- <type name="State" c:type="GstState*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_reset_time"
- c:identifier="gst_message_parse_reset_time">
- <doc xml:space="preserve">Extract the running-time from the RESET_TIME message.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_RESET_TIME.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="running_time"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Result location for the running_time or
- %NULL</doc>
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_segment_done"
- c:identifier="gst_message_parse_segment_done">
- <doc xml:space="preserve">Extracts the position and format from the segment done message.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_SEGMENT_DONE.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Result location for the format, or %NULL</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="position"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Result location for the position, or %NULL</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_segment_start"
- c:identifier="gst_message_parse_segment_start">
- <doc xml:space="preserve">Extracts the position and format from the segment start message.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_SEGMENT_START.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Result location for the format, or %NULL</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="position"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Result location for the position, or %NULL</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_state_changed"
- c:identifier="gst_message_parse_state_changed">
- <doc xml:space="preserve">Extracts the old and new states from the GstMessage.
- Typical usage of this function might be:
- |[<!-- language="C" -->
- ...
- switch (GST_MESSAGE_TYPE (msg)) {
- case GST_MESSAGE_STATE_CHANGED: {
- GstState old_state, new_state;
-
- gst_message_parse_state_changed (msg, &amp;old_state, &amp;new_state, NULL);
- g_print ("Element %s changed state from %s to %s.\n",
- GST_OBJECT_NAME (msg->src),
- gst_element_state_get_name (old_state),
- gst_element_state_get_name (new_state));
- break;
- }
- ...
- }
- ...
- ]|
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a valid #GstMessage of type GST_MESSAGE_STATE_CHANGED</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="oldstate"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the previous state, or %NULL</doc>
- <type name="State" c:type="GstState*"/>
- </parameter>
- <parameter name="newstate"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the new (current) state, or %NULL</doc>
- <type name="State" c:type="GstState*"/>
- </parameter>
- <parameter name="pending"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the pending (target) state, or %NULL</doc>
- <type name="State" c:type="GstState*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_step_done"
- c:identifier="gst_message_parse_step_done">
- <doc xml:space="preserve">Extract the values the step_done message.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_STEP_DONE.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">result location for the format</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="amount"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">result location for the amount</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="rate"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">result location for the rate</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- <parameter name="flush"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">result location for the flush flag</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="intermediate"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">result location for the intermediate flag</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="duration"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">result location for the duration</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="eos"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">result location for the EOS flag</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_step_start"
- c:identifier="gst_message_parse_step_start">
- <doc xml:space="preserve">Extract the values from step_start message.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_STEP_DONE.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="active"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">result location for the active flag</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">result location for the format</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="amount"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">result location for the amount</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="rate"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">result location for the rate</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- <parameter name="flush"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">result location for the flush flag</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="intermediate"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">result location for the intermediate flag</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_stream_status"
- c:identifier="gst_message_parse_stream_status">
- <doc xml:space="preserve">Extracts the stream status type and owner the GstMessage. The returned
- owner remains valid for as long as the reference to @message is valid and
- should thus not be unreffed.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_STREAM_STATUS.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to hold the status type</doc>
- <type name="StreamStatusType" c:type="GstStreamStatusType*"/>
- </parameter>
- <parameter name="owner"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none">
- <doc xml:space="preserve">The owner element of the message source</doc>
- <type name="Element" c:type="GstElement**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_structure_change"
- c:identifier="gst_message_parse_structure_change">
- <doc xml:space="preserve">Extracts the change type and completion status from the GstMessage.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_STRUCTURE_CHANGE.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to hold the change type</doc>
- <type name="StructureChangeType" c:type="GstStructureChangeType*"/>
- </parameter>
- <parameter name="owner"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">The owner element of the
- message source</doc>
- <type name="Element" c:type="GstElement**"/>
- </parameter>
- <parameter name="busy"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to hold whether the change is in
- progress or has been completed</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_tag" c:identifier="gst_message_parse_tag">
- <doc xml:space="preserve">Extracts the tag list from the GstMessage. The tag list returned in the
- output argument is a copy; the caller must free it when done.
- Typical usage of this function might be:
- |[<!-- language="C" -->
- ...
- switch (GST_MESSAGE_TYPE (msg)) {
- case GST_MESSAGE_TAG: {
- GstTagList *tags = NULL;
-
- gst_message_parse_tag (msg, &amp;tags);
- g_print ("Got tags from element %s\n", GST_OBJECT_NAME (msg->src));
- handle_tags (tags);
- gst_tag_list_unref (tags);
- break;
- }
- ...
- }
- ...
- ]|
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_TAG.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="tag_list"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">return location for the tag-list.</doc>
- <type name="TagList" c:type="GstTagList**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_toc" c:identifier="gst_message_parse_toc">
- <doc xml:space="preserve">Extract the TOC from the #GstMessage. The TOC returned in the
- output argument is a copy; the caller must free it with
- gst_toc_unref() when done.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a valid #GstMessage of type GST_MESSAGE_TOC.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="toc"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">return location for the TOC.</doc>
- <type name="Toc" c:type="GstToc**"/>
- </parameter>
- <parameter name="updated"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">return location for the updated flag.</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_warning" c:identifier="gst_message_parse_warning">
- <doc xml:space="preserve">Extracts the GError and debug string from the GstMessage. The values returned
- in the output arguments are copies; the caller must free them when done.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_WARNING.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="gerror"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">location for the GError</doc>
- <type name="GLib.Error" c:type="GError**"/>
- </parameter>
- <parameter name="debug"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">location for the debug message,
- or %NULL</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_buffering_stats"
- c:identifier="gst_message_set_buffering_stats">
- <doc xml:space="preserve">Configures the buffering stats values in @message.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_BUFFERING.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">a buffering mode</doc>
- <type name="BufferingMode" c:type="GstBufferingMode"/>
- </parameter>
- <parameter name="avg_in" transfer-ownership="none">
- <doc xml:space="preserve">the average input rate</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="avg_out" transfer-ownership="none">
- <doc xml:space="preserve">the average output rate</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="buffering_left" transfer-ownership="none">
- <doc xml:space="preserve">amount of buffering time left in milliseconds</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_group_id"
- c:identifier="gst_message_set_group_id"
- version="1.2">
- <doc xml:space="preserve">Sets the group id on the stream-start message.
- All streams that have the same group id are supposed to be played
- together, i.e. all streams inside a container file should have the
- same group id but different stream ids. The group id should change
- each time the stream is started, resulting in different group ids
- each time a file is played for example.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">the message</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="group_id" transfer-ownership="none">
- <doc xml:space="preserve">the group id</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_qos_stats" c:identifier="gst_message_set_qos_stats">
- <doc xml:space="preserve">Set the QoS stats representing the history of the current continuous pipeline
- playback period.
- When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are
- invalid. Values of -1 for either @processed or @dropped mean unknown values.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_QOS.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">Units of the 'processed' and 'dropped' fields. Video sinks and video
- filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters
- will likely use GST_FORMAT_DEFAULT (samples).</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="processed" transfer-ownership="none">
- <doc xml:space="preserve">Total number of units correctly processed since the last state
- change to READY or a flushing operation.</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="dropped" transfer-ownership="none">
- <doc xml:space="preserve">Total number of units dropped since the last state change to READY
- or a flushing operation.</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_qos_values" c:identifier="gst_message_set_qos_values">
- <doc xml:space="preserve">Set the QoS values that have been calculated/analysed from the QoS data
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_QOS.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="jitter" transfer-ownership="none">
- <doc xml:space="preserve">The difference of the running-time against the deadline.</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="proportion" transfer-ownership="none">
- <doc xml:space="preserve">Long term prediction of the ideal rate relative to normal rate
- to get optimal quality.</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- <parameter name="quality" transfer-ownership="none">
- <doc xml:space="preserve">An element dependent integer value that specifies the current
- quality level of the element. The default maximum quality is 1000000.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_seqnum" c:identifier="gst_message_set_seqnum">
- <doc xml:space="preserve">Set the sequence number of a message.
- This function might be called by the creator of a message to indicate that
- the message relates to other messages or events. See gst_message_get_seqnum()
- for more information.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GstMessage.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="seqnum" transfer-ownership="none">
- <doc xml:space="preserve">A sequence number.</doc>
- <type name="guint32" c:type="guint32"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_stream_status_object"
- c:identifier="gst_message_set_stream_status_object">
- <doc xml:space="preserve">Configures the object handling the streaming thread. This is usually a
- GstTask object but other objects might be added in the future.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_STREAM_STATUS.</doc>
- <type name="Message" c:type="GstMessage*"/>
- </instance-parameter>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object controlling the streaming</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <bitfield name="MessageType"
- glib:type-name="GstMessageType"
- glib:get-type="gst_message_type_get_type"
- c:type="GstMessageType">
- <doc xml:space="preserve">The different message types that are available.</doc>
- <member name="unknown"
- value="0"
- c:identifier="GST_MESSAGE_UNKNOWN"
- glib:nick="unknown">
- <doc xml:space="preserve">an undefined message</doc>
- </member>
- <member name="eos"
- value="1"
- c:identifier="GST_MESSAGE_EOS"
- glib:nick="eos">
- <doc xml:space="preserve">end-of-stream reached in a pipeline. The application will
- only receive this message in the PLAYING state and every time it sets a
- pipeline to PLAYING that is in the EOS state. The application can perform a
- flushing seek in the pipeline, which will undo the EOS state again.</doc>
- </member>
- <member name="error"
- value="2"
- c:identifier="GST_MESSAGE_ERROR"
- glib:nick="error">
- <doc xml:space="preserve">an error occurred. When the application receives an error
- message it should stop playback of the pipeline and not assume that more
- data will be played.</doc>
- </member>
- <member name="warning"
- value="4"
- c:identifier="GST_MESSAGE_WARNING"
- glib:nick="warning">
- <doc xml:space="preserve">a warning occurred.</doc>
- </member>
- <member name="info"
- value="8"
- c:identifier="GST_MESSAGE_INFO"
- glib:nick="info">
- <doc xml:space="preserve">an info message occurred</doc>
- </member>
- <member name="tag"
- value="16"
- c:identifier="GST_MESSAGE_TAG"
- glib:nick="tag">
- <doc xml:space="preserve">a tag was found.</doc>
- </member>
- <member name="buffering"
- value="32"
- c:identifier="GST_MESSAGE_BUFFERING"
- glib:nick="buffering">
- <doc xml:space="preserve">the pipeline is buffering. When the application
- receives a buffering message in the PLAYING state for a non-live pipeline it
- must PAUSE the pipeline until the buffering completes, when the percentage
- field in the message is 100%. For live pipelines, no action must be
- performed and the buffering percentage can be used to inform the user about
- the progress.</doc>
- </member>
- <member name="state_changed"
- value="64"
- c:identifier="GST_MESSAGE_STATE_CHANGED"
- glib:nick="state-changed">
- <doc xml:space="preserve">a state change happened</doc>
- </member>
- <member name="state_dirty"
- value="128"
- c:identifier="GST_MESSAGE_STATE_DIRTY"
- glib:nick="state-dirty">
- <doc xml:space="preserve">an element changed state in a streaming thread.
- This message is deprecated.</doc>
- </member>
- <member name="step_done"
- value="256"
- c:identifier="GST_MESSAGE_STEP_DONE"
- glib:nick="step-done">
- <doc xml:space="preserve">a stepping operation finished.</doc>
- </member>
- <member name="clock_provide"
- value="512"
- c:identifier="GST_MESSAGE_CLOCK_PROVIDE"
- glib:nick="clock-provide">
- <doc xml:space="preserve">an element notifies its capability of providing
- a clock. This message is used internally and
- never forwarded to the application.</doc>
- </member>
- <member name="clock_lost"
- value="1024"
- c:identifier="GST_MESSAGE_CLOCK_LOST"
- glib:nick="clock-lost">
- <doc xml:space="preserve">The current clock as selected by the pipeline became
- unusable. The pipeline will select a new clock on
- the next PLAYING state change. The application
- should set the pipeline to PAUSED and back to
- PLAYING when this message is received.</doc>
- </member>
- <member name="new_clock"
- value="2048"
- c:identifier="GST_MESSAGE_NEW_CLOCK"
- glib:nick="new-clock">
- <doc xml:space="preserve">a new clock was selected in the pipeline.</doc>
- </member>
- <member name="structure_change"
- value="4096"
- c:identifier="GST_MESSAGE_STRUCTURE_CHANGE"
- glib:nick="structure-change">
- <doc xml:space="preserve">the structure of the pipeline changed. This
- message is used internally and never forwarded to the application.</doc>
- </member>
- <member name="stream_status"
- value="8192"
- c:identifier="GST_MESSAGE_STREAM_STATUS"
- glib:nick="stream-status">
- <doc xml:space="preserve">status about a stream, emitted when it starts,
- stops, errors, etc..</doc>
- </member>
- <member name="application"
- value="16384"
- c:identifier="GST_MESSAGE_APPLICATION"
- glib:nick="application">
- <doc xml:space="preserve">message posted by the application, possibly
- via an application-specific element.</doc>
- </member>
- <member name="element"
- value="32768"
- c:identifier="GST_MESSAGE_ELEMENT"
- glib:nick="element">
- <doc xml:space="preserve">element-specific message, see the specific element's
- documentation</doc>
- </member>
- <member name="segment_start"
- value="65536"
- c:identifier="GST_MESSAGE_SEGMENT_START"
- glib:nick="segment-start">
- <doc xml:space="preserve">pipeline started playback of a segment. This
- message is used internally and never forwarded to the application.</doc>
- </member>
- <member name="segment_done"
- value="131072"
- c:identifier="GST_MESSAGE_SEGMENT_DONE"
- glib:nick="segment-done">
- <doc xml:space="preserve">pipeline completed playback of a segment. This
- message is forwarded to the application after all elements that posted
- @GST_MESSAGE_SEGMENT_START posted a GST_MESSAGE_SEGMENT_DONE message.</doc>
- </member>
- <member name="duration_changed"
- value="262144"
- c:identifier="GST_MESSAGE_DURATION_CHANGED"
- glib:nick="duration-changed">
- <doc xml:space="preserve">The duration of a pipeline changed. The
- application can get the new duration with a duration query.</doc>
- </member>
- <member name="latency"
- value="524288"
- c:identifier="GST_MESSAGE_LATENCY"
- glib:nick="latency">
- <doc xml:space="preserve">Posted by elements when their latency changes. The
- application should recalculate and distribute a new latency.</doc>
- </member>
- <member name="async_start"
- value="1048576"
- c:identifier="GST_MESSAGE_ASYNC_START"
- glib:nick="async-start">
- <doc xml:space="preserve">Posted by elements when they start an ASYNC
- #GstStateChange. This message is not forwarded to the application but is used
- internally.</doc>
- </member>
- <member name="async_done"
- value="2097152"
- c:identifier="GST_MESSAGE_ASYNC_DONE"
- glib:nick="async-done">
- <doc xml:space="preserve">Posted by elements when they complete an ASYNC
- #GstStateChange. The application will only receive this message from the toplevel
- pipeline.</doc>
- </member>
- <member name="request_state"
- value="4194304"
- c:identifier="GST_MESSAGE_REQUEST_STATE"
- glib:nick="request-state">
- <doc xml:space="preserve">Posted by elements when they want the pipeline to
- change state. This message is a suggestion to the application which can
- decide to perform the state change on (part of) the pipeline.</doc>
- </member>
- <member name="step_start"
- value="8388608"
- c:identifier="GST_MESSAGE_STEP_START"
- glib:nick="step-start">
- <doc xml:space="preserve">A stepping operation was started.</doc>
- </member>
- <member name="qos"
- value="16777216"
- c:identifier="GST_MESSAGE_QOS"
- glib:nick="qos">
- <doc xml:space="preserve">A buffer was dropped or an element changed its processing
- strategy for Quality of Service reasons.</doc>
- </member>
- <member name="progress"
- value="33554432"
- c:identifier="GST_MESSAGE_PROGRESS"
- glib:nick="progress">
- <doc xml:space="preserve">A progress message.</doc>
- </member>
- <member name="toc"
- value="67108864"
- c:identifier="GST_MESSAGE_TOC"
- glib:nick="toc">
- <doc xml:space="preserve">A new table of contents (TOC) was found or previously found TOC
- was updated.</doc>
- </member>
- <member name="reset_time"
- value="134217728"
- c:identifier="GST_MESSAGE_RESET_TIME"
- glib:nick="reset-time">
- <doc xml:space="preserve">Message to request resetting the pipeline's
- running time from the pipeline. This is an internal message which
- applications will likely never receive.</doc>
- </member>
- <member name="stream_start"
- value="268435456"
- c:identifier="GST_MESSAGE_STREAM_START"
- glib:nick="stream-start">
- <doc xml:space="preserve">Message indicating start of a new stream. Useful
- e.g. when using playbin in gapless playback mode, to get notified when
- the next title actually starts playing (which will be some time after
- the URI for the next title has been set).</doc>
- </member>
- <member name="need_context"
- value="536870912"
- c:identifier="GST_MESSAGE_NEED_CONTEXT"
- glib:nick="need-context">
- <doc xml:space="preserve">Message indicating that an element wants a specific context (Since 1.2)</doc>
- </member>
- <member name="have_context"
- value="1073741824"
- c:identifier="GST_MESSAGE_HAVE_CONTEXT"
- glib:nick="have-context">
- <doc xml:space="preserve">Message indicating that an element created a context (Since 1.2)</doc>
- </member>
- <member name="extended"
- value="2147483648"
- c:identifier="GST_MESSAGE_EXTENDED"
- glib:nick="extended">
- <doc xml:space="preserve">Message is an extended message type (see below).
- These extended message IDs can't be used directly with mask-based API
- like gst_bus_poll() or gst_bus_timed_pop_filtered(), but you can still
- filter for GST_MESSAGE_EXTENDED and then check the result for the
- specific type. (Since 1.4)</doc>
- </member>
- <member name="device_added"
- value="2147483649"
- c:identifier="GST_MESSAGE_DEVICE_ADDED"
- glib:nick="device-added">
- <doc xml:space="preserve">Message indicating a #GstDevice was added to
- a #GstDeviceProvider (Since 1.4)</doc>
- </member>
- <member name="device_removed"
- value="2147483650"
- c:identifier="GST_MESSAGE_DEVICE_REMOVED"
- glib:nick="device-removed">
- <doc xml:space="preserve">Message indicating a #GstDevice was removed
- from a #GstDeviceProvider (Since 1.4)</doc>
- </member>
- <member name="any"
- value="4294967295"
- c:identifier="GST_MESSAGE_ANY"
- glib:nick="any">
- <doc xml:space="preserve">mask for all of the above messages.</doc>
- </member>
- <function name="get_name" c:identifier="gst_message_type_get_name">
- <doc xml:space="preserve">Get a printable name for the given message type. Do not modify or free.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a reference to the static name of the message.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the message type</doc>
- <type name="MessageType" c:type="GstMessageType"/>
- </parameter>
- </parameters>
- </function>
- <function name="to_quark" c:identifier="gst_message_type_to_quark">
- <doc xml:space="preserve">Get the unique quark for the given message type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the quark associated with the message type</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the message type</doc>
- <type name="MessageType" c:type="GstMessageType"/>
- </parameter>
- </parameters>
- </function>
- </bitfield>
- <record name="Meta" c:type="GstMeta">
- <doc xml:space="preserve">The #GstMeta structure should be included as the first member of a #GstBuffer
- metadata structure. The structure defines the API of the metadata and should
- be accessible to all elements using the metadata.
- A metadata API is registered with gst_meta_api_type_register() which takes a
- name for the metadata API and some tags associated with the metadata.
- With gst_meta_api_type_has_tag() one can check if a certain metadata API
- contains a given tag.
- Multiple implementations of a metadata API can be registered.
- To implement a metadata API, gst_meta_register() should be used. This
- function takes all parameters needed to create, free and transform metadata
- along with the size of the metadata. The function returns a #GstMetaInfo
- structure that contains the information for the implementation of the API.
- A specific implementation can be retrieved by name with gst_meta_get_info().
- See #GstBuffer for how the metadata can be added, retrieved and removed from
- buffers.</doc>
- <field name="flags" writable="1">
- <doc xml:space="preserve">extra flags for the metadata</doc>
- <type name="MetaFlags" c:type="GstMetaFlags"/>
- </field>
- <field name="info" writable="1">
- <doc xml:space="preserve">pointer to the #GstMetaInfo</doc>
- <type name="MetaInfo" c:type="const GstMetaInfo*"/>
- </field>
- <function name="api_type_get_tags"
- c:identifier="gst_meta_api_type_get_tags"
- version="1.2">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an array of tags as strings.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="api" transfer-ownership="none">
- <doc xml:space="preserve">an API</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </function>
- <function name="api_type_has_tag"
- c:identifier="gst_meta_api_type_has_tag">
- <doc xml:space="preserve">Check if @api was registered with @tag.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @api was registered with @tag.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="api" transfer-ownership="none">
- <doc xml:space="preserve">an API</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">the tag to check</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- </parameters>
- </function>
- <function name="api_type_register"
- c:identifier="gst_meta_api_type_register">
- <doc xml:space="preserve">Register and return a GType for the @api and associate it with
- @tags.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a unique GType for @api.</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <parameter name="api" transfer-ownership="none">
- <doc xml:space="preserve">an API to register</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="tags" transfer-ownership="none">
- <doc xml:space="preserve">tags for @api</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_info" c:identifier="gst_meta_get_info">
- <doc xml:space="preserve">Lookup a previously registered meta info structure by its implementation name
- @impl.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a #GstMetaInfo with @impl, or
- %NULL when no such metainfo exists.</doc>
- <type name="MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- <parameters>
- <parameter name="impl" transfer-ownership="none">
- <doc xml:space="preserve">the name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="register" c:identifier="gst_meta_register">
- <doc xml:space="preserve">Register a new #GstMeta implementation.
- The same @info can be retrieved later with gst_meta_get_info() by using
- @impl as the key.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstMetaInfo that can be used to access metadata.</doc>
- <type name="MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- <parameters>
- <parameter name="api" transfer-ownership="none">
- <doc xml:space="preserve">the type of the #GstMeta API</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="impl" transfer-ownership="none">
- <doc xml:space="preserve">the name of the #GstMeta implementation</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size of the #GstMeta structure</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="init_func" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">a #GstMetaInitFunction</doc>
- <type name="MetaInitFunction" c:type="GstMetaInitFunction"/>
- </parameter>
- <parameter name="free_func" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">a #GstMetaFreeFunction</doc>
- <type name="MetaFreeFunction" c:type="GstMetaFreeFunction"/>
- </parameter>
- <parameter name="transform_func"
- transfer-ownership="none"
- scope="async">
- <doc xml:space="preserve">a #GstMetaTransformFunction</doc>
- <type name="MetaTransformFunction"
- c:type="GstMetaTransformFunction"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <bitfield name="MetaFlags"
- glib:type-name="GstMetaFlags"
- glib:get-type="gst_meta_flags_get_type"
- c:type="GstMetaFlags">
- <doc xml:space="preserve">Extra metadata flags.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_META_FLAG_NONE"
- glib:nick="none">
- <doc xml:space="preserve">no flags</doc>
- </member>
- <member name="readonly"
- value="1"
- c:identifier="GST_META_FLAG_READONLY"
- glib:nick="readonly">
- <doc xml:space="preserve">metadata should not be modified</doc>
- </member>
- <member name="pooled"
- value="2"
- c:identifier="GST_META_FLAG_POOLED"
- glib:nick="pooled">
- <doc xml:space="preserve">metadata is managed by a bufferpool</doc>
- </member>
- <member name="locked"
- value="4"
- c:identifier="GST_META_FLAG_LOCKED"
- glib:nick="locked">
- <doc xml:space="preserve">metadata should not be removed</doc>
- </member>
- <member name="last"
- value="65536"
- c:identifier="GST_META_FLAG_LAST"
- glib:nick="last">
- <doc xml:space="preserve">additional flags can be added starting from this flag.</doc>
- </member>
- </bitfield>
- <callback name="MetaFreeFunction" c:type="GstMetaFreeFunction">
- <doc xml:space="preserve">Function called when @meta is freed in @buffer.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="meta" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMeta</doc>
- <type name="Meta" c:type="GstMeta*"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </callback>
- <record name="MetaInfo" c:type="GstMetaInfo">
- <doc xml:space="preserve">The #GstMetaInfo provides information about a specific metadata
- structure.</doc>
- <field name="api" writable="1">
- <doc xml:space="preserve">tag identifying the metadata structure and api</doc>
- <type name="GType" c:type="GType"/>
- </field>
- <field name="type" writable="1">
- <doc xml:space="preserve">type identifying the implementor of the api</doc>
- <type name="GType" c:type="GType"/>
- </field>
- <field name="size" writable="1">
- <doc xml:space="preserve">size of the metadata</doc>
- <type name="gsize" c:type="gsize"/>
- </field>
- <field name="init_func" writable="1">
- <doc xml:space="preserve">function for initializing the metadata</doc>
- <type name="MetaInitFunction" c:type="GstMetaInitFunction"/>
- </field>
- <field name="free_func" writable="1">
- <doc xml:space="preserve">function for freeing the metadata</doc>
- <type name="MetaFreeFunction" c:type="GstMetaFreeFunction"/>
- </field>
- <field name="transform_func" writable="1">
- <doc xml:space="preserve">function for transforming the metadata</doc>
- <type name="MetaTransformFunction" c:type="GstMetaTransformFunction"/>
- </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="MetaInitFunction" c:type="GstMetaInitFunction">
- <doc xml:space="preserve">Function called when @meta is initialized in @buffer.</doc>
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="meta" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMeta</doc>
- <type name="Meta" c:type="GstMeta*"/>
- </parameter>
- <parameter name="params"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">parameters passed to the init function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </callback>
- <record name="MetaTransformCopy" c:type="GstMetaTransformCopy">
- <doc xml:space="preserve">Extra data passed to a "gst-copy" transform #GstMetaTransformFunction.</doc>
- <field name="region" writable="1">
- <doc xml:space="preserve">%TRUE if only region is copied</doc>
- <type name="gboolean" c:type="gboolean"/>
- </field>
- <field name="offset" writable="1">
- <doc xml:space="preserve">the offset to copy, 0 if @region is %FALSE, otherwise > 0</doc>
- <type name="gsize" c:type="gsize"/>
- </field>
- <field name="size" writable="1">
- <doc xml:space="preserve">the size to copy, -1 or the buffer size when @region is %FALSE</doc>
- <type name="gsize" c:type="gsize"/>
- </field>
- </record>
- <callback name="MetaTransformFunction" c:type="GstMetaTransformFunction">
- <doc xml:space="preserve">Function called for each @meta in @buffer as a result of performing a
- transformation on @transbuf. Additional @type specific transform data
- is passed to the function as @data.
- Implementations should check the @type of the transform and parse
- additional type specific fields in @data that should be used to update
- the metadata on @transbuf.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the transform could be performed</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="transbuf" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="meta" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMeta</doc>
- <type name="Meta" c:type="GstMeta*"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the transform type</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">transform specific data.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <record name="MiniObject" c:type="GstMiniObject">
- <doc xml:space="preserve">#GstMiniObject is a simple structure that can be used to implement refcounted
- types.
- Subclasses will include #GstMiniObject as the first member in their structure
- and then call gst_mini_object_init() to initialize the #GstMiniObject fields.
- gst_mini_object_ref() and gst_mini_object_unref() increment and decrement the
- refcount respectively. When the refcount of a mini-object reaches 0, the
- dispose function is called first and when this returns %TRUE, the free
- function of the miniobject is called.
- A copy can be made with gst_mini_object_copy().
- gst_mini_object_is_writable() will return %TRUE when the refcount of the
- object is exactly 1, meaning the current caller has the only reference to the
- object. gst_mini_object_make_writable() will return a writable version of the
- object, which might be a new copy when the refcount was not 1.
- Opaque data can be associated with a #GstMiniObject with
- gst_mini_object_set_qdata() and gst_mini_object_get_qdata(). The data is
- meant to be specific to the particular object and is not automatically copied
- with gst_mini_object_copy() or similar methods.
- A weak reference can be added and remove with gst_mini_object_weak_ref()
- and gst_mini_object_weak_unref() respectively.</doc>
- <field name="type" writable="1">
- <doc xml:space="preserve">the GType of the object</doc>
- <type name="GType" c:type="GType"/>
- </field>
- <field name="refcount" writable="1">
- <doc xml:space="preserve">atomic refcount</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="lockstate" writable="1">
- <doc xml:space="preserve">atomic state of the locks</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="flags" writable="1">
- <doc xml:space="preserve">extra flags.</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="copy" introspectable="0" writable="1">
- <doc xml:space="preserve">a copy function</doc>
- <type name="MiniObjectCopyFunction"
- c:type="GstMiniObjectCopyFunction"/>
- </field>
- <field name="dispose" writable="1">
- <doc xml:space="preserve">a dispose function</doc>
- <type name="MiniObjectDisposeFunction"
- c:type="GstMiniObjectDisposeFunction"/>
- </field>
- <field name="free" writable="1">
- <doc xml:space="preserve">the free function</doc>
- <type name="MiniObjectFreeFunction"
- c:type="GstMiniObjectFreeFunction"/>
- </field>
- <field name="n_qdata" readable="0" private="1">
- <type name="guint" c:type="guint"/>
- </field>
- <field name="qdata" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <method name="copy"
- c:identifier="gst_mini_object_copy"
- introspectable="0">
- <doc xml:space="preserve">Creates a copy of the mini-object.
- MT safe</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new mini-object.</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mini_object" transfer-ownership="none">
- <doc xml:space="preserve">the mini-object to copy</doc>
- <type name="MiniObject" c:type="const GstMiniObject*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_qdata" c:identifier="gst_mini_object_get_qdata">
- <doc xml:space="preserve">This function gets back user data pointers stored via
- gst_mini_object_set_qdata().</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">The user data pointer set, or
- %NULL</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">The GstMiniObject to get a stored user data pointer from</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </instance-parameter>
- <parameter name="quark" transfer-ownership="none">
- <doc xml:space="preserve">A #GQuark, naming the user data pointer</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- </parameters>
- </method>
- <method name="init"
- c:identifier="gst_mini_object_init"
- introspectable="0">
- <doc xml:space="preserve">Initializes a mini-object with the desired type and copy/dispose/free
- functions.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mini_object" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMiniObject</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">initial #GstMiniObjectFlags</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the #GType of the mini-object to create</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="copy_func"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the copy function, or %NULL</doc>
- <type name="MiniObjectCopyFunction"
- c:type="GstMiniObjectCopyFunction"/>
- </parameter>
- <parameter name="dispose_func"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the dispose function, or %NULL</doc>
- <type name="MiniObjectDisposeFunction"
- c:type="GstMiniObjectDisposeFunction"/>
- </parameter>
- <parameter name="free_func"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the free function or %NULL</doc>
- <type name="MiniObjectFreeFunction"
- c:type="GstMiniObjectFreeFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_writable" c:identifier="gst_mini_object_is_writable">
- <doc xml:space="preserve">If @mini_object has the LOCKABLE flag set, check if the current EXCLUSIVE
- lock on @object is the only one, this means that changes to the object will
- not be visible to any other object.
- If the LOCKABLE flag is not set, check if the refcount of @mini_object is
- exactly 1, meaning that no other reference exists to the object and that the
- object is therefore writable.
- Modification of a mini-object should only be done after verifying that it
- is writable.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the object is writable.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mini_object" transfer-ownership="none">
- <doc xml:space="preserve">the mini-object to check</doc>
- <type name="MiniObject" c:type="const GstMiniObject*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="lock" c:identifier="gst_mini_object_lock">
- <doc xml:space="preserve">Lock the mini-object with the specified access mode in @flags.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @object could be locked.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the mini-object to lock</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GstLockFlags</doc>
- <type name="LockFlags" c:type="GstLockFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="make_writable"
- c:identifier="gst_mini_object_make_writable"
- introspectable="0">
- <doc xml:space="preserve">Checks if a mini-object is writable. If not, a writable copy is made and
- returned. This gives away the reference to the original mini object,
- and returns a reference to the new object.
- MT safe</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a mini-object (possibly the same pointer) that
- is writable.</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mini_object" transfer-ownership="full">
- <doc xml:space="preserve">the mini-object to make writable</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="ref" c:identifier="gst_mini_object_ref" introspectable="0">
- <doc xml:space="preserve">Increase the reference count of the mini-object.
- Note that the refcount affects the writability
- of @mini-object, see gst_mini_object_is_writable(). It is
- important to note that keeping additional references to
- GstMiniObject instances can potentially increase the number
- of memcpy operations in a pipeline, especially if the miniobject
- is a #GstBuffer.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the mini-object.</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mini_object" transfer-ownership="none">
- <doc xml:space="preserve">the mini-object</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_qdata" c:identifier="gst_mini_object_set_qdata">
- <doc xml:space="preserve">This sets an opaque, named pointer on a miniobject.
- The name is specified through a #GQuark (retrieved e.g. via
- g_quark_from_static_string()), and the pointer
- can be gotten back from the @object with gst_mini_object_get_qdata()
- until the @object is disposed.
- Setting a previously set user data pointer, overrides (frees)
- the old pointer set, using %NULL as pointer essentially
- removes the data stored.
- @destroy may be specified which is called with @data as argument
- when the @object is disposed, or the data is being overwritten by
- a call to gst_mini_object_set_qdata() with the same @quark.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMiniObject</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </instance-parameter>
- <parameter name="quark" transfer-ownership="none">
- <doc xml:space="preserve">A #GQuark, naming the user data pointer</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">An opaque user data pointer</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="destroy" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">Function to invoke with @data as argument, when @data
- needs to be freed</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="steal_qdata" c:identifier="gst_mini_object_steal_qdata">
- <doc xml:space="preserve">This function gets back user data pointers stored via gst_mini_object_set_qdata()
- and removes the data from @object without invoking its destroy() function (if
- any was set).</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">The user data pointer set, or
- %NULL</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">The GstMiniObject to get a stored user data pointer from</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </instance-parameter>
- <parameter name="quark" transfer-ownership="none">
- <doc xml:space="preserve">A #GQuark, naming the user data pointer</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- </parameters>
- </method>
- <method name="unlock" c:identifier="gst_mini_object_unlock">
- <doc xml:space="preserve">Unlock the mini-object with the specified access mode in @flags.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the mini-object to unlock</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GstLockFlags</doc>
- <type name="LockFlags" c:type="GstLockFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="unref"
- c:identifier="gst_mini_object_unref"
- introspectable="0">
- <doc xml:space="preserve">Decreases the reference count of the mini-object, possibly freeing
- the mini-object.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mini_object" transfer-ownership="none">
- <doc xml:space="preserve">the mini-object</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="weak_ref"
- c:identifier="gst_mini_object_weak_ref"
- introspectable="0">
- <doc xml:space="preserve">Adds a weak reference callback to a mini object. Weak references are
- used for notification when a mini object is finalized. They are called
- "weak references" because they allow you to safely hold a pointer
- to the mini object without calling gst_mini_object_ref()
- (gst_mini_object_ref() adds a strong reference, that is, forces the object
- to stay alive).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">#GstMiniObject to reference weakly</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </instance-parameter>
- <parameter name="notify" transfer-ownership="none" closure="1">
- <doc xml:space="preserve">callback to invoke before the mini object is freed</doc>
- <type name="MiniObjectNotify" c:type="GstMiniObjectNotify"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">extra data to pass to notify</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="weak_unref"
- c:identifier="gst_mini_object_weak_unref"
- introspectable="0">
- <doc xml:space="preserve">Removes a weak reference callback from a mini object.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">#GstMiniObject to remove a weak reference from</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </instance-parameter>
- <parameter name="notify" transfer-ownership="none" closure="1">
- <doc xml:space="preserve">callback to search for</doc>
- <type name="MiniObjectNotify" c:type="GstMiniObjectNotify"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data to search for</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <function name="replace" c:identifier="gst_mini_object_replace">
- <doc xml:space="preserve">Atomically modifies a pointer to point to a new mini-object.
- The reference count of @olddata is decreased and the reference count of
- @newdata is increased.
- Either @newdata and the value pointed to by @olddata may be %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @newdata was different from @olddata</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="olddata"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to a pointer to a
- mini-object to be replaced</doc>
- <type name="MiniObject" c:type="GstMiniObject**"/>
- </parameter>
- <parameter name="newdata"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to new mini-object</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </parameter>
- </parameters>
- </function>
- <function name="steal"
- c:identifier="gst_mini_object_steal"
- introspectable="0">
- <doc xml:space="preserve">Replace the current #GstMiniObject pointer to by @olddata with %NULL and
- return the old value.</doc>
- <return-value>
- <doc xml:space="preserve">the #GstMiniObject at @oldata</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </return-value>
- <parameters>
- <parameter name="olddata"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">pointer to a pointer to a mini-object to
- be stolen</doc>
- <type name="MiniObject" c:type="GstMiniObject**"/>
- </parameter>
- </parameters>
- </function>
- <function name="take" c:identifier="gst_mini_object_take">
- <doc xml:space="preserve">Modifies a pointer to point to a new mini-object. The modification
- is done atomically. This version is similar to gst_mini_object_replace()
- except that it does not increase the refcount of @newdata and thus
- takes ownership of @newdata.
- Either @newdata and the value pointed to by @olddata may be %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @newdata was different from @olddata</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="olddata"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">pointer to a pointer to a mini-object to
- be replaced</doc>
- <type name="MiniObject" c:type="GstMiniObject**"/>
- </parameter>
- <parameter name="newdata" transfer-ownership="none">
- <doc xml:space="preserve">pointer to new mini-object</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <callback name="MiniObjectCopyFunction"
- c:type="GstMiniObjectCopyFunction"
- introspectable="0">
- <doc xml:space="preserve">Function prototype for methods to create copies of instances.</doc>
- <return-value>
- <doc xml:space="preserve">reference to cloned instance.</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </return-value>
- <parameters>
- <parameter name="obj" transfer-ownership="none">
- <doc xml:space="preserve">MiniObject to copy</doc>
- <type name="MiniObject" c:type="const GstMiniObject*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="MiniObjectDisposeFunction"
- c:type="GstMiniObjectDisposeFunction">
- <doc xml:space="preserve">Function prototype for when a miniobject has lost its last refcount.
- Implementation of the mini object are allowed to revive the
- passed object by doing a gst_mini_object_ref(). If the object is not
- revived after the dispose function, the function should return %TRUE
- and the memory associated with the object is freed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the object should be cleaned up.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="obj" transfer-ownership="none">
- <doc xml:space="preserve">MiniObject to dispose</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="MiniObjectFlags"
- glib:type-name="GstMiniObjectFlags"
- glib:get-type="gst_mini_object_flags_get_type"
- c:type="GstMiniObjectFlags">
- <doc xml:space="preserve">Flags for the mini object</doc>
- <member name="lockable"
- value="1"
- c:identifier="GST_MINI_OBJECT_FLAG_LOCKABLE"
- glib:nick="lockable">
- <doc xml:space="preserve">the object can be locked and unlocked with
- gst_mini_object_lock() and gst_mini_object_unlock().</doc>
- </member>
- <member name="lock_readonly"
- value="2"
- c:identifier="GST_MINI_OBJECT_FLAG_LOCK_READONLY"
- glib:nick="lock-readonly">
- <doc xml:space="preserve">the object is permanently locked in
- READONLY mode. Only read locks can be performed on the object.</doc>
- </member>
- <member name="last"
- value="16"
- c:identifier="GST_MINI_OBJECT_FLAG_LAST"
- glib:nick="last">
- <doc xml:space="preserve">first flag that can be used by subclasses.</doc>
- </member>
- </bitfield>
- <callback name="MiniObjectFreeFunction" c:type="GstMiniObjectFreeFunction">
- <doc xml:space="preserve">Virtual function prototype for methods to free resources used by
- mini-objects.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="obj" transfer-ownership="none">
- <doc xml:space="preserve">MiniObject to free</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="MiniObjectNotify" c:type="GstMiniObjectNotify">
- <doc xml:space="preserve">A #GstMiniObjectNotify function can be added to a mini object as a
- callback that gets triggered when gst_mini_object_unref() drops the
- last ref and @obj is about to be freed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="0">
- <doc xml:space="preserve">data that was provided when the notify was added</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="obj" transfer-ownership="none">
- <doc xml:space="preserve">the mini object</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </parameter>
- </parameters>
- </callback>
- <constant name="NSECOND" value="1" c:type="GST_NSECOND">
- <doc xml:space="preserve">Constant that defines one GStreamer nanosecond</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <class name="Object"
- c:symbol-prefix="object"
- c:type="GstObject"
- parent="GObject.InitiallyUnowned"
- abstract="1"
- glib:type-name="GstObject"
- glib:get-type="gst_object_get_type"
- glib:type-struct="ObjectClass">
- <doc xml:space="preserve">#GstObject provides a root for the object hierarchy tree filed in by the
- GStreamer library. It is currently a thin wrapper on top of
- #GInitiallyUnowned. It is an abstract class that is not very usable on its own.
- #GstObject gives us basic refcounting, parenting functionality and locking.
- Most of the functions are just extended for special GStreamer needs and can be
- found under the same name in the base class of #GstObject which is #GObject
- (e.g. g_object_ref() becomes gst_object_ref()).
- Since #GstObject derives from #GInitiallyUnowned, it also inherits the
- floating reference. Be aware that functions such as gst_bin_add() and
- gst_element_add_pad() take ownership of the floating reference.
- In contrast to #GObject instances, #GstObject adds a name property. The functions
- gst_object_set_name() and gst_object_get_name() are used to set/get the name
- of the object.
- <refsect2>
- <title>controlled properties</title>
- <para>
- Controlled properties offers a lightweight way to adjust gobject properties
- over stream-time. It works by using time-stamped value pairs that are queued
- for element-properties. At run-time the elements continuously pull value
- changes for the current stream-time.
- What needs to be changed in a #GstElement?
- Very little - it is just two steps to make a plugin controllable!
- <orderedlist>
- <listitem><para>
- mark gobject-properties paramspecs that make sense to be controlled,
- by GST_PARAM_CONTROLLABLE.
- </para></listitem>
- <listitem><para>
- when processing data (get, chain, loop function) at the beginning call
- gst_object_sync_values(element,timestamp).
- This will make the controller update all GObject properties that are
- under its control with the current values based on the timestamp.
- </para></listitem>
- </orderedlist>
- What needs to be done in applications?
- Again it's not a lot to change.
- <orderedlist>
- <listitem><para>
- create a #GstControlSource.
- csource = gst_interpolation_control_source_new ();
- g_object_set (csource, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
- </para></listitem>
- <listitem><para>
- Attach the #GstControlSource on the controller to a property.
- gst_object_add_control_binding (object, gst_direct_control_binding_new (object, "prop1", csource));
- </para></listitem>
- <listitem><para>
- Set the control values
- gst_timed_value_control_source_set ((GstTimedValueControlSource *)csource,0 * GST_SECOND, value1);
- gst_timed_value_control_source_set ((GstTimedValueControlSource *)csource,1 * GST_SECOND, value2);
- </para></listitem>
- <listitem><para>
- start your pipeline
- </para></listitem>
- </orderedlist>
- </para>
- </refsect2></doc>
- <function name="check_uniqueness"
- c:identifier="gst_object_check_uniqueness">
- <doc xml:space="preserve">Checks to see if there is any object named @name in @list. This function
- does not do any locking of any kind. You might want to protect the
- provided list with the lock of the owner of the list. This function
- will lock each #GstObject in the list to compare the name, so be
- careful when passing a list with a locked object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a #GstObject named @name does not appear in @list,
- %FALSE if it does.
- MT safe. Grabs and releases the LOCK of each object in the list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a list of #GstObject to
- check through</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Object"/>
- </type>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name to search for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="default_deep_notify"
- c:identifier="gst_object_default_deep_notify">
- <doc xml:space="preserve">A default deep_notify signal callback for an object. The user data
- should contain a pointer to an array of strings that should be excluded
- from the notify. The default handler will print the new value of the property
- using g_print.
- MT safe. This function grabs and releases @object's LOCK for getting its
- path string.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the #GObject that signalled the notify.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="orig" transfer-ownership="none">
- <doc xml:space="preserve">a #GstObject that initiated the notify.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="pspec" transfer-ownership="none">
- <doc xml:space="preserve">a #GParamSpec of the property.</doc>
- <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
- </parameter>
- <parameter name="excluded_props"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">
- a set of user-specified properties to exclude or %NULL to show
- all changes.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="ref_sink"
- c:identifier="gst_object_ref_sink"
- introspectable="0">
- <doc xml:space="preserve">Increase the reference count of @object, and possibly remove the floating
- reference, if @object has a floating reference.
- In other words, if the object is floating, then this call "assumes ownership"
- of the floating reference, converting it to a normal reference by clearing
- the floating flag while leaving the reference count unchanged. If the object
- is not floating, then this call adds a new normal reference increasing the
- reference count by one.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstObject to sink</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="replace" c:identifier="gst_object_replace">
- <doc xml:space="preserve">Atomically modifies a pointer to point to a new object.
- The reference count of @oldobj is decreased and the reference count of
- @newobj is increased.
- Either @newobj and the value pointed to by @oldobj may be %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @newobj was different from @oldobj</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="oldobj"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to a place of
- a #GstObject to replace</doc>
- <type name="Object" c:type="GstObject**"/>
- </parameter>
- <parameter name="newobj"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a new #GstObject</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="deep_notify">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="orig" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="pspec" transfer-ownership="none">
- <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="add_control_binding"
- c:identifier="gst_object_add_control_binding">
- <doc xml:space="preserve">Attach the #GstControlBinding to the object. If there already was a
- #GstControlBinding for this property it will be replaced.
- The @object will take ownership of the @binding.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE if the given @binding has not been setup for this object or
- has been setup for a non suitable property, %TRUE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the controller object</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="binding" transfer-ownership="full">
- <doc xml:space="preserve">the #GstControlBinding that should be used</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </parameter>
- </parameters>
- </method>
- <method name="default_error" c:identifier="gst_object_default_error">
- <doc xml:space="preserve">A default error function that uses g_printerr() to display the error message
- and the optional debug sting..
- The default handler will simply print the error string using g_print.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">the #GstObject that initiated the error.</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">the GError.</doc>
- <type name="GLib.Error" c:type="const GError*"/>
- </parameter>
- <parameter name="debug"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an additional debug information string, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_control_binding"
- c:identifier="gst_object_get_control_binding">
- <doc xml:space="preserve">Gets the corresponding #GstControlBinding for the property. This should be
- unreferenced again after use.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the #GstControlBinding for
- @property_name or %NULL if the property is not controlled.</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="property_name" transfer-ownership="none">
- <doc xml:space="preserve">name of the property</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_control_rate"
- c:identifier="gst_object_get_control_rate">
- <doc xml:space="preserve">Obtain the control-rate for this @object. Audio processing #GstElement
- objects will use this rate to sub-divide their processing loop and call
- gst_object_sync_values() inbetween. The length of the processing segment
- should be up to @control-rate nanoseconds.
- If the @object is not under property control, this will return
- %GST_CLOCK_TIME_NONE. This allows the element to avoid the sub-dividing.
- The control-rate is not expected to change if the element is in
- %GST_STATE_PAUSED or %GST_STATE_PLAYING.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the control rate in nanoseconds</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object that has controlled properties</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_g_value_array"
- c:identifier="gst_object_get_g_value_array">
- <doc xml:space="preserve">Gets a number of #GValues for the given controlled property starting at the
- requested time. The array @values need to hold enough space for @n_values of
- #GValue.
- This function is useful if one wants to e.g. draw a graph of the control
- curve or apply a control curve sample by sample.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object that has controlled properties</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="property_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the property to get</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time that should be processed</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="interval" transfer-ownership="none">
- <doc xml:space="preserve">the time spacing between subsequent values</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="n_values" transfer-ownership="none">
- <doc xml:space="preserve">the number of values</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="values" transfer-ownership="none">
- <doc xml:space="preserve">array to put control-values in</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_name" c:identifier="gst_object_get_name">
- <doc xml:space="preserve">Returns a copy of the name of @object.
- Caller should g_free() the return value after usage.
- For a nameless object, this returns %NULL, which you can safely g_free()
- as well.
- Free-function: g_free</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the name of @object. g_free()
- after usage.
- MT safe. This function grabs and releases @object's LOCK.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GstObject</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_parent" c:identifier="gst_object_get_parent">
- <doc xml:space="preserve">Returns the parent of @object. This function increases the refcount
- of the parent object so you should gst_object_unref() it after usage.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">parent of @object, this can be
- %NULL if @object has no parent. unref after usage.
- MT safe. Grabs and releases @object's LOCK.</doc>
- <type name="Object" c:type="GstObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GstObject</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_path_string" c:identifier="gst_object_get_path_string">
- <doc xml:space="preserve">Generates a string describing the path of @object in
- the object hierarchy. Only useful (or used) for debugging.
- Free-function: g_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string describing the path of @object. You must
- g_free() the string after usage.
- MT safe. Grabs and releases the #GstObject's LOCK for all objects
- in the hierarchy.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GstObject</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_value" c:identifier="gst_object_get_value">
- <doc xml:space="preserve">Gets the value for the given controlled property at the requested time.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the GValue of the property at the given time,
- or %NULL if the property isn't controlled.</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object that has controlled properties</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="property_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the property to get</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time the control-change should be read from</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_value_array" c:identifier="gst_object_get_value_array">
- <doc xml:space="preserve">Gets a number of values for the given controlled property starting at the
- requested time. The array @values need to hold enough space for @n_values of
- the same type as the objects property's type.
- This function is useful if one wants to e.g. draw a graph of the control
- curve or apply a control curve sample by sample.
- The values are unboxed and ready to be used. The similar function
- gst_object_get_g_value_array() returns the array as #GValues and is
- better suites for bindings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object that has controlled properties</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="property_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the property to get</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time that should be processed</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="interval" transfer-ownership="none">
- <doc xml:space="preserve">the time spacing between subsequent values</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="n_values" transfer-ownership="none">
- <doc xml:space="preserve">the number of values</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="values"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">array to put control-values in</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_active_control_bindings"
- c:identifier="gst_object_has_active_control_bindings">
- <doc xml:space="preserve">Check if the @object has an active controlled properties.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the object has active controlled properties</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object that has controlled properties</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_ancestor"
- c:identifier="gst_object_has_ancestor"
- deprecated="1">
- <doc xml:space="preserve">Check if @object has an ancestor @ancestor somewhere up in
- the hierarchy. One can e.g. check if a #GstElement is inside a #GstPipeline.</doc>
- <doc-deprecated xml:space="preserve">Use gst_object_has_as_ancestor() instead.
- MT safe. Grabs and releases @object's locks.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @ancestor is an ancestor of @object.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GstObject to check</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="ancestor" transfer-ownership="none">
- <doc xml:space="preserve">a #GstObject to check as ancestor</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_as_ancestor" c:identifier="gst_object_has_as_ancestor">
- <doc xml:space="preserve">Check if @object has an ancestor @ancestor somewhere up in
- the hierarchy. One can e.g. check if a #GstElement is inside a #GstPipeline.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @ancestor is an ancestor of @object.
- MT safe. Grabs and releases @object's locks.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GstObject to check</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="ancestor" transfer-ownership="none">
- <doc xml:space="preserve">a #GstObject to check as ancestor</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_as_parent"
- c:identifier="gst_object_has_as_parent"
- version="1.6">
- <doc xml:space="preserve">Check if @parent is the parent of @object.
- E.g. a #GstElement can check if it owns a given #GstPad.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE if either @object or @parent is %NULL. %TRUE if @parent is
- the parent of @object. Otherwise %FALSE.
- MT safe. Grabs and releases @object's locks.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GstObject to check</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">a #GstObject to check as parent</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </method>
- <method name="ref" c:identifier="gst_object_ref">
- <doc xml:space="preserve">Increments the reference count on @object. This function
- does not take the lock on @object because it relies on
- atomic refcounting.
- This object returns the input parameter to ease writing
- constructs like :
- result = gst_object_ref (object->parent);</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A pointer to @object</doc>
- <type name="Object" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GstObject to reference</doc>
- <type name="Object" c:type="gpointer"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="remove_control_binding"
- c:identifier="gst_object_remove_control_binding">
- <doc xml:space="preserve">Removes the corresponding #GstControlBinding. If it was the
- last ref of the binding, it will be disposed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the binding could be removed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="binding" transfer-ownership="none">
- <doc xml:space="preserve">the binding</doc>
- <type name="ControlBinding" c:type="GstControlBinding*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_control_binding_disabled"
- c:identifier="gst_object_set_control_binding_disabled">
- <doc xml:space="preserve">This function is used to disable the control bindings on a property for
- some time, i.e. gst_object_sync_values() will do nothing for the
- property.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object that has controlled properties</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="property_name" transfer-ownership="none">
- <doc xml:space="preserve">property to disable</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="disabled" transfer-ownership="none">
- <doc xml:space="preserve">boolean that specifies whether to disable the controller
- or not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_control_bindings_disabled"
- c:identifier="gst_object_set_control_bindings_disabled">
- <doc xml:space="preserve">This function is used to disable all controlled properties of the @object for
- some time, i.e. gst_object_sync_values() will do nothing.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object that has controlled properties</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="disabled" transfer-ownership="none">
- <doc xml:space="preserve">boolean that specifies whether to disable the controller
- or not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_control_rate"
- c:identifier="gst_object_set_control_rate">
- <doc xml:space="preserve">Change the control-rate for this @object. Audio processing #GstElement
- objects will use this rate to sub-divide their processing loop and call
- gst_object_sync_values() inbetween. The length of the processing segment
- should be up to @control-rate nanoseconds.
- The control-rate should not change if the element is in %GST_STATE_PAUSED or
- %GST_STATE_PLAYING.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object that has controlled properties</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="control_rate" transfer-ownership="none">
- <doc xml:space="preserve">the new control-rate in nanoseconds.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_name" c:identifier="gst_object_set_name">
- <doc xml:space="preserve">Sets the name of @object, or gives @object a guaranteed unique
- name (if @name is %NULL).
- This function makes a copy of the provided name, so the caller
- retains ownership of the name it sent.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the name could be set. Since Objects that have
- a parent cannot be renamed, this function returns %FALSE in those
- cases.
- MT safe. This function grabs and releases @object's LOCK.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GstObject</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">new name of object</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_parent" c:identifier="gst_object_set_parent">
- <doc xml:space="preserve">Sets the parent of @object to @parent. The object's reference count will
- be incremented, and any floating reference will be removed (see gst_object_ref_sink()).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @parent could be set or %FALSE when @object
- already had a parent or @object and @parent are the same.
- MT safe. Grabs and releases @object's LOCK.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GstObject</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">new parent of object</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </method>
- <method name="suggest_next_sync"
- c:identifier="gst_object_suggest_next_sync">
- <doc xml:space="preserve">Returns a suggestion for timestamps where buffers should be split
- to get best controller results.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Returns the suggested timestamp or %GST_CLOCK_TIME_NONE
- if no control-rate was set.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object that has controlled properties</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="sync_values" c:identifier="gst_object_sync_values">
- <doc xml:space="preserve">Sets the properties of the object, according to the #GstControlSources that
- (maybe) handle them and for the given timestamp.
- If this function fails, it is most likely the application developers fault.
- Most probably the control sources are not setup correctly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the controller values could be applied to the object
- properties, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object that has controlled properties</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the time that should be processed</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="unparent" c:identifier="gst_object_unparent">
- <doc xml:space="preserve">Clear the parent of @object, removing the associated reference.
- This function decreases the refcount of @object.
- MT safe. Grabs and releases @object's lock.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GstObject to unparent</doc>
- <type name="Object" c:type="GstObject*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref" c:identifier="gst_object_unref">
- <doc xml:space="preserve">Decrements the reference count on @object. If reference count hits
- zero, destroy @object. This function does not take the lock
- on @object as it relies on atomic refcounting.
- The unref method should never be called with the LOCK held since
- this might deadlock the dispose function.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GstObject to unreference</doc>
- <type name="Object" c:type="gpointer"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="name"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="parent" writable="1" transfer-ownership="none">
- <doc xml:space="preserve">The parent of the object. Please note, that when changing the 'parent'
- property, we don't emit #GObject::notify and #GstObject::deep-notify
- signals due to locking issues. In some cases one can use
- #GstBin::element-added or #GstBin::element-removed signals on the parent to
- achieve a similar effect.</doc>
- <type name="Object"/>
- </property>
- <field name="object">
- <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
- </field>
- <field name="lock">
- <doc xml:space="preserve">object LOCK</doc>
- <type name="GLib.Mutex" c:type="GMutex"/>
- </field>
- <field name="name">
- <doc xml:space="preserve">The name of the object</doc>
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="parent">
- <doc xml:space="preserve">this object's parent, weak ref</doc>
- <type name="Object" c:type="GstObject*"/>
- </field>
- <field name="flags">
- <doc xml:space="preserve">flags for this object</doc>
- <type name="guint32" c:type="guint32"/>
- </field>
- <field name="control_bindings" readable="0" private="1">
- <type name="GLib.List" c:type="GList*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </field>
- <field name="control_rate" readable="0" private="1">
- <type name="guint64" c:type="guint64"/>
- </field>
- <field name="last_sync" readable="0" private="1">
- <type name="guint64" c:type="guint64"/>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <glib:signal name="deep-notify"
- when="first"
- no-recurse="1"
- detailed="1"
- no-hooks="1">
- <doc xml:space="preserve">The deep notify signal is used to be notified of property changes. It is
- typically attached to the toplevel bin to receive notifications from all
- the elements contained in that bin.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="prop_object" transfer-ownership="none">
- <doc xml:space="preserve">the object that originated the signal</doc>
- <type name="Object"/>
- </parameter>
- <parameter name="prop" transfer-ownership="none">
- <doc xml:space="preserve">the property that changed</doc>
- <type name="GObject.ParamSpec"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="ObjectClass"
- c:type="GstObjectClass"
- glib:is-gtype-struct-for="Object">
- <doc xml:space="preserve">GStreamer base object class.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">parent</doc>
- <type name="GObject.InitiallyUnownedClass"
- c:type="GInitiallyUnownedClass"/>
- </field>
- <field name="path_string_separator">
- <doc xml:space="preserve">separator used by gst_object_get_path_string()</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="deep_notify">
- <callback name="deep_notify">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="orig" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="pspec" transfer-ownership="none">
- <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
- </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="ObjectFlags"
- glib:type-name="GstObjectFlags"
- glib:get-type="gst_object_flags_get_type"
- c:type="GstObjectFlags">
- <doc xml:space="preserve">The standard flags that an gstobject may have.</doc>
- <member name="last"
- value="16"
- c:identifier="GST_OBJECT_FLAG_LAST"
- glib:nick="last">
- <doc xml:space="preserve">subclasses can add additional flags starting from this flag</doc>
- </member>
- </bitfield>
- <constant name="PARAM_CONTROLLABLE"
- value="2"
- c:type="GST_PARAM_CONTROLLABLE">
- <doc xml:space="preserve">Use this flag on GObject properties to signal they can make sense to be.
- controlled over time. This hint is used by the GstController.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="PARAM_MUTABLE_PAUSED"
- value="8"
- c:type="GST_PARAM_MUTABLE_PAUSED">
- <doc xml:space="preserve">Use this flag on GObject properties of GstElements to indicate that
- they can be changed when the element is in the PAUSED or lower state.
- This flag implies GST_PARAM_MUTABLE_READY.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="PARAM_MUTABLE_PLAYING"
- value="16"
- c:type="GST_PARAM_MUTABLE_PLAYING">
- <doc xml:space="preserve">Use this flag on GObject properties of GstElements to indicate that
- they can be changed when the element is in the PLAYING or lower state.
- This flag implies GST_PARAM_MUTABLE_PAUSED.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="PARAM_MUTABLE_READY"
- value="4"
- c:type="GST_PARAM_MUTABLE_READY">
- <doc xml:space="preserve">Use this flag on GObject properties of GstElements to indicate that
- they can be changed when the element is in the READY or lower state.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="PARAM_USER_SHIFT"
- value="256"
- c:type="GST_PARAM_USER_SHIFT">
- <doc xml:space="preserve">Bits based on GST_PARAM_USER_SHIFT can be used by 3rd party applications.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="PROTECTION_SYSTEM_ID_CAPS_FIELD"
- value="protection-system"
- c:type="GST_PROTECTION_SYSTEM_ID_CAPS_FIELD"
- version="1.6">
- <doc xml:space="preserve">The field name in a GstCaps that is used to signal the UUID of the protection
- system.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="PTR_FORMAT" value="paA" c:type="GST_PTR_FORMAT">
- <doc xml:space="preserve">printf format type used to debug GStreamer types.
- This can only be used on types whose size is >= sizeof(gpointer).</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <class name="Pad"
- c:symbol-prefix="pad"
- c:type="GstPad"
- parent="Object"
- glib:type-name="GstPad"
- glib:get-type="gst_pad_get_type"
- glib:type-struct="PadClass">
- <doc xml:space="preserve">A #GstElement is linked to other elements via "pads", which are extremely
- light-weight generic link points.
- Pads have a #GstPadDirection, source pads produce data, sink pads consume
- data.
- Pads are typically created from a #GstPadTemplate with
- gst_pad_new_from_template() and are then added to a #GstElement. This usually
- happens when the element is created but it can also happen dynamically based
- on the data that the element is processing or based on the pads that the
- application requests.
- Pads without pad templates can be created with gst_pad_new(),
- which takes a direction and a name as an argument. If the name is %NULL,
- then a guaranteed unique name will be assigned to it.
- A #GstElement creating a pad will typically use the various
- gst_pad_set_*_function() calls to register callbacks for events, queries or
- dataflow on the pads.
- gst_pad_get_parent() will retrieve the #GstElement that owns the pad.
- After two pads are retrieved from an element by gst_element_get_static_pad(),
- the pads can be linked with gst_pad_link(). (For quick links,
- you can also use gst_element_link(), which will make the obvious
- link for you if it's straightforward.). Pads can be unlinked again with
- gst_pad_unlink(). gst_pad_get_peer() can be used to check what the pad is
- linked to.
- Before dataflow is possible on the pads, they need to be activated with
- gst_pad_set_active().
- gst_pad_query() and gst_pad_peer_query() can be used to query various
- properties of the pad and the stream.
- To send a #GstEvent on a pad, use gst_pad_send_event() and
- gst_pad_push_event(). Some events will be sticky on the pad, meaning that
- after they pass on the pad they can be queried later with
- gst_pad_get_sticky_event() and gst_pad_sticky_events_foreach().
- gst_pad_get_current_caps() and gst_pad_has_current_caps() are convenience
- functions to query the current sticky CAPS event on a pad.
- GstElements will use gst_pad_push() and gst_pad_pull_range() to push out
- or pull in a buffer.
- The dataflow, events and queries that happen on a pad can be monitored with
- probes that can be installed with gst_pad_add_probe(). gst_pad_is_blocked()
- can be used to check if a block probe is installed on the pad.
- gst_pad_is_blocking() checks if the blocking probe is currently blocking the
- pad. gst_pad_remove_probe() is used to remove a previously installed probe
- and unblock blocking probes if any.
- Pad have an offset that can be retrieved with gst_pad_get_offset(). This
- offset will be applied to the running_time of all data passing over the pad.
- gst_pad_set_offset() can be used to change the offset.
- Convenience functions exist to start, pause and stop the task on a pad with
- gst_pad_start_task(), gst_pad_pause_task() and gst_pad_stop_task()
- respectively.</doc>
- <constructor name="new" c:identifier="gst_pad_new">
- <doc xml:space="preserve">Creates a new pad with the given name in the given direction.
- If name is %NULL, a guaranteed unique name (across all pads)
- will be assigned.
- This function makes a copy of the name so you can safely free the name.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a new #GstPad, or %NULL in
- case of an error.
- MT safe.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the new pad.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="direction" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPadDirection of the pad.</doc>
- <type name="PadDirection" c:type="GstPadDirection"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_static_template"
- c:identifier="gst_pad_new_from_static_template">
- <doc xml:space="preserve">Creates a new pad with the given name from the given static template.
- If name is %NULL, a guaranteed unique name (across all pads)
- will be assigned.
- This function makes a copy of the name so you can safely free the name.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a new #GstPad, or %NULL in
- case of an error.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="templ" transfer-ownership="none">
- <doc xml:space="preserve">the #GstStaticPadTemplate to use</doc>
- <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the pad</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_template"
- c:identifier="gst_pad_new_from_template">
- <doc xml:space="preserve">Creates a new pad with the given name from the given template.
- If name is %NULL, a guaranteed unique name (across all pads)
- will be assigned.
- This function makes a copy of the name so you can safely free the name.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a new #GstPad, or %NULL in
- case of an error.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="templ" transfer-ownership="none">
- <doc xml:space="preserve">the pad template to use</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the pad</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="link_get_name"
- c:identifier="gst_pad_link_get_name"
- version="1.4">
- <doc xml:space="preserve">Gets a string representing the given pad-link return.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a static string with the name of the pad-link return.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="ret" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadLinkReturn to get the name of.</doc>
- <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="linked">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="peer" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="unlinked">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="peer" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="activate_mode" c:identifier="gst_pad_activate_mode">
- <doc xml:space="preserve">Activates or deactivates the given pad in @mode via dispatching to the
- pad's activatemodefunc. For use from within pad activation functions only.
- If you don't know what this is, you probably don't want to call it.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation was successful.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to activate or deactivate.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the requested activation mode</doc>
- <type name="PadMode" c:type="GstPadMode"/>
- </parameter>
- <parameter name="active" transfer-ownership="none">
- <doc xml:space="preserve">whether or not the pad should be active.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_probe" c:identifier="gst_pad_add_probe">
- <doc xml:space="preserve">Be notified of different states of pads. The provided callback is called for
- every state that matches @mask.
- Probes are called in groups: First GST_PAD_PROBE_TYPE_BLOCK probes are
- called, then others, then finally GST_PAD_PROBE_TYPE_IDLE. The only
- exception here are GST_PAD_PROBE_TYPE_IDLE probes that are called
- immediately if the pad is already idle while calling gst_pad_add_probe().
- In each of the groups, probes are called in the order in which they were
- added.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an id or 0 if no probe is pending. The id can be used to remove the
- probe with gst_pad_remove_probe(). When using GST_PAD_PROBE_TYPE_IDLE it can
- happen that the probe can be run immediately and if the probe returns
- GST_PAD_PROBE_REMOVE this functions returns 0.
- MT safe.</doc>
- <type name="gulong" c:type="gulong"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to add the probe to</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="mask" transfer-ownership="none">
- <doc xml:space="preserve">the probe mask</doc>
- <type name="PadProbeType" c:type="GstPadProbeType"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- scope="notified"
- closure="2"
- destroy="3">
- <doc xml:space="preserve">#GstPadProbeCallback that will be called with notifications of
- the pad state</doc>
- <type name="PadProbeCallback" c:type="GstPadProbeCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to the callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="destroy_data"
- transfer-ownership="none"
- scope="async">
- <doc xml:space="preserve">#GDestroyNotify for user_data</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="can_link" c:identifier="gst_pad_can_link">
- <doc xml:space="preserve">Checks if the source pad and the sink pad are compatible so they can be
- linked.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pads can be linked.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="srcpad" transfer-ownership="none">
- <doc xml:space="preserve">the source #GstPad.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="sinkpad" transfer-ownership="none">
- <doc xml:space="preserve">the sink #GstPad.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <method name="chain" c:identifier="gst_pad_chain">
- <doc xml:space="preserve">Chain a buffer to @pad.
- The function returns #GST_FLOW_FLUSHING if the pad was flushing.
- If the buffer type is not acceptable for @pad (as negotiated with a
- preceding GST_EVENT_CAPS event), this function returns
- #GST_FLOW_NOT_NEGOTIATED.
- The function proceeds calling the chain function installed on @pad (see
- gst_pad_set_chain_function()) and the return value of that function is
- returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no
- chain function.
- In all cases, success or failure, the caller loses its reference to @buffer
- after calling this function.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn from the pad.
- MT safe.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a sink #GstPad, returns GST_FLOW_ERROR if not.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="full">
- <doc xml:space="preserve">the #GstBuffer to send, return GST_FLOW_ERROR
- if not.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="chain_list" c:identifier="gst_pad_chain_list">
- <doc xml:space="preserve">Chain a bufferlist to @pad.
- The function returns #GST_FLOW_FLUSHING if the pad was flushing.
- If @pad was not negotiated properly with a CAPS event, this function
- returns #GST_FLOW_NOT_NEGOTIATED.
- The function proceeds calling the chainlist function installed on @pad (see
- gst_pad_set_chain_list_function()) and the return value of that function is
- returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no
- chainlist function.
- In all cases, success or failure, the caller loses its reference to @list
- after calling this function.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn from the pad.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a sink #GstPad, returns GST_FLOW_ERROR if not.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="list" transfer-ownership="full">
- <doc xml:space="preserve">the #GstBufferList to send, return GST_FLOW_ERROR
- if not.</doc>
- <type name="BufferList" c:type="GstBufferList*"/>
- </parameter>
- </parameters>
- </method>
- <method name="check_reconfigure"
- c:identifier="gst_pad_check_reconfigure">
- <doc xml:space="preserve">Check and clear the #GST_PAD_FLAG_NEED_RECONFIGURE flag on @pad and return %TRUE
- if the flag was set.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE is the GST_PAD_FLAG_NEED_RECONFIGURE flag was set on @pad.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to check</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="create_stream_id" c:identifier="gst_pad_create_stream_id">
- <doc xml:space="preserve">Creates a stream-id for the source #GstPad @pad by combining the
- upstream information with the optional @stream_id of the stream
- of @pad. @pad must have a parent #GstElement and which must have zero
- or one sinkpad. @stream_id can only be %NULL if the parent element
- of @pad has only a single source pad.
- This function generates an unique stream-id by getting the upstream
- stream-start event stream ID and appending @stream_id to it. If the
- element has no sinkpad it will generate an upstream stream-id by
- doing an URI query on the element and in the worst case just uses
- a random number. Source elements that don't implement the URI
- handler interface should ideally generate a unique, deterministic
- stream-id manually instead.
- Since stream IDs are sorted alphabetically, any numbers in the
- stream ID should be printed with a fixed number of characters,
- preceded by 0's, such as by using the format \%03u instead of \%u.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A stream-id for @pad. g_free() after usage.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">A source #GstPad</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">Parent #GstElement of @pad</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="stream_id"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The stream-id</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="create_stream_id_printf"
- c:identifier="gst_pad_create_stream_id_printf"
- introspectable="0">
- <doc xml:space="preserve">Creates a stream-id for the source #GstPad @pad by combining the
- upstream information with the optional @stream_id of the stream
- of @pad. @pad must have a parent #GstElement and which must have zero
- or one sinkpad. @stream_id can only be %NULL if the parent element
- of @pad has only a single source pad.
- This function generates an unique stream-id by getting the upstream
- stream-start event stream ID and appending @stream_id to it. If the
- element has no sinkpad it will generate an upstream stream-id by
- doing an URI query on the element and in the worst case just uses
- a random number. Source elements that don't implement the URI
- handler interface should ideally generate a unique, deterministic
- stream-id manually instead.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A stream-id for @pad. g_free() after usage.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">A source #GstPad</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">Parent #GstElement of @pad</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="stream_id"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The stream-id</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">parameters for the @stream_id format string</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="create_stream_id_printf_valist"
- c:identifier="gst_pad_create_stream_id_printf_valist"
- introspectable="0">
- <doc xml:space="preserve">Creates a stream-id for the source #GstPad @pad by combining the
- upstream information with the optional @stream_id of the stream
- of @pad. @pad must have a parent #GstElement and which must have zero
- or one sinkpad. @stream_id can only be %NULL if the parent element
- of @pad has only a single source pad.
- This function generates an unique stream-id by getting the upstream
- stream-start event stream ID and appending @stream_id to it. If the
- element has no sinkpad it will generate an upstream stream-id by
- doing an URI query on the element and in the worst case just uses
- a random number. Source elements that don't implement the URI
- handler interface should ideally generate a unique, deterministic
- stream-id manually instead.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A stream-id for @pad. g_free() after usage.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">A source #GstPad</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">Parent #GstElement of @pad</doc>
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="stream_id"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The stream-id</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="var_args" transfer-ownership="none">
- <doc xml:space="preserve">parameters for the @stream_id format string</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <method name="event_default" c:identifier="gst_pad_event_default">
- <doc xml:space="preserve">Invokes the default event handler for the given pad.
- The EOS event will pause the task associated with @pad before it is forwarded
- to all internally linked pads,
- The event is sent to all pads internally linked to @pad. This function
- takes ownership of @event.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the event was sent successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to call the default event handler on.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad or %NULL</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="event" transfer-ownership="full">
- <doc xml:space="preserve">the #GstEvent to handle.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </method>
- <method name="forward" c:identifier="gst_pad_forward">
- <doc xml:space="preserve">Calls @forward for all internally linked pads of @pad. This function deals with
- dynamically changing internal pads and will make sure that the @forward
- function is only called once for each pad.
- When @forward returns %TRUE, no further pads will be processed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if one of the dispatcher functions returned %TRUE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="forward"
- transfer-ownership="none"
- scope="call"
- closure="1">
- <doc xml:space="preserve">a #GstPadForwardFunction</doc>
- <type name="PadForwardFunction" c:type="GstPadForwardFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @forward</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_allowed_caps" c:identifier="gst_pad_get_allowed_caps">
- <doc xml:space="preserve">Gets the capabilities of the allowed media types that can flow through
- @pad and its peer.
- The allowed capabilities is calculated as the intersection of the results of
- calling gst_pad_query_caps() on @pad and its peer. The caller owns a reference
- on the resulting caps.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the allowed #GstCaps of the
- pad link. Unref the caps when you no longer need it. This
- function returns %NULL when @pad has no peer.
- MT safe.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_current_caps" c:identifier="gst_pad_get_current_caps">
- <doc xml:space="preserve">Gets the capabilities currently configured on @pad with the last
- #GST_EVENT_CAPS event.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the current caps of the pad with
- incremented ref-count or %NULL when pad has no caps. Unref after usage.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to get the current capabilities of.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_direction" c:identifier="gst_pad_get_direction">
- <doc xml:space="preserve">Gets the direction of the pad. The direction of the pad is
- decided at construction time so this function does not take
- the LOCK.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstPadDirection of the pad.
- MT safe.</doc>
- <type name="PadDirection" c:type="GstPadDirection"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to get the direction of.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_element_private"
- c:identifier="gst_pad_get_element_private">
- <doc xml:space="preserve">Gets the private data of a pad.
- No locking is performed in this function.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a #gpointer to the private data.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to get the private data of.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_last_flow_return"
- c:identifier="gst_pad_get_last_flow_return"
- version="1.4">
- <doc xml:space="preserve">Gets the #GstFlowReturn return from the last data passed by this pad.</doc>
- <return-value transfer-ownership="none">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_offset" c:identifier="gst_pad_get_offset">
- <doc xml:space="preserve">Get the offset applied to the running time of @pad. @pad has to be a source
- pad.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the offset.</doc>
- <type name="gint64" c:type="gint64"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_pad_template" c:identifier="gst_pad_get_pad_template">
- <doc xml:space="preserve">Gets the template for @pad.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the #GstPadTemplate from which
- this pad was instantiated, or %NULL if this pad has no
- template. Unref after usage.</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_pad_template_caps"
- c:identifier="gst_pad_get_pad_template_caps">
- <doc xml:space="preserve">Gets the capabilities for @pad's template.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the #GstCaps of this pad template.
- Unref after usage.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to get the template capabilities from.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_parent_element"
- c:identifier="gst_pad_get_parent_element">
- <doc xml:space="preserve">Gets the parent of @pad, cast to a #GstElement. If a @pad has no parent or
- its parent is not an element, return %NULL.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the parent of the pad. The
- caller has a reference on the parent, so unref when you're finished
- with it.
- MT safe.</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a pad</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_peer" c:identifier="gst_pad_get_peer">
- <doc xml:space="preserve">Gets the peer of @pad. This function refs the peer pad so
- you need to unref it after use.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the peer #GstPad. Unref after usage.
- MT safe.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to get the peer of.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_range" c:identifier="gst_pad_get_range">
- <doc xml:space="preserve">When @pad is flushing this function returns #GST_FLOW_FLUSHING
- immediately and @buffer is %NULL.
- Calls the getrange function of @pad, see #GstPadGetRangeFunction for a
- description of a getrange function. If @pad has no getrange function
- installed (see gst_pad_set_getrange_function()) this function returns
- #GST_FLOW_NOT_SUPPORTED.
- If @buffer points to a variable holding %NULL, a valid new #GstBuffer will be
- placed in @buffer when this function returns #GST_FLOW_OK. The new buffer
- must be freed with gst_buffer_unref() after usage.
- When @buffer points to a variable that points to a valid #GstBuffer, the
- buffer will be filled with the result data when this function returns
- #GST_FLOW_OK. If the provided buffer is larger than @size, only
- @size bytes will be filled in the result buffer and its size will be updated
- accordingly.
- Note that less than @size bytes can be returned in @buffer when, for example,
- an EOS condition is near or when @buffer is not large enough to hold @size
- bytes. The caller should check the result buffer size to get the result size.
- When this function returns any other result value than #GST_FLOW_OK, @buffer
- will be unchanged.
- This is a lowlevel function. Usually gst_pad_pull_range() is used.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn from the pad.
- MT safe.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a src #GstPad, returns #GST_FLOW_ERROR if not.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">The start offset of the buffer</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">The length of the buffer</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="buffer"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to hold the #GstBuffer,
- returns #GST_FLOW_ERROR if %NULL.</doc>
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_sticky_event" c:identifier="gst_pad_get_sticky_event">
- <doc xml:space="preserve">Returns a new reference of the sticky event of type @event_type
- from the event.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GstEvent of type
- @event_type or %NULL when no event of @event_type was on
- @pad. Unref after usage.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to get the event from.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="event_type" transfer-ownership="none">
- <doc xml:space="preserve">the #GstEventType that should be retrieved.</doc>
- <type name="EventType" c:type="GstEventType"/>
- </parameter>
- <parameter name="idx" transfer-ownership="none">
- <doc xml:space="preserve">the index of the event</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_stream_id"
- c:identifier="gst_pad_get_stream_id"
- version="1.2">
- <doc xml:space="preserve">Returns the current stream-id for the @pad, or %NULL if none has been
- set yet, i.e. the pad has not received a stream-start event yet.
- This is a convenience wrapper around gst_pad_get_sticky_event() and
- gst_event_parse_stream_start().
- The returned stream-id string should be treated as an opaque string, its
- contents should not be interpreted.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a newly-allocated copy of the stream-id for
- @pad, or %NULL. g_free() the returned string when no longer
- needed.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">A source #GstPad</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_current_caps" c:identifier="gst_pad_has_current_caps">
- <doc xml:space="preserve">Check if @pad has caps set on it with a #GST_EVENT_CAPS event.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE when @pad has caps associated with it.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to check</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_active" c:identifier="gst_pad_is_active">
- <doc xml:space="preserve">Query if a pad is active</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pad is active.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to query</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_blocked" c:identifier="gst_pad_is_blocked">
- <doc xml:space="preserve">Checks if the pad is blocked or not. This function returns the
- last requested state of the pad. It is not certain that the pad
- is actually blocking at this point (see gst_pad_is_blocking()).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pad is blocked.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to query</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_blocking" c:identifier="gst_pad_is_blocking">
- <doc xml:space="preserve">Checks if the pad is blocking or not. This is a guaranteed state
- of whether the pad is actually blocking on a #GstBuffer or a #GstEvent.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pad is blocking.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to query</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_linked" c:identifier="gst_pad_is_linked">
- <doc xml:space="preserve">Checks if a @pad is linked to another pad or not.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pad is linked, %FALSE otherwise.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">pad to check</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="iterate_internal_links"
- c:identifier="gst_pad_iterate_internal_links">
- <doc xml:space="preserve">Gets an iterator for the pads to which the given pad is linked to inside
- of the parent element.
- Each #GstPad element yielded by the iterator will have its refcount increased,
- so unref after use.
- Free-function: gst_iterator_free</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a new #GstIterator of #GstPad
- or %NULL when the pad does not have an iterator function
- configured. Use gst_iterator_free() after usage.</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the GstPad to get the internal links of.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="iterate_internal_links_default"
- c:identifier="gst_pad_iterate_internal_links_default">
- <doc xml:space="preserve">Iterate the list of pads to which the given pad is linked to inside of
- the parent element.
- This is the default handler, and thus returns an iterator of all of the
- pads inside the parent element with opposite direction.
- The caller must free this iterator after use with gst_iterator_free().</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GstIterator of #GstPad, or %NULL if @pad
- has no parent. Unref each returned pad with gst_object_unref().</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to get the internal links of.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad or %NULL</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </method>
- <method name="link" c:identifier="gst_pad_link">
- <doc xml:space="preserve">Links the source pad and the sink pad.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A result code indicating if the connection worked or
- what went wrong.
- MT Safe.</doc>
- <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="srcpad" transfer-ownership="none">
- <doc xml:space="preserve">the source #GstPad to link.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="sinkpad" transfer-ownership="none">
- <doc xml:space="preserve">the sink #GstPad to link.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <method name="link_full" c:identifier="gst_pad_link_full">
- <doc xml:space="preserve">Links the source pad and the sink pad.
- This variant of #gst_pad_link provides a more granular control on the
- checks being done when linking. While providing some considerable speedups
- the caller of this method must be aware that wrong usage of those flags
- can cause severe issues. Refer to the documentation of #GstPadLinkCheck
- for more information.
- MT Safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A result code indicating if the connection worked or
- what went wrong.</doc>
- <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="srcpad" transfer-ownership="none">
- <doc xml:space="preserve">the source #GstPad to link.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="sinkpad" transfer-ownership="none">
- <doc xml:space="preserve">the sink #GstPad to link.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">the checks to validate when linking</doc>
- <type name="PadLinkCheck" c:type="GstPadLinkCheck"/>
- </parameter>
- </parameters>
- </method>
- <method name="mark_reconfigure" c:identifier="gst_pad_mark_reconfigure">
- <doc xml:space="preserve">Mark a pad for needing reconfiguration. The next call to
- gst_pad_check_reconfigure() will return %TRUE after this call.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to mark</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="needs_reconfigure"
- c:identifier="gst_pad_needs_reconfigure">
- <doc xml:space="preserve">Check the #GST_PAD_FLAG_NEED_RECONFIGURE flag on @pad and return %TRUE
- if the flag was set.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE is the GST_PAD_FLAG_NEED_RECONFIGURE flag is set on @pad.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to check</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="pause_task" c:identifier="gst_pad_pause_task">
- <doc xml:space="preserve">Pause the task of @pad. This function will also wait until the
- function executed by the task is finished if this function is not
- called from the task function.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a %TRUE if the task could be paused or %FALSE when the pad
- has no task.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to pause the task of</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="peer_query" c:identifier="gst_pad_peer_query">
- <doc xml:space="preserve">Performs gst_pad_query() on the peer of @pad.
- The caller is responsible for both the allocation and deallocation of
- the query structure.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be performed. This function returns %FALSE
- if @pad has no peer.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to invoke the peer query on.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">the #GstQuery to perform.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </method>
- <method name="peer_query_accept_caps"
- c:identifier="gst_pad_peer_query_accept_caps">
- <doc xml:space="preserve">Check if the peer of @pad accepts @caps. If @pad has no peer, this function
- returns %TRUE.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the peer of @pad can accept the caps or @pad has no peer.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to check the peer of</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps to check on the pad</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="peer_query_caps" c:identifier="gst_pad_peer_query_caps">
- <doc xml:space="preserve">Gets the capabilities of the peer connected to this pad. Similar to
- gst_pad_query_caps().
- When called on srcpads @filter contains the caps that
- upstream could produce in the order preferred by upstream. When
- called on sinkpads @filter contains the caps accepted by
- downstream in the preferred order. @filter might be %NULL but
- if it is not %NULL the returned caps will be a subset of @filter.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the caps of the peer pad with incremented
- ref-count. When there is no peer pad, this function returns @filter or,
- when @filter is %NULL, ANY caps.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to get the capabilities of.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="filter"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstCaps filter, or %NULL.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="peer_query_convert"
- c:identifier="gst_pad_peer_query_convert">
- <doc xml:space="preserve">Queries the peer pad of a given sink pad to convert @src_val in @src_format
- to @dest_format.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad, on whose peer pad to invoke the convert query on.
- Must be a sink pad.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="src_format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstFormat to convert from.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="src_val" transfer-ownership="none">
- <doc xml:space="preserve">a value to convert.</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="dest_format" transfer-ownership="none">
- <doc xml:space="preserve">the #GstFormat to convert to.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="dest_val"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to the result.</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="peer_query_duration"
- c:identifier="gst_pad_peer_query_duration">
- <doc xml:space="preserve">Queries the peer pad of a given sink pad for the total stream duration.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad on whose peer pad to invoke the duration query on.
- Must be a sink pad.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the #GstFormat requested</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="duration"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location in which to store the total
- duration, or %NULL.</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="peer_query_position"
- c:identifier="gst_pad_peer_query_position">
- <doc xml:space="preserve">Queries the peer of a given sink pad for the stream position.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad on whose peer to invoke the position query on.
- Must be a sink pad.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the #GstFormat requested</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="cur"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location in which to store the current
- position, or %NULL.</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="proxy_query_accept_caps"
- c:identifier="gst_pad_proxy_query_accept_caps">
- <doc xml:space="preserve">Checks if all internally linked pads of @pad accepts the caps in @query and
- returns the intersection of the results.
- This function is useful as a default accept caps query function for an element
- that can handle any stream format, but requires caps that are acceptable for
- all opposite pads.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @query could be executed</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to proxy.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">an ACCEPT_CAPS #GstQuery.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </method>
- <method name="proxy_query_caps" c:identifier="gst_pad_proxy_query_caps">
- <doc xml:space="preserve">Calls gst_pad_query_caps() for all internally linked pads of @pad and returns
- the intersection of the results.
- This function is useful as a default caps query function for an element
- that can handle any stream format, but requires all its pads to have
- the same caps. Two such elements are tee and adder.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @query could be executed</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to proxy.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a CAPS #GstQuery.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </method>
- <method name="pull_range" c:identifier="gst_pad_pull_range">
- <doc xml:space="preserve">Pulls a @buffer from the peer pad or fills up a provided buffer.
- This function will first trigger the pad block signal if it was
- installed.
- When @pad is not linked #GST_FLOW_NOT_LINKED is returned else this
- function returns the result of gst_pad_get_range() on the peer pad.
- See gst_pad_get_range() for a list of return values and for the
- semantics of the arguments of this function.
- If @buffer points to a variable holding %NULL, a valid new #GstBuffer will be
- placed in @buffer when this function returns #GST_FLOW_OK. The new buffer
- must be freed with gst_buffer_unref() after usage. When this function
- returns any other result value, @buffer will still point to %NULL.
- When @buffer points to a variable that points to a valid #GstBuffer, the
- buffer will be filled with the result data when this function returns
- #GST_FLOW_OK. When this function returns any other result value,
- @buffer will be unchanged. If the provided buffer is larger than @size, only
- @size bytes will be filled in the result buffer and its size will be updated
- accordingly.
- Note that less than @size bytes can be returned in @buffer when, for example,
- an EOS condition is near or when @buffer is not large enough to hold @size
- bytes. The caller should check the result buffer size to get the result size.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn from the peer pad.
- MT safe.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a sink #GstPad, returns GST_FLOW_ERROR if not.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">The start offset of the buffer</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">The length of the buffer</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="buffer"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to hold the #GstBuffer, returns
- GST_FLOW_ERROR if %NULL.</doc>
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- </parameters>
- </method>
- <method name="push" c:identifier="gst_pad_push">
- <doc xml:space="preserve">Pushes a buffer to the peer of @pad.
- This function will call installed block probes before triggering any
- installed data probes.
- The function proceeds calling gst_pad_chain() on the peer pad and returns
- the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will
- be returned.
- In all cases, success or failure, the caller loses its reference to @buffer
- after calling this function.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn from the peer pad.
- MT safe.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a source #GstPad, returns #GST_FLOW_ERROR if not.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="full">
- <doc xml:space="preserve">the #GstBuffer to push returns GST_FLOW_ERROR
- if not.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="push_event" c:identifier="gst_pad_push_event">
- <doc xml:space="preserve">Sends the event to the peer of the given pad. This function is
- mainly used by elements to send events to their peer
- elements.
- This function takes ownership of the provided event so you should
- gst_event_ref() it if you want to reuse the event after this call.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the event was handled.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to push the event to.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="full">
- <doc xml:space="preserve">the #GstEvent to send to the pad.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </method>
- <method name="push_list" c:identifier="gst_pad_push_list">
- <doc xml:space="preserve">Pushes a buffer list to the peer of @pad.
- This function will call installed block probes before triggering any
- installed data probes.
- The function proceeds calling the chain function on the peer pad and returns
- the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will
- be returned. If the peer pad does not have any installed chainlist function
- every group buffer of the list will be merged into a normal #GstBuffer and
- chained via gst_pad_chain().
- In all cases, success or failure, the caller loses its reference to @list
- after calling this function.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn from the peer pad.
- MT safe.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a source #GstPad, returns #GST_FLOW_ERROR if not.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="list" transfer-ownership="full">
- <doc xml:space="preserve">the #GstBufferList to push returns GST_FLOW_ERROR
- if not.</doc>
- <type name="BufferList" c:type="GstBufferList*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query" c:identifier="gst_pad_query">
- <doc xml:space="preserve">Dispatches a query to a pad. The query should have been allocated by the
- caller via one of the type-specific allocation functions. The element that
- the pad belongs to is responsible for filling the query with an appropriate
- response, which should then be parsed with a type-specific query parsing
- function.
- Again, the caller is responsible for both the allocation and deallocation of
- the query structure.
- Please also note that some queries might need a running pipeline to work.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to invoke the default query on.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">the #GstQuery to perform.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_accept_caps"
- c:identifier="gst_pad_query_accept_caps">
- <doc xml:space="preserve">Check if the given pad accepts the caps.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pad can accept the caps.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to check</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps to check on the pad</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_caps" c:identifier="gst_pad_query_caps">
- <doc xml:space="preserve">Gets the capabilities this pad can produce or consume.
- Note that this method doesn't necessarily return the caps set by sending a
- gst_event_new_caps() - use gst_pad_get_current_caps() for that instead.
- gst_pad_query_caps returns all possible caps a pad can operate with, using
- the pad's CAPS query function, If the query fails, this function will return
- @filter, if not %NULL, otherwise ANY.
- When called on sinkpads @filter contains the caps that
- upstream could produce in the order preferred by upstream. When
- called on srcpads @filter contains the caps accepted by
- downstream in the preferred order. @filter might be %NULL but
- if it is not %NULL the returned caps will be a subset of @filter.
- Note that this function does not return writable #GstCaps, use
- gst_caps_make_writable() before modifying the caps.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the caps of the pad with incremented ref-count.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to get the capabilities of.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="filter"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">suggested #GstCaps, or %NULL</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_convert" c:identifier="gst_pad_query_convert">
- <doc xml:space="preserve">Queries a pad to convert @src_val in @src_format to @dest_format.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to invoke the convert query on.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="src_format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstFormat to convert from.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="src_val" transfer-ownership="none">
- <doc xml:space="preserve">a value to convert.</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="dest_format" transfer-ownership="none">
- <doc xml:space="preserve">the #GstFormat to convert to.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="dest_val"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to the result.</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_default" c:identifier="gst_pad_query_default">
- <doc xml:space="preserve">Invokes the default query handler for the given pad.
- The query is sent to all pads internally linked to @pad. Note that
- if there are many possible sink pads that are internally linked to
- @pad, only one will be sent the query.
- Multi-sinkpad elements should implement custom query handlers.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query was performed successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to call the default query handler on.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad or %NULL</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">the #GstQuery to handle.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_duration" c:identifier="gst_pad_query_duration">
- <doc xml:space="preserve">Queries a pad for the total stream duration.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to invoke the duration query on.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the #GstFormat requested</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="duration"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location in which to store the total
- duration, or %NULL.</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_position" c:identifier="gst_pad_query_position">
- <doc xml:space="preserve">Queries a pad for the stream position.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to invoke the position query on.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the #GstFormat requested</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="cur"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">A location in which to store the current position, or %NULL.</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_probe" c:identifier="gst_pad_remove_probe">
- <doc xml:space="preserve">Remove the probe with @id from @pad.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad with the probe</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="id" transfer-ownership="none">
- <doc xml:space="preserve">the probe id to remove</doc>
- <type name="gulong" c:type="gulong"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_event" c:identifier="gst_pad_send_event">
- <doc xml:space="preserve">Sends the event to the pad. This function can be used
- by applications to send events in the pipeline.
- If @pad is a source pad, @event should be an upstream event. If @pad is a
- sink pad, @event should be a downstream event. For example, you would not
- send a #GST_EVENT_EOS on a src pad; EOS events only propagate downstream.
- Furthermore, some downstream events have to be serialized with data flow,
- like EOS, while some can travel out-of-band, like #GST_EVENT_FLUSH_START. If
- the event needs to be serialized with data flow, this function will take the
- pad's stream lock while calling its event function.
- To find out whether an event type is upstream, downstream, or downstream and
- serialized, see #GstEventTypeFlags, gst_event_type_get_flags(),
- #GST_EVENT_IS_UPSTREAM, #GST_EVENT_IS_DOWNSTREAM, and
- #GST_EVENT_IS_SERIALIZED. Note that in practice that an application or
- plugin doesn't need to bother itself with this information; the core handles
- all necessary locks and checks.
- This function takes ownership of the provided event so you should
- gst_event_ref() it if you want to reuse the event after this call.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the event was handled.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to send the event to.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="full">
- <doc xml:space="preserve">the #GstEvent to send to the pad.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_activate_function_full"
- c:identifier="gst_pad_set_activate_function_full">
- <doc xml:space="preserve">Sets the given activate function for @pad. The activate function will
- dispatch to gst_pad_activate_mode() to perform the actual activation.
- Only makes sense to set on sink pads.
- Call this function if your sink pad can start a pull-based task.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="activate"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">the #GstPadActivateFunction to set.</doc>
- <type name="PadActivateFunction" c:type="GstPadActivateFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data passed to @notify</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">notify called when @activate will not be used anymore.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_activatemode_function_full"
- c:identifier="gst_pad_set_activatemode_function_full">
- <doc xml:space="preserve">Sets the given activate_mode function for the pad. An activate_mode function
- prepares the element for data passing.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="activatemode"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">the #GstPadActivateModeFunction to set.</doc>
- <type name="PadActivateModeFunction"
- c:type="GstPadActivateModeFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data passed to @notify</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">notify called when @activatemode will not be used anymore.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_active" c:identifier="gst_pad_set_active">
- <doc xml:space="preserve">Activates or deactivates the given pad.
- Normally called from within core state change functions.
- If @active, makes sure the pad is active. If it is already active, either in
- push or pull mode, just return. Otherwise dispatches to the pad's activate
- function to perform the actual activation.
- If not @active, calls gst_pad_activate_mode() with the pad's current mode
- and a %FALSE argument.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation was successful.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to activate or deactivate.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="active" transfer-ownership="none">
- <doc xml:space="preserve">whether or not the pad should be active.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_chain_function_full"
- c:identifier="gst_pad_set_chain_function_full">
- <doc xml:space="preserve">Sets the given chain function for the pad. The chain function is called to
- process a #GstBuffer input buffer. see #GstPadChainFunction for more details.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a sink #GstPad.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="chain"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">the #GstPadChainFunction to set.</doc>
- <type name="PadChainFunction" c:type="GstPadChainFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data passed to @notify</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">notify called when @chain will not be used anymore.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_chain_list_function_full"
- c:identifier="gst_pad_set_chain_list_function_full">
- <doc xml:space="preserve">Sets the given chain list function for the pad. The chainlist function is
- called to process a #GstBufferList input buffer list. See
- #GstPadChainListFunction for more details.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a sink #GstPad.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="chainlist"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">the #GstPadChainListFunction to set.</doc>
- <type name="PadChainListFunction"
- c:type="GstPadChainListFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data passed to @notify</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">notify called when @chainlist will not be used anymore.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_element_private"
- c:identifier="gst_pad_set_element_private">
- <doc xml:space="preserve">Set the given private data gpointer on the pad.
- This function can only be used by the element that owns the pad.
- No locking is performed in this function.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to set the private data of.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="priv"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The private data to attach to the pad.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_event_full_function_full"
- c:identifier="gst_pad_set_event_full_function_full"
- version="1.8">
- <doc xml:space="preserve">Sets the given event handler for the pad.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad of either direction.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="event"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">the #GstPadEventFullFunction to set.</doc>
- <type name="PadEventFullFunction"
- c:type="GstPadEventFullFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data passed to @notify</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">notify called when @event will not be used anymore.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_event_function_full"
- c:identifier="gst_pad_set_event_function_full">
- <doc xml:space="preserve">Sets the given event handler for the pad.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad of either direction.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="event"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">the #GstPadEventFunction to set.</doc>
- <type name="PadEventFunction" c:type="GstPadEventFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data passed to @notify</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">notify called when @event will not be used anymore.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_getrange_function_full"
- c:identifier="gst_pad_set_getrange_function_full">
- <doc xml:space="preserve">Sets the given getrange function for the pad. The getrange function is
- called to produce a new #GstBuffer to start the processing pipeline. see
- #GstPadGetRangeFunction for a description of the getrange function.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a source #GstPad.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="get"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">the #GstPadGetRangeFunction to set.</doc>
- <type name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data passed to @notify</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">notify called when @get will not be used anymore.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_iterate_internal_links_function_full"
- c:identifier="gst_pad_set_iterate_internal_links_function_full">
- <doc xml:space="preserve">Sets the given internal link iterator function for the pad.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad of either direction.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="iterintlink"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">the #GstPadIterIntLinkFunction to set.</doc>
- <type name="PadIterIntLinkFunction"
- c:type="GstPadIterIntLinkFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data passed to @notify</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">notify called when @iterintlink will not be used anymore.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_link_function_full"
- c:identifier="gst_pad_set_link_function_full">
- <doc xml:space="preserve">Sets the given link function for the pad. It will be called when
- the pad is linked with another pad.
- The return value #GST_PAD_LINK_OK should be used when the connection can be
- made.
- The return value #GST_PAD_LINK_REFUSED should be used when the connection
- cannot be made for some reason.
- If @link is installed on a source pad, it should call the #GstPadLinkFunction
- of the peer sink pad, if present.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="link"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">the #GstPadLinkFunction to set.</doc>
- <type name="PadLinkFunction" c:type="GstPadLinkFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data passed to @notify</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">notify called when @link will not be used anymore.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_offset" c:identifier="gst_pad_set_offset">
- <doc xml:space="preserve">Set the offset that will be applied to the running time of @pad.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">the offset</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_query_function_full"
- c:identifier="gst_pad_set_query_function_full">
- <doc xml:space="preserve">Set the given query function for the pad.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad of either direction.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="query"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">the #GstPadQueryFunction to set.</doc>
- <type name="PadQueryFunction" c:type="GstPadQueryFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data passed to @notify</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">notify called when @query will not be used anymore.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_unlink_function_full"
- c:identifier="gst_pad_set_unlink_function_full">
- <doc xml:space="preserve">Sets the given unlink function for the pad. It will be called
- when the pad is unlinked.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="unlink"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">the #GstPadUnlinkFunction to set.</doc>
- <type name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data passed to @notify</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">notify called when @unlink will not be used anymore.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="start_task" c:identifier="gst_pad_start_task">
- <doc xml:space="preserve">Starts a task that repeatedly calls @func with @user_data. This function
- is mostly used in pad activation functions to start the dataflow.
- The #GST_PAD_STREAM_LOCK of @pad will automatically be acquired
- before @func is called.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a %TRUE if the task could be started.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to start the task of</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">the task function to call</doc>
- <type name="TaskFunction" c:type="GstTaskFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to the task function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">called when @user_data is no longer referenced</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="sticky_events_foreach"
- c:identifier="gst_pad_sticky_events_foreach">
- <doc xml:space="preserve">Iterates all sticky events on @pad and calls @foreach_func for every
- event. If @foreach_func returns %FALSE the iteration is immediately stopped.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad that should be used for iteration.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="foreach_func"
- transfer-ownership="none"
- scope="call"
- closure="1">
- <doc xml:space="preserve">the #GstPadStickyEventsForeachFunction that
- should be called for every event.</doc>
- <type name="PadStickyEventsForeachFunction"
- c:type="GstPadStickyEventsForeachFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the optional user data.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="stop_task" c:identifier="gst_pad_stop_task">
- <doc xml:space="preserve">Stop the task of @pad. This function will also make sure that the
- function executed by the task will effectively stop if not called
- from the GstTaskFunction.
- This function will deadlock if called from the GstTaskFunction of
- the task. Use gst_task_pause() instead.
- Regardless of whether the pad has a task, the stream lock is acquired and
- released so as to ensure that streaming through this pad has finished.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a %TRUE if the task could be stopped or %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to stop the task of</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="store_sticky_event"
- c:identifier="gst_pad_store_sticky_event"
- version="1.2">
- <doc xml:space="preserve">Store the sticky @event on @pad</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#GST_FLOW_OK on success, #GST_FLOW_FLUSHING when the pad
- was flushing or #GST_FLOW_EOS when the pad was EOS.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">a #GstEvent</doc>
- <type name="Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </method>
- <method name="unlink" c:identifier="gst_pad_unlink">
- <doc xml:space="preserve">Unlinks the source pad from the sink pad. Will emit the #GstPad::unlinked
- signal on both pads.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pads were unlinked. This function returns %FALSE if
- the pads were not linked together.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="srcpad" transfer-ownership="none">
- <doc xml:space="preserve">the source #GstPad to unlink.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- <parameter name="sinkpad" transfer-ownership="none">
- <doc xml:space="preserve">the sink #GstPad to unlink.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <method name="use_fixed_caps" c:identifier="gst_pad_use_fixed_caps">
- <doc xml:space="preserve">A helper function you can use that sets the FIXED_CAPS flag
- This way the default CAPS query will always return the negotiated caps
- or in case the pad is not negotiated, the padtemplate caps.
- The negotiated caps are the caps of the last CAPS event that passed on the
- pad. Use this function on a pad that, once it negotiated to a CAPS, cannot
- be renegotiated to something else.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the pad to use</doc>
- <type name="Pad" c:type="GstPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="caps" transfer-ownership="none">
- <type name="Caps"/>
- </property>
- <property name="direction"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="PadDirection"/>
- </property>
- <property name="offset"
- version="1.6"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The offset that will be applied to the running time of the pad.</doc>
- <type name="gint64" c:type="gint64"/>
- </property>
- <property name="template" writable="1" transfer-ownership="none">
- <type name="PadTemplate"/>
- </property>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="element_private">
- <doc xml:space="preserve">private data owned by the parent element</doc>
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="padtemplate">
- <doc xml:space="preserve">padtemplate for this pad</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </field>
- <field name="direction">
- <doc xml:space="preserve">the direction of the pad, cannot change after creating
- the pad.</doc>
- <type name="PadDirection" c:type="GstPadDirection"/>
- </field>
- <field name="stream_rec_lock" readable="0" private="1">
- <type name="GLib.RecMutex" c:type="GRecMutex"/>
- </field>
- <field name="task" readable="0" private="1">
- <type name="Task" c:type="GstTask*"/>
- </field>
- <field name="block_cond" readable="0" private="1">
- <type name="GLib.Cond" c:type="GCond"/>
- </field>
- <field name="probes" readable="0" private="1">
- <type name="GLib.HookList" c:type="GHookList"/>
- </field>
- <field name="mode" readable="0" private="1">
- <type name="PadMode" c:type="GstPadMode"/>
- </field>
- <field name="activatefunc" readable="0" private="1">
- <type name="PadActivateFunction" c:type="GstPadActivateFunction"/>
- </field>
- <field name="activatedata" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="activatenotify" readable="0" private="1">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <field name="activatemodefunc" readable="0" private="1">
- <type name="PadActivateModeFunction"
- c:type="GstPadActivateModeFunction"/>
- </field>
- <field name="activatemodedata" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="activatemodenotify" readable="0" private="1">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <field name="peer" readable="0" private="1">
- <type name="Pad" c:type="GstPad*"/>
- </field>
- <field name="linkfunc" readable="0" private="1">
- <type name="PadLinkFunction" c:type="GstPadLinkFunction"/>
- </field>
- <field name="linkdata" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="linknotify" readable="0" private="1">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <field name="unlinkfunc" readable="0" private="1">
- <type name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"/>
- </field>
- <field name="unlinkdata" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="unlinknotify" readable="0" private="1">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <field name="chainfunc" readable="0" private="1">
- <type name="PadChainFunction" c:type="GstPadChainFunction"/>
- </field>
- <field name="chaindata" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="chainnotify" readable="0" private="1">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <field name="chainlistfunc" readable="0" private="1">
- <type name="PadChainListFunction" c:type="GstPadChainListFunction"/>
- </field>
- <field name="chainlistdata" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="chainlistnotify" readable="0" private="1">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <field name="getrangefunc" readable="0" private="1">
- <type name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"/>
- </field>
- <field name="getrangedata" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="getrangenotify" readable="0" private="1">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <field name="eventfunc" readable="0" private="1">
- <type name="PadEventFunction" c:type="GstPadEventFunction"/>
- </field>
- <field name="eventdata" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="eventnotify" readable="0" private="1">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <field name="offset" readable="0" private="1">
- <type name="gint64" c:type="gint64"/>
- </field>
- <field name="queryfunc" readable="0" private="1">
- <type name="PadQueryFunction" c:type="GstPadQueryFunction"/>
- </field>
- <field name="querydata" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="querynotify" readable="0" private="1">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <field name="iterintlinkfunc" readable="0" private="1">
- <type name="PadIterIntLinkFunction"
- c:type="GstPadIterIntLinkFunction"/>
- </field>
- <field name="iterintlinkdata" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="iterintlinknotify" readable="0" private="1">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <field name="num_probes" readable="0" private="1">
- <type name="gint" c:type="gint"/>
- </field>
- <field name="num_blocked" readable="0" private="1">
- <type name="gint" c:type="gint"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="PadPrivate" c:type="GstPadPrivate*"/>
- </field>
- <union name="ABI" c:type="ABI">
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- <record name="abi" c:type="abi">
- <field name="last_flowret" writable="1">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </field>
- <field name="eventfullfunc" writable="1">
- <type name="PadEventFullFunction"
- c:type="GstPadEventFullFunction"/>
- </field>
- </record>
- </union>
- <glib:signal name="linked" when="last">
- <doc xml:space="preserve">Signals that a pad has been linked to the peer pad.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="peer" transfer-ownership="none">
- <doc xml:space="preserve">the peer pad that has been connected</doc>
- <type name="Pad"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="unlinked" when="last">
- <doc xml:space="preserve">Signals that a pad has been unlinked from the peer pad.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="peer" transfer-ownership="none">
- <doc xml:space="preserve">the peer pad that has been disconnected</doc>
- <type name="Pad"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <callback name="PadActivateFunction" c:type="GstPadActivateFunction">
- <doc xml:space="preserve">This function is called when the pad is activated during the element
- READY to PAUSED state change. By default this function will call the
- activate function that puts the pad in push mode but elements can
- override this function to activate the pad in pull mode if they wish.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pad could be activated.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent of @pad</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadActivateModeFunction"
- c:type="GstPadActivateModeFunction">
- <doc xml:space="preserve">The prototype of the push and pull activate functions.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pad could be activated or deactivated.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent of @pad</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the requested activation mode of @pad</doc>
- <type name="PadMode" c:type="GstPadMode"/>
- </parameter>
- <parameter name="active" transfer-ownership="none">
- <doc xml:space="preserve">activate or deactivate the pad.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadChainFunction" c:type="GstPadChainFunction">
- <doc xml:space="preserve">A function that will be called on sinkpads when chaining buffers.
- The function typically processes the data contained in the buffer and
- either consumes the data or passes it on to the internally linked pad(s).
- The implementer of this function receives a refcount to @buffer and should
- gst_buffer_unref() when the buffer is no longer needed.
- When a chain function detects an error in the data stream, it must post an
- error on the bus and return an appropriate #GstFlowReturn value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#GST_FLOW_OK for success</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the sink #GstPad that performed the chain.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
- flag is set, @parent is guaranteed to be not-%NULL and remain valid
- during the execution of this function.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="full">
- <doc xml:space="preserve">the #GstBuffer that is chained, not %NULL.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadChainListFunction" c:type="GstPadChainListFunction">
- <doc xml:space="preserve">A function that will be called on sinkpads when chaining buffer lists.
- The function typically processes the data contained in the buffer list and
- either consumes the data or passes it on to the internally linked pad(s).
- The implementer of this function receives a refcount to @list and
- should gst_buffer_list_unref() when the list is no longer needed.
- When a chainlist function detects an error in the data stream, it must
- post an error on the bus and return an appropriate #GstFlowReturn value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#GST_FLOW_OK for success</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the sink #GstPad that performed the chain.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
- flag is set, @parent is guaranteed to be not-%NULL and remain valid
- during the execution of this function.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="list" transfer-ownership="full">
- <doc xml:space="preserve">the #GstBufferList that is chained, not %NULL.</doc>
- <type name="BufferList" c:type="GstBufferList*"/>
- </parameter>
- </parameters>
- </callback>
- <record name="PadClass"
- c:type="GstPadClass"
- glib:is-gtype-struct-for="Pad">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="linked">
- <callback name="linked">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="peer" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="unlinked">
- <callback name="unlinked">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="peer" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </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="PadDirection"
- glib:type-name="GstPadDirection"
- glib:get-type="gst_pad_direction_get_type"
- c:type="GstPadDirection">
- <doc xml:space="preserve">The direction of a pad.</doc>
- <member name="unknown"
- value="0"
- c:identifier="GST_PAD_UNKNOWN"
- glib:nick="unknown">
- <doc xml:space="preserve">direction is unknown.</doc>
- </member>
- <member name="src" value="1" c:identifier="GST_PAD_SRC" glib:nick="src">
- <doc xml:space="preserve">the pad is a source pad.</doc>
- </member>
- <member name="sink"
- value="2"
- c:identifier="GST_PAD_SINK"
- glib:nick="sink">
- <doc xml:space="preserve">the pad is a sink pad.</doc>
- </member>
- </enumeration>
- <callback name="PadEventFullFunction"
- c:type="GstPadEventFullFunction"
- version="1.8">
- <doc xml:space="preserve">Function signature to handle an event for the pad.
- This variant is for specific elements that will take into account the
- last downstream flow return (from a pad push), in which case they can
- return it.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%GST_FLOW_OK if the event was handled properly, or any other
- #GstFlowReturn dependent on downstream state.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to handle the event.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
- flag is set, @parent is guaranteed to be not-%NULL and remain valid
- during the execution of this function.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="event" transfer-ownership="full">
- <doc xml:space="preserve">the #GstEvent to handle.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadEventFunction" c:type="GstPadEventFunction">
- <doc xml:space="preserve">Function signature to handle an event for the pad.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pad could handle the event.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to handle the event.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
- flag is set, @parent is guaranteed to be not-%NULL and remain valid
- during the execution of this function.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="event" transfer-ownership="full">
- <doc xml:space="preserve">the #GstEvent to handle.</doc>
- <type name="Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="PadFlags"
- glib:type-name="GstPadFlags"
- glib:get-type="gst_pad_flags_get_type"
- c:type="GstPadFlags">
- <doc xml:space="preserve">Pad state flags</doc>
- <member name="blocked"
- value="16"
- c:identifier="GST_PAD_FLAG_BLOCKED"
- glib:nick="blocked">
- <doc xml:space="preserve">is dataflow on a pad blocked</doc>
- </member>
- <member name="flushing"
- value="32"
- c:identifier="GST_PAD_FLAG_FLUSHING"
- glib:nick="flushing">
- <doc xml:space="preserve">is pad flushing</doc>
- </member>
- <member name="eos"
- value="64"
- c:identifier="GST_PAD_FLAG_EOS"
- glib:nick="eos">
- <doc xml:space="preserve">is pad in EOS state</doc>
- </member>
- <member name="blocking"
- value="128"
- c:identifier="GST_PAD_FLAG_BLOCKING"
- glib:nick="blocking">
- <doc xml:space="preserve">is pad currently blocking on a buffer or event</doc>
- </member>
- <member name="need_parent"
- value="256"
- c:identifier="GST_PAD_FLAG_NEED_PARENT"
- glib:nick="need-parent">
- <doc xml:space="preserve">ensure that there is a parent object before calling
- into the pad callbacks.</doc>
- </member>
- <member name="need_reconfigure"
- value="512"
- c:identifier="GST_PAD_FLAG_NEED_RECONFIGURE"
- glib:nick="need-reconfigure">
- <doc xml:space="preserve">the pad should be reconfigured/renegotiated.
- The flag has to be unset manually after
- reconfiguration happened.</doc>
- </member>
- <member name="pending_events"
- value="1024"
- c:identifier="GST_PAD_FLAG_PENDING_EVENTS"
- glib:nick="pending-events">
- <doc xml:space="preserve">the pad has pending events</doc>
- </member>
- <member name="fixed_caps"
- value="2048"
- c:identifier="GST_PAD_FLAG_FIXED_CAPS"
- glib:nick="fixed-caps">
- <doc xml:space="preserve">the pad is using fixed caps. This means that
- once the caps are set on the pad, the default caps query function
- will only return those caps.</doc>
- </member>
- <member name="proxy_caps"
- value="4096"
- c:identifier="GST_PAD_FLAG_PROXY_CAPS"
- glib:nick="proxy-caps">
- <doc xml:space="preserve">the default event and query handler will forward
- all events and queries to the internally linked pads
- instead of discarding them.</doc>
- </member>
- <member name="proxy_allocation"
- value="8192"
- c:identifier="GST_PAD_FLAG_PROXY_ALLOCATION"
- glib:nick="proxy-allocation">
- <doc xml:space="preserve">the default query handler will forward
- allocation queries to the internally linked pads
- instead of discarding them.</doc>
- </member>
- <member name="proxy_scheduling"
- value="16384"
- c:identifier="GST_PAD_FLAG_PROXY_SCHEDULING"
- glib:nick="proxy-scheduling">
- <doc xml:space="preserve">the default query handler will forward
- scheduling queries to the internally linked pads
- instead of discarding them.</doc>
- </member>
- <member name="accept_intersect"
- value="32768"
- c:identifier="GST_PAD_FLAG_ACCEPT_INTERSECT"
- glib:nick="accept-intersect">
- <doc xml:space="preserve">the default accept-caps handler will check
- it the caps intersect the query-caps result instead
- of checking for a subset. This is interesting for
- parsers that can accept incompletely specified caps.</doc>
- </member>
- <member name="accept_template"
- value="65536"
- c:identifier="GST_PAD_FLAG_ACCEPT_TEMPLATE"
- glib:nick="accept-template">
- <doc xml:space="preserve">the default accept-caps handler will use
- the template pad caps instead of query caps to
- compare with the accept caps. Use this in combination
- with %GST_PAD_FLAG_ACCEPT_INTERSECT. (Since 1.6)</doc>
- </member>
- <member name="last"
- value="1048576"
- c:identifier="GST_PAD_FLAG_LAST"
- glib:nick="last">
- <doc xml:space="preserve">offset to define more flags</doc>
- </member>
- </bitfield>
- <callback name="PadForwardFunction" c:type="GstPadForwardFunction">
- <doc xml:space="preserve">A forward function is called for all internally linked pads, see
- gst_pad_forward().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the dispatching procedure has to be stopped.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad that is forwarded.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="1">
- <doc xml:space="preserve">the gpointer to optional user data.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadGetRangeFunction" c:type="GstPadGetRangeFunction">
- <doc xml:space="preserve">This function will be called on source pads when a peer element
- request a buffer at the specified @offset and @length. If this function
- returns #GST_FLOW_OK, the result buffer will be stored in @buffer. The
- contents of @buffer is invalid for any other return value.
- This function is installed on a source pad with
- gst_pad_set_getrange_function() and can only be called on source pads after
- they are successfully activated with gst_pad_activate_mode() with the
- #GST_PAD_MODE_PULL.
- @offset and @length are always given in byte units. @offset must normally be a value
- between 0 and the length in bytes of the data available on @pad. The
- length (duration in bytes) can be retrieved with a #GST_QUERY_DURATION or with a
- #GST_QUERY_SEEKING.
- Any @offset larger or equal than the length will make the function return
- #GST_FLOW_EOS, which corresponds to EOS. In this case @buffer does not
- contain a valid buffer.
- The buffer size of @buffer will only be smaller than @length when @offset is
- near the end of the stream. In all other cases, the size of @buffer must be
- exactly the requested size.
- It is allowed to call this function with a 0 @length and valid @offset, in
- which case @buffer will contain a 0-sized buffer and the function returns
- #GST_FLOW_OK.
- When this function is called with a -1 @offset, the sequentially next buffer
- of length @length in the stream is returned.
- When this function is called with a -1 @length, a buffer with a default
- optimal length is returned in @buffer. The length might depend on the value
- of @offset.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#GST_FLOW_OK for success and a valid buffer in @buffer. Any other
- return value leaves @buffer undefined.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the src #GstPad to perform the getrange on.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
- flag is set, @parent is guaranteed to be not-%NULL and remain valid
- during the execution of this function.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">the offset of the range</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">the length of the range</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a memory location to hold the result buffer, cannot be %NULL.</doc>
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadIterIntLinkFunction" c:type="GstPadIterIntLinkFunction">
- <doc xml:space="preserve">The signature of the internal pad link iterator function.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstIterator that will iterate over all pads that are
- linked to the given pad on the inside of the parent element.
- the caller must call gst_iterator_free() after usage.</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">The #GstPad to query.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
- flag is set, @parent is guaranteed to be not-%NULL and remain valid
- during the execution of this function.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="PadLinkCheck"
- glib:type-name="GstPadLinkCheck"
- glib:get-type="gst_pad_link_check_get_type"
- c:type="GstPadLinkCheck">
- <doc xml:space="preserve">The amount of checking to be done when linking pads. @GST_PAD_LINK_CHECK_CAPS
- and @GST_PAD_LINK_CHECK_TEMPLATE_CAPS are mutually exclusive. If both are
- specified, expensive but safe @GST_PAD_LINK_CHECK_CAPS are performed.
- <warning><para>
- Only disable some of the checks if you are 100% certain you know the link
- will not fail because of hierarchy/caps compatibility failures. If uncertain,
- use the default checks (%GST_PAD_LINK_CHECK_DEFAULT) or the regular methods
- for linking the pads.
- </para></warning></doc>
- <member name="nothing"
- value="0"
- c:identifier="GST_PAD_LINK_CHECK_NOTHING"
- glib:nick="nothing">
- <doc xml:space="preserve">Don't check hierarchy or caps compatibility.</doc>
- </member>
- <member name="hierarchy"
- value="1"
- c:identifier="GST_PAD_LINK_CHECK_HIERARCHY"
- glib:nick="hierarchy">
- <doc xml:space="preserve">Check the pads have same parents/grandparents.
- Could be omitted if it is already known that the two elements that own the
- pads are in the same bin.</doc>
- </member>
- <member name="template_caps"
- value="2"
- c:identifier="GST_PAD_LINK_CHECK_TEMPLATE_CAPS"
- glib:nick="template-caps">
- <doc xml:space="preserve">Check if the pads are compatible by using
- their template caps. This is much faster than @GST_PAD_LINK_CHECK_CAPS, but
- would be unsafe e.g. if one pad has %GST_CAPS_ANY.</doc>
- </member>
- <member name="caps"
- value="4"
- c:identifier="GST_PAD_LINK_CHECK_CAPS"
- glib:nick="caps">
- <doc xml:space="preserve">Check if the pads are compatible by comparing the
- caps returned by gst_pad_query_caps().</doc>
- </member>
- <member name="default"
- value="5"
- c:identifier="GST_PAD_LINK_CHECK_DEFAULT"
- glib:nick="default">
- <doc xml:space="preserve">The default checks done when linking
- pads (i.e. the ones used by gst_pad_link()).</doc>
- </member>
- </bitfield>
- <callback name="PadLinkFunction" c:type="GstPadLinkFunction">
- <doc xml:space="preserve">Function signature to handle a new link on the pad.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the result of the link with the specified peer.</doc>
- <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad that is linked.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
- flag is set, @parent is guaranteed to be not-%NULL and remain valid
- during the execution of this function.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="peer" transfer-ownership="none">
- <doc xml:space="preserve">the peer #GstPad of the link</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="PadLinkReturn"
- glib:type-name="GstPadLinkReturn"
- glib:get-type="gst_pad_link_return_get_type"
- c:type="GstPadLinkReturn">
- <doc xml:space="preserve">Result values from gst_pad_link and friends.</doc>
- <member name="ok"
- value="0"
- c:identifier="GST_PAD_LINK_OK"
- glib:nick="ok">
- <doc xml:space="preserve">link succeeded</doc>
- </member>
- <member name="wrong_hierarchy"
- value="-1"
- c:identifier="GST_PAD_LINK_WRONG_HIERARCHY"
- glib:nick="wrong-hierarchy">
- <doc xml:space="preserve">pads have no common grandparent</doc>
- </member>
- <member name="was_linked"
- value="-2"
- c:identifier="GST_PAD_LINK_WAS_LINKED"
- glib:nick="was-linked">
- <doc xml:space="preserve">pad was already linked</doc>
- </member>
- <member name="wrong_direction"
- value="-3"
- c:identifier="GST_PAD_LINK_WRONG_DIRECTION"
- glib:nick="wrong-direction">
- <doc xml:space="preserve">pads have wrong direction</doc>
- </member>
- <member name="noformat"
- value="-4"
- c:identifier="GST_PAD_LINK_NOFORMAT"
- glib:nick="noformat">
- <doc xml:space="preserve">pads do not have common format</doc>
- </member>
- <member name="nosched"
- value="-5"
- c:identifier="GST_PAD_LINK_NOSCHED"
- glib:nick="nosched">
- <doc xml:space="preserve">pads cannot cooperate in scheduling</doc>
- </member>
- <member name="refused"
- value="-6"
- c:identifier="GST_PAD_LINK_REFUSED"
- glib:nick="refused">
- <doc xml:space="preserve">refused for some reason</doc>
- </member>
- </enumeration>
- <enumeration name="PadMode"
- glib:type-name="GstPadMode"
- glib:get-type="gst_pad_mode_get_type"
- c:type="GstPadMode">
- <doc xml:space="preserve">The status of a GstPad. After activating a pad, which usually happens when the
- parent element goes from READY to PAUSED, the GstPadMode defines if the
- pad operates in push or pull mode.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_PAD_MODE_NONE"
- glib:nick="none">
- <doc xml:space="preserve">Pad will not handle dataflow</doc>
- </member>
- <member name="push"
- value="1"
- c:identifier="GST_PAD_MODE_PUSH"
- glib:nick="push">
- <doc xml:space="preserve">Pad handles dataflow in downstream push mode</doc>
- </member>
- <member name="pull"
- value="2"
- c:identifier="GST_PAD_MODE_PULL"
- glib:nick="pull">
- <doc xml:space="preserve">Pad handles dataflow in upstream pull mode</doc>
- </member>
- <function name="get_name" c:identifier="gst_pad_mode_get_name">
- <doc xml:space="preserve">Return the name of a pad mode, for use in debug messages mostly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">short mnemonic for pad mode @mode</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the pad mode</doc>
- <type name="PadMode" c:type="GstPadMode"/>
- </parameter>
- </parameters>
- </function>
- </enumeration>
- <enumeration name="PadPresence"
- glib:type-name="GstPadPresence"
- glib:get-type="gst_pad_presence_get_type"
- c:type="GstPadPresence">
- <doc xml:space="preserve">Indicates when this pad will become available.</doc>
- <member name="always"
- value="0"
- c:identifier="GST_PAD_ALWAYS"
- glib:nick="always">
- <doc xml:space="preserve">the pad is always available</doc>
- </member>
- <member name="sometimes"
- value="1"
- c:identifier="GST_PAD_SOMETIMES"
- glib:nick="sometimes">
- <doc xml:space="preserve">the pad will become available depending on the media stream</doc>
- </member>
- <member name="request"
- value="2"
- c:identifier="GST_PAD_REQUEST"
- glib:nick="request">
- <doc xml:space="preserve">the pad is only available on request with
- gst_element_request_pad().</doc>
- </member>
- </enumeration>
- <record name="PadPrivate" c:type="GstPadPrivate" disguised="1">
- </record>
- <callback name="PadProbeCallback" c:type="GstPadProbeCallback">
- <doc xml:space="preserve">Callback used by gst_pad_add_probe(). Gets called to notify about the current
- blocking type.
- The callback is allowed to modify the data pointer in @info.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadProbeReturn</doc>
- <type name="PadProbeReturn" c:type="GstPadProbeReturn"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad that is blocked</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">#GstPadProbeInfo</doc>
- <type name="PadProbeInfo" c:type="GstPadProbeInfo*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">the gpointer to optional user data.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <record name="PadProbeInfo" c:type="GstPadProbeInfo">
- <doc xml:space="preserve">Info passed in the #GstPadProbeCallback.</doc>
- <field name="type" writable="1">
- <doc xml:space="preserve">the current probe type</doc>
- <type name="PadProbeType" c:type="GstPadProbeType"/>
- </field>
- <field name="id" writable="1">
- <doc xml:space="preserve">the id of the probe</doc>
- <type name="gulong" c:type="gulong"/>
- </field>
- <field name="data" writable="1">
- <doc xml:space="preserve">type specific data, check the @type field to know the
- datatype. This field can be %NULL.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="offset" writable="1">
- <doc xml:space="preserve">offset of pull probe, this field is valid when @type contains
- #GST_PAD_PROBE_TYPE_PULL</doc>
- <type name="guint64" c:type="guint64"/>
- </field>
- <field name="size" writable="1">
- <doc xml:space="preserve">size of pull probe, this field is valid when @type contains
- #GST_PAD_PROBE_TYPE_PULL</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <union name="ABI" c:type="ABI">
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- <record name="abi" c:type="abi">
- <field name="flow_ret" writable="1">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </field>
- </record>
- </union>
- <method name="get_buffer" c:identifier="gst_pad_probe_info_get_buffer">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The #GstBuffer from the probe</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadProbeInfo</doc>
- <type name="PadProbeInfo" c:type="GstPadProbeInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_buffer_list"
- c:identifier="gst_pad_probe_info_get_buffer_list">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The #GstBufferList from the probe</doc>
- <type name="BufferList" c:type="GstBufferList*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadProbeInfo</doc>
- <type name="PadProbeInfo" c:type="GstPadProbeInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_event" c:identifier="gst_pad_probe_info_get_event">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The #GstEvent from the probe</doc>
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadProbeInfo</doc>
- <type name="PadProbeInfo" c:type="GstPadProbeInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_query" c:identifier="gst_pad_probe_info_get_query">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The #GstQuery from the probe</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadProbeInfo</doc>
- <type name="PadProbeInfo" c:type="GstPadProbeInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <enumeration name="PadProbeReturn"
- glib:type-name="GstPadProbeReturn"
- glib:get-type="gst_pad_probe_return_get_type"
- c:type="GstPadProbeReturn">
- <doc xml:space="preserve">Different return values for the #GstPadProbeCallback.</doc>
- <member name="drop"
- value="0"
- c:identifier="GST_PAD_PROBE_DROP"
- glib:nick="drop">
- <doc xml:space="preserve">drop data in data probes. For push mode this means that
- the data item is not sent downstream. For pull mode, it means that
- the data item is not passed upstream. In both cases, no more probes
- are called and #GST_FLOW_OK or %TRUE is returned to the caller.</doc>
- </member>
- <member name="ok"
- value="1"
- c:identifier="GST_PAD_PROBE_OK"
- glib:nick="ok">
- <doc xml:space="preserve">normal probe return value. This leaves the probe in
- place, and defers decisions about dropping or passing data to other
- probes, if any. If there are no other probes, the default behaviour
- for the probe type applies (block for blocking probes, and pass for
- non-blocking probes).</doc>
- </member>
- <member name="remove"
- value="2"
- c:identifier="GST_PAD_PROBE_REMOVE"
- glib:nick="remove">
- <doc xml:space="preserve">remove this probe.</doc>
- </member>
- <member name="pass"
- value="3"
- c:identifier="GST_PAD_PROBE_PASS"
- glib:nick="pass">
- <doc xml:space="preserve">pass the data item in the block probe and block on the
- next item.</doc>
- </member>
- <member name="handled"
- value="4"
- c:identifier="GST_PAD_PROBE_HANDLED"
- glib:nick="handled">
- <doc xml:space="preserve">Data has been handled in the probe and will not be
- forwarded further. For events and buffers this is the same behaviour as
- @GST_PAD_PROBE_DROP (except that in this case you need to unref the buffer
- or event yourself). For queries it will also return %TRUE to the caller.
- The probe can also modify the #GstFlowReturn value by using the
- #GST_PAD_PROBE_INFO_FLOW_RETURN() accessor.
- Note that the resulting query must contain valid entries.
- Since: 1.6</doc>
- </member>
- </enumeration>
- <bitfield name="PadProbeType"
- glib:type-name="GstPadProbeType"
- glib:get-type="gst_pad_probe_type_get_type"
- c:type="GstPadProbeType">
- <doc xml:space="preserve">The different probing types that can occur. When either one of
- @GST_PAD_PROBE_TYPE_IDLE or @GST_PAD_PROBE_TYPE_BLOCK is used, the probe will be a
- blocking probe.</doc>
- <member name="invalid"
- value="0"
- c:identifier="GST_PAD_PROBE_TYPE_INVALID"
- glib:nick="invalid">
- <doc xml:space="preserve">invalid probe type</doc>
- </member>
- <member name="idle"
- value="1"
- c:identifier="GST_PAD_PROBE_TYPE_IDLE"
- glib:nick="idle">
- <doc xml:space="preserve">probe idle pads and block while the callback is called</doc>
- </member>
- <member name="block"
- value="2"
- c:identifier="GST_PAD_PROBE_TYPE_BLOCK"
- glib:nick="block">
- <doc xml:space="preserve">probe and block pads</doc>
- </member>
- <member name="buffer"
- value="16"
- c:identifier="GST_PAD_PROBE_TYPE_BUFFER"
- glib:nick="buffer">
- <doc xml:space="preserve">probe buffers</doc>
- </member>
- <member name="buffer_list"
- value="32"
- c:identifier="GST_PAD_PROBE_TYPE_BUFFER_LIST"
- glib:nick="buffer-list">
- <doc xml:space="preserve">probe buffer lists</doc>
- </member>
- <member name="event_downstream"
- value="64"
- c:identifier="GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM"
- glib:nick="event-downstream">
- <doc xml:space="preserve">probe downstream events</doc>
- </member>
- <member name="event_upstream"
- value="128"
- c:identifier="GST_PAD_PROBE_TYPE_EVENT_UPSTREAM"
- glib:nick="event-upstream">
- <doc xml:space="preserve">probe upstream events</doc>
- </member>
- <member name="event_flush"
- value="256"
- c:identifier="GST_PAD_PROBE_TYPE_EVENT_FLUSH"
- glib:nick="event-flush">
- <doc xml:space="preserve">probe flush events. This probe has to be
- explicitly enabled and is not included in the
- @@GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM or
- @@GST_PAD_PROBE_TYPE_EVENT_UPSTREAM probe types.</doc>
- </member>
- <member name="query_downstream"
- value="512"
- c:identifier="GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM"
- glib:nick="query-downstream">
- <doc xml:space="preserve">probe downstream queries</doc>
- </member>
- <member name="query_upstream"
- value="1024"
- c:identifier="GST_PAD_PROBE_TYPE_QUERY_UPSTREAM"
- glib:nick="query-upstream">
- <doc xml:space="preserve">probe upstream queries</doc>
- </member>
- <member name="push"
- value="4096"
- c:identifier="GST_PAD_PROBE_TYPE_PUSH"
- glib:nick="push">
- <doc xml:space="preserve">probe push</doc>
- </member>
- <member name="pull"
- value="8192"
- c:identifier="GST_PAD_PROBE_TYPE_PULL"
- glib:nick="pull">
- <doc xml:space="preserve">probe pull</doc>
- </member>
- <member name="blocking"
- value="3"
- c:identifier="GST_PAD_PROBE_TYPE_BLOCKING"
- glib:nick="blocking">
- <doc xml:space="preserve">probe and block at the next opportunity, at data flow or when idle</doc>
- </member>
- <member name="data_downstream"
- value="112"
- c:identifier="GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM"
- glib:nick="data-downstream">
- <doc xml:space="preserve">probe downstream data (buffers, buffer lists, and events)</doc>
- </member>
- <member name="data_upstream"
- value="128"
- c:identifier="GST_PAD_PROBE_TYPE_DATA_UPSTREAM"
- glib:nick="data-upstream">
- <doc xml:space="preserve">probe upstream data (events)</doc>
- </member>
- <member name="data_both"
- value="240"
- c:identifier="GST_PAD_PROBE_TYPE_DATA_BOTH"
- glib:nick="data-both">
- <doc xml:space="preserve">probe upstream and downstream data (buffers, buffer lists, and events)</doc>
- </member>
- <member name="block_downstream"
- value="114"
- c:identifier="GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM"
- glib:nick="block-downstream">
- <doc xml:space="preserve">probe and block downstream data (buffers, buffer lists, and events)</doc>
- </member>
- <member name="block_upstream"
- value="130"
- c:identifier="GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM"
- glib:nick="block-upstream">
- <doc xml:space="preserve">probe and block upstream data (events)</doc>
- </member>
- <member name="event_both"
- value="192"
- c:identifier="GST_PAD_PROBE_TYPE_EVENT_BOTH"
- glib:nick="event-both">
- <doc xml:space="preserve">probe upstream and downstream events</doc>
- </member>
- <member name="query_both"
- value="1536"
- c:identifier="GST_PAD_PROBE_TYPE_QUERY_BOTH"
- glib:nick="query-both">
- <doc xml:space="preserve">probe upstream and downstream queries</doc>
- </member>
- <member name="all_both"
- value="1776"
- c:identifier="GST_PAD_PROBE_TYPE_ALL_BOTH"
- glib:nick="all-both">
- <doc xml:space="preserve">probe upstream events and queries and downstream buffers, buffer lists, events and queries</doc>
- </member>
- <member name="scheduling"
- value="12288"
- c:identifier="GST_PAD_PROBE_TYPE_SCHEDULING"
- glib:nick="scheduling">
- <doc xml:space="preserve">probe push and pull</doc>
- </member>
- </bitfield>
- <callback name="PadQueryFunction" c:type="GstPadQueryFunction">
- <doc xml:space="preserve">The signature of the query function.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to query.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
- flag is set, @parent is guaranteed to be not-%NULL and remain valid
- during the execution of this function.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">the #GstQuery object to execute</doc>
- <type name="Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadStickyEventsForeachFunction"
- c:type="GstPadStickyEventsForeachFunction">
- <doc xml:space="preserve">Callback used by gst_pad_sticky_events_foreach().
- When this function returns %TRUE, the next event will be
- returned. When %FALSE is returned, gst_pad_sticky_events_foreach() will return.
- When @event is set to %NULL, the item will be removed from the list of sticky events.
- @event can be replaced by assigning a new reference to it.
- This function is responsible for unreffing the old event when
- removing or modifying.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the iteration should continue</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="event"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a sticky #GstEvent.</doc>
- <type name="Event" c:type="GstEvent**"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">the #gpointer to optional user data.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <class name="PadTemplate"
- c:symbol-prefix="pad_template"
- c:type="GstPadTemplate"
- parent="Object"
- glib:type-name="GstPadTemplate"
- glib:get-type="gst_pad_template_get_type"
- glib:type-struct="PadTemplateClass">
- <doc xml:space="preserve">Padtemplates describe the possible media types a pad or an elementfactory can
- handle. This allows for both inspection of handled types before loading the
- element plugin as well as identifying pads on elements that are not yet
- created (request or sometimes pads).
- Pad and PadTemplates have #GstCaps attached to it to describe the media type
- they are capable of dealing with. gst_pad_template_get_caps() or
- GST_PAD_TEMPLATE_CAPS() are used to get the caps of a padtemplate. It's not
- possible to modify the caps of a padtemplate after creation.
- PadTemplates have a #GstPadPresence property which identifies the lifetime
- of the pad and that can be retrieved with GST_PAD_TEMPLATE_PRESENCE(). Also
- the direction of the pad can be retrieved from the #GstPadTemplate with
- GST_PAD_TEMPLATE_DIRECTION().
- The GST_PAD_TEMPLATE_NAME_TEMPLATE () is important for GST_PAD_REQUEST pads
- because it has to be used as the name in the gst_element_get_request_pad()
- call to instantiate a pad from this template.
- Padtemplates can be created with gst_pad_template_new() or with
- gst_static_pad_template_get (), which creates a #GstPadTemplate from a
- #GstStaticPadTemplate that can be filled with the
- convenient GST_STATIC_PAD_TEMPLATE() macro.
- A padtemplate can be used to create a pad (see gst_pad_new_from_template()
- or gst_pad_new_from_static_template ()) or to add to an element class
- (see gst_element_class_add_pad_template ()).
- The following code example shows the code to create a pad from a padtemplate.
- |[<!-- language="C" -->
- GstStaticPadTemplate my_template =
- GST_STATIC_PAD_TEMPLATE (
- "sink", // the name of the pad
- GST_PAD_SINK, // the direction of the pad
- GST_PAD_ALWAYS, // when this pad will be present
- GST_STATIC_CAPS ( // the capabilities of the padtemplate
- "audio/x-raw, "
- "channels = (int) [ 1, 6 ]"
- )
- );
- void
- my_method (void)
- {
- GstPad *pad;
- pad = gst_pad_new_from_static_template (&amp;my_template, "sink");
- ...
- }
- ]|
- The following example shows you how to add the padtemplate to an
- element class, this is usually done in the class_init of the class:
- |[<!-- language="C" -->
- static void
- my_element_class_init (GstMyElementClass *klass)
- {
- GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&amp;my_template));
- }
- ]|</doc>
- <constructor name="new" c:identifier="gst_pad_template_new">
- <doc xml:space="preserve">Creates a new pad template with a name according to the given template
- and with the given arguments.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a new #GstPadTemplate.</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </return-value>
- <parameters>
- <parameter name="name_template" transfer-ownership="none">
- <doc xml:space="preserve">the name template.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="direction" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPadDirection of the template.</doc>
- <type name="PadDirection" c:type="GstPadDirection"/>
- </parameter>
- <parameter name="presence" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPadPresence of the pad.</doc>
- <type name="PadPresence" c:type="GstPadPresence"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps set for the template.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </constructor>
- <virtual-method name="pad_created" invoker="pad_created">
- <doc xml:space="preserve">Emit the pad-created signal for this template when created by this pad.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="templ" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadTemplate that has been created</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </instance-parameter>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad that created it</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_caps" c:identifier="gst_pad_template_get_caps">
- <doc xml:space="preserve">Gets the capabilities of the pad template.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the #GstCaps of the pad template.
- Unref after usage.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="templ" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadTemplate to get capabilities of.</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="pad_created" c:identifier="gst_pad_template_pad_created">
- <doc xml:space="preserve">Emit the pad-created signal for this template when created by this pad.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="templ" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadTemplate that has been created</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </instance-parameter>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad that created it</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <property name="caps"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The capabilities of the pad described by the pad template.</doc>
- <type name="Caps"/>
- </property>
- <property name="direction"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The direction of the pad described by the pad template.</doc>
- <type name="PadDirection"/>
- </property>
- <property name="name-template"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The name template of the pad template.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="presence"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">When the pad described by the pad template will become available.</doc>
- <type name="PadPresence"/>
- </property>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="name_template">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="direction">
- <type name="PadDirection" c:type="GstPadDirection"/>
- </field>
- <field name="presence">
- <type name="PadPresence" c:type="GstPadPresence"/>
- </field>
- <field name="caps">
- <type name="Caps" c:type="GstCaps*"/>
- </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="pad-created" when="last">
- <doc xml:space="preserve">This signal is fired when an element creates a pad from this template.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the pad that was created.</doc>
- <type name="Pad"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="PadTemplateClass"
- c:type="GstPadTemplateClass"
- glib:is-gtype-struct-for="PadTemplate">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="pad_created">
- <callback name="pad_created">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="templ" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadTemplate that has been created</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad that created it</doc>
- <type name="Pad" c:type="GstPad*"/>
- </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="PadTemplateFlags"
- glib:type-name="GstPadTemplateFlags"
- glib:get-type="gst_pad_template_flags_get_type"
- c:type="GstPadTemplateFlags">
- <doc xml:space="preserve">Flags for the padtemplate</doc>
- <member name="last"
- value="256"
- c:identifier="GST_PAD_TEMPLATE_FLAG_LAST"
- glib:nick="last">
- <doc xml:space="preserve">first flag that can be used by subclasses.</doc>
- </member>
- </bitfield>
- <callback name="PadUnlinkFunction" c:type="GstPadUnlinkFunction">
- <doc xml:space="preserve">Function signature to handle a unlinking the pad prom its peer.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad that is linked.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
- flag is set, @parent is guaranteed to be not-%NULL and remain valid
- during the execution of this function.</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </callback>
- <class name="ParamFraction"
- c:symbol-prefix="param_spec_fraction"
- parent="GObject.ParamSpec"
- glib:type-name="GstParamFraction"
- glib:get-type="gst_param_spec_fraction_get_type"
- glib:fundamental="1">
- </class>
- <record name="ParamSpecFraction" c:type="GstParamSpecFraction">
- <doc xml:space="preserve">A GParamSpec derived structure that contains the meta data for fractional
- properties.</doc>
- <field name="parent_instance" writable="1">
- <doc xml:space="preserve">super class</doc>
- <type name="GObject.ParamSpec" c:type="GParamSpec"/>
- </field>
- <field name="min_num" writable="1">
- <doc xml:space="preserve">minimal numerator</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="min_den" writable="1">
- <doc xml:space="preserve">minimal denominator</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="max_num" writable="1">
- <doc xml:space="preserve">maximal numerator</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="max_den" writable="1">
- <doc xml:space="preserve">maximal denominator</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="def_num" writable="1">
- <doc xml:space="preserve">default numerator</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="def_den" writable="1">
- <doc xml:space="preserve">default denominator</doc>
- <type name="gint" c:type="gint"/>
- </field>
- </record>
- <record name="ParentBufferMeta" c:type="GstParentBufferMeta" version="1.6">
- <doc xml:space="preserve">The #GstParentBufferMeta is a #GstMeta which can be attached to a #GstBuffer
- to hold a reference to another buffer that is only released when the child
- #GstBuffer is released.
- Typically, #GstParentBufferMeta is used when the child buffer is directly
- using the #GstMemory of the parent buffer, and wants to prevent the parent
- buffer from being returned to a buffer pool until the #GstMemory is available
- for re-use.</doc>
- <field name="parent" writable="1">
- <doc xml:space="preserve">the parent #GstMeta structure</doc>
- <type name="Meta" c:type="GstMeta"/>
- </field>
- <field name="buffer" writable="1">
- <doc xml:space="preserve">the #GstBuffer on which a reference is being held.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </field>
- <function name="get_info"
- c:identifier="gst_parent_buffer_meta_get_info"
- version="1.6">
- <doc xml:space="preserve">Get the global #GstMetaInfo describing the #GstParentBufferMeta meta.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The #GstMetaInfo</doc>
- <type name="MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- </function>
- </record>
- <record name="ParseContext"
- c:type="GstParseContext"
- glib:type-name="GstParseContext"
- glib:get-type="gst_parse_context_get_type"
- c:symbol-prefix="parse_context">
- <doc xml:space="preserve">Opaque structure.</doc>
- <constructor name="new" c:identifier="gst_parse_context_new">
- <doc xml:space="preserve">Allocates a parse context for use with gst_parse_launch_full() or
- gst_parse_launchv_full().
- Free-function: gst_parse_context_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly-allocated parse context. Free with
- gst_parse_context_free() when no longer needed.</doc>
- <type name="ParseContext" c:type="GstParseContext*"/>
- </return-value>
- </constructor>
- <method name="free" c:identifier="gst_parse_context_free">
- <doc xml:space="preserve">Frees a parse context previously allocated with gst_parse_context_new().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="full">
- <doc xml:space="preserve">a #GstParseContext</doc>
- <type name="ParseContext" c:type="GstParseContext*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_missing_elements"
- c:identifier="gst_parse_context_get_missing_elements">
- <doc xml:space="preserve">Retrieve missing elements from a previous run of gst_parse_launch_full()
- or gst_parse_launchv_full(). Will only return results if an error code
- of %GST_PARSE_ERROR_NO_SUCH_ELEMENT was returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a
- %NULL-terminated array of element factory name strings of missing
- elements. Free with g_strfreev() when no longer needed.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">a #GstParseContext</doc>
- <type name="ParseContext" c:type="GstParseContext*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <enumeration name="ParseError"
- glib:type-name="GstParseError"
- glib:get-type="gst_parse_error_get_type"
- c:type="GstParseError"
- glib:error-domain="gst_parse_error">
- <doc xml:space="preserve">The different parsing errors that can occur.</doc>
- <member name="syntax"
- value="0"
- c:identifier="GST_PARSE_ERROR_SYNTAX"
- glib:nick="syntax">
- <doc xml:space="preserve">A syntax error occurred.</doc>
- </member>
- <member name="no_such_element"
- value="1"
- c:identifier="GST_PARSE_ERROR_NO_SUCH_ELEMENT"
- glib:nick="no-such-element">
- <doc xml:space="preserve">The description contained an unknown element</doc>
- </member>
- <member name="no_such_property"
- value="2"
- c:identifier="GST_PARSE_ERROR_NO_SUCH_PROPERTY"
- glib:nick="no-such-property">
- <doc xml:space="preserve">An element did not have a specified property</doc>
- </member>
- <member name="link"
- value="3"
- c:identifier="GST_PARSE_ERROR_LINK"
- glib:nick="link">
- <doc xml:space="preserve">There was an error linking two pads.</doc>
- </member>
- <member name="could_not_set_property"
- value="4"
- c:identifier="GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY"
- glib:nick="could-not-set-property">
- <doc xml:space="preserve">There was an error setting a property</doc>
- </member>
- <member name="empty_bin"
- value="5"
- c:identifier="GST_PARSE_ERROR_EMPTY_BIN"
- glib:nick="empty-bin">
- <doc xml:space="preserve">An empty bin was specified.</doc>
- </member>
- <member name="empty"
- value="6"
- c:identifier="GST_PARSE_ERROR_EMPTY"
- glib:nick="empty">
- <doc xml:space="preserve">An empty description was specified</doc>
- </member>
- <member name="delayed_link"
- value="7"
- c:identifier="GST_PARSE_ERROR_DELAYED_LINK"
- glib:nick="delayed-link">
- <doc xml:space="preserve">A delayed link did not get resolved.</doc>
- </member>
- <function name="quark" c:identifier="gst_parse_error_quark">
- <doc xml:space="preserve">Get the error quark used by the parsing subsystem.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the quark of the parse errors.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- </enumeration>
- <bitfield name="ParseFlags"
- glib:type-name="GstParseFlags"
- glib:get-type="gst_parse_flags_get_type"
- c:type="GstParseFlags">
- <doc xml:space="preserve">Parsing options.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_PARSE_FLAG_NONE"
- glib:nick="none">
- <doc xml:space="preserve">Do not use any special parsing options.</doc>
- </member>
- <member name="fatal_errors"
- value="1"
- c:identifier="GST_PARSE_FLAG_FATAL_ERRORS"
- glib:nick="fatal-errors">
- <doc xml:space="preserve">Always return %NULL when an error occurs
- (default behaviour is to return partially constructed bins or elements
- in some cases)</doc>
- </member>
- <member name="no_single_element_bins"
- value="2"
- c:identifier="GST_PARSE_FLAG_NO_SINGLE_ELEMENT_BINS"
- glib:nick="no-single-element-bins">
- <doc xml:space="preserve">If a bin only has a single element,
- just return the element.</doc>
- </member>
- </bitfield>
- <class name="Pipeline"
- c:symbol-prefix="pipeline"
- c:type="GstPipeline"
- parent="Bin"
- glib:type-name="GstPipeline"
- glib:get-type="gst_pipeline_get_type"
- glib:type-struct="PipelineClass">
- <doc xml:space="preserve">A #GstPipeline is a special #GstBin used as the toplevel container for
- the filter graph. The #GstPipeline will manage the selection and
- distribution of a global #GstClock as well as provide a #GstBus to the
- application.
- gst_pipeline_new() is used to create a pipeline. when you are done with
- the pipeline, use gst_object_unref() to free its resources including all
- added #GstElement objects (if not otherwise referenced).
- Elements are added and removed from the pipeline using the #GstBin
- methods like gst_bin_add() and gst_bin_remove() (see #GstBin).
- Before changing the state of the #GstPipeline (see #GstElement) a #GstBus
- can be retrieved with gst_pipeline_get_bus(). This bus can then be
- used to receive #GstMessage from the elements in the pipeline.
- By default, a #GstPipeline will automatically flush the pending #GstBus
- messages when going to the NULL state to ensure that no circular
- references exist when no messages are read from the #GstBus. This
- behaviour can be changed with gst_pipeline_set_auto_flush_bus().
- When the #GstPipeline performs the PAUSED to PLAYING state change it will
- select a clock for the elements. The clock selection algorithm will by
- default select a clock provided by an element that is most upstream
- (closest to the source). For live pipelines (ones that return
- #GST_STATE_CHANGE_NO_PREROLL from the gst_element_set_state() call) this
- will select the clock provided by the live source. For normal pipelines
- this will select a clock provided by the sinks (most likely the audio
- sink). If no element provides a clock, a default #GstSystemClock is used.
- The clock selection can be controlled with the gst_pipeline_use_clock()
- method, which will enforce a given clock on the pipeline. With
- gst_pipeline_auto_clock() the default clock selection algorithm can be
- restored.
- A #GstPipeline maintains a running time for the elements. The running
- time is defined as the difference between the current clock time and
- the base time. When the pipeline goes to READY or a flushing seek is
- performed on it, the running time is reset to 0. When the pipeline is
- set from PLAYING to PAUSED, the current clock time is sampled and used to
- configure the base time for the elements when the pipeline is set
- to PLAYING again. The effect is that the running time (as the difference
- between the clock time and the base time) will count how much time was spent
- in the PLAYING state. This default behaviour can be changed with the
- gst_element_set_start_time() method.</doc>
- <implements name="ChildProxy"/>
- <constructor name="new" c:identifier="gst_pipeline_new">
- <doc xml:space="preserve">Create a new pipeline with the given name.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">newly created GstPipeline
- MT safe.</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">name of new pipeline</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="auto_clock" c:identifier="gst_pipeline_auto_clock">
- <doc xml:space="preserve">Let @pipeline select a clock automatically. This is the default
- behaviour.
- Use this function if you previous forced a fixed clock with
- gst_pipeline_use_clock() and want to restore the default
- pipeline clock selection algorithm.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pipeline" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPipeline</doc>
- <type name="Pipeline" c:type="GstPipeline*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_auto_flush_bus"
- c:identifier="gst_pipeline_get_auto_flush_bus">
- <doc xml:space="preserve">Check if @pipeline will automatically flush messages when going to
- the NULL state.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether the pipeline will automatically flush its bus when
- going from READY to NULL state or not.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pipeline" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPipeline</doc>
- <type name="Pipeline" c:type="GstPipeline*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_bus" c:identifier="gst_pipeline_get_bus">
- <doc xml:space="preserve">Gets the #GstBus of @pipeline. The bus allows applications to receive
- #GstMessage packets.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstBus, unref after usage.
- MT safe.</doc>
- <type name="Bus" c:type="GstBus*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pipeline" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPipeline</doc>
- <type name="Pipeline" c:type="GstPipeline*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_clock"
- c:identifier="gst_pipeline_get_clock"
- introspectable="0">
- <doc xml:space="preserve">Gets the current clock used by @pipeline. Users of object
- oriented languages should use gst_pipeline_get_pipeline_clock()
- to avoid confusion with gst_element_get_clock() which has a different behavior.
- Unlike gst_element_get_clock(), this function will always return a
- clock, even if the pipeline is not in the PLAYING state.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstClock, unref after usage.</doc>
- <type name="Clock" c:type="GstClock*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pipeline" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPipeline</doc>
- <type name="Pipeline" c:type="GstPipeline*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_delay" c:identifier="gst_pipeline_get_delay">
- <doc xml:space="preserve">Get the configured delay (see gst_pipeline_set_delay()).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The configured delay.
- MT safe.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="pipeline" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPipeline</doc>
- <type name="Pipeline" c:type="GstPipeline*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_latency"
- c:identifier="gst_pipeline_get_latency"
- version="1.6">
- <doc xml:space="preserve">Gets the latency that should be configured on the pipeline. See
- gst_pipeline_set_latency().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Latency to configure on the pipeline or GST_CLOCK_TIME_NONE</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="pipeline" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPipeline</doc>
- <type name="Pipeline" c:type="GstPipeline*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_pipeline_clock"
- c:identifier="gst_pipeline_get_pipeline_clock"
- version="1.6">
- <doc xml:space="preserve">Gets the current clock used by @pipeline.
- Unlike gst_element_get_clock(), this function will always return a
- clock, even if the pipeline is not in the PLAYING state.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstClock, unref after usage.</doc>
- <type name="Clock" c:type="GstClock*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pipeline" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPipeline</doc>
- <type name="Pipeline" c:type="GstPipeline*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_auto_flush_bus"
- c:identifier="gst_pipeline_set_auto_flush_bus">
- <doc xml:space="preserve">Usually, when a pipeline goes from READY to NULL state, it automatically
- flushes all pending messages on the bus, which is done for refcounting
- purposes, to break circular references.
- This means that applications that update state using (async) bus messages
- (e.g. do certain things when a pipeline goes from PAUSED to READY) might
- not get to see messages when the pipeline is shut down, because they might
- be flushed before they can be dispatched in the main thread. This behaviour
- can be disabled using this function.
- It is important that all messages on the bus are handled when the
- automatic flushing is disabled else memory leaks will be introduced.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pipeline" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPipeline</doc>
- <type name="Pipeline" c:type="GstPipeline*"/>
- </instance-parameter>
- <parameter name="auto_flush" transfer-ownership="none">
- <doc xml:space="preserve">whether or not to automatically flush the bus when
- the pipeline goes from READY to NULL state</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_clock"
- c:identifier="gst_pipeline_set_clock"
- introspectable="0">
- <doc xml:space="preserve">Set the clock for @pipeline. The clock will be distributed
- to all the elements managed by the pipeline.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the clock could be set on the pipeline. %FALSE if
- some element did not accept the clock.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="pipeline" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPipeline</doc>
- <type name="Pipeline" c:type="GstPipeline*"/>
- </instance-parameter>
- <parameter name="clock" transfer-ownership="none">
- <doc xml:space="preserve">the clock to set</doc>
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_delay" c:identifier="gst_pipeline_set_delay">
- <doc xml:space="preserve">Set the expected delay needed for all elements to perform the
- PAUSED to PLAYING state change. @delay will be added to the
- base time of the elements so that they wait an additional @delay
- amount of time before starting to process buffers and cannot be
- #GST_CLOCK_TIME_NONE.
- This option is used for tuning purposes and should normally not be
- used.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pipeline" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPipeline</doc>
- <type name="Pipeline" c:type="GstPipeline*"/>
- </instance-parameter>
- <parameter name="delay" transfer-ownership="none">
- <doc xml:space="preserve">the delay</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_latency"
- c:identifier="gst_pipeline_set_latency"
- version="1.6">
- <doc xml:space="preserve">Sets the latency that should be configured on the pipeline. Setting
- GST_CLOCK_TIME_NONE will restore the default behaviour of using the minimum
- latency from the LATENCY query. Setting this is usually not required and
- the pipeline will figure out an appropriate latency automatically.
- Setting a too low latency, especially lower than the minimum latency from
- the LATENCY query, will most likely cause the pipeline to fail.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pipeline" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPipeline</doc>
- <type name="Pipeline" c:type="GstPipeline*"/>
- </instance-parameter>
- <parameter name="latency" transfer-ownership="none">
- <doc xml:space="preserve">latency to configure</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="use_clock" c:identifier="gst_pipeline_use_clock">
- <doc xml:space="preserve">Force @pipeline to use the given @clock. The pipeline will
- always use the given clock even if new clock providers are added
- to this pipeline.
- If @clock is %NULL all clocking will be disabled which will make
- the pipeline run as fast as possible.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pipeline" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPipeline</doc>
- <type name="Pipeline" c:type="GstPipeline*"/>
- </instance-parameter>
- <parameter name="clock"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the clock to use</doc>
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </method>
- <property name="auto-flush-bus" writable="1" transfer-ownership="none">
- <doc xml:space="preserve">Whether or not to automatically flush all messages on the
- pipeline's bus when going from READY to NULL state. Please see
- gst_pipeline_set_auto_flush_bus() for more information on this option.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="delay" writable="1" transfer-ownership="none">
- <doc xml:space="preserve">The expected delay needed for elements to spin up to the
- PLAYING state expressed in nanoseconds.
- see gst_pipeline_set_delay() for more information on this option.</doc>
- <type name="guint64" c:type="guint64"/>
- </property>
- <property name="latency"
- version="1.6"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Latency to configure on the pipeline. See gst_pipeline_set_latency().</doc>
- <type name="guint64" c:type="guint64"/>
- </property>
- <field name="bin">
- <type name="Bin" c:type="GstBin"/>
- </field>
- <field name="fixed_clock">
- <doc xml:space="preserve">The fixed clock of the pipeline, used when
- GST_PIPELINE_FLAG_FIXED_CLOCK is set.</doc>
- <type name="Clock" c:type="GstClock*"/>
- </field>
- <field name="stream_time">
- <doc xml:space="preserve">The stream time of the pipeline. A better name for this
- property would be the running_time, the total time spent in the
- PLAYING state without being flushed. (deprecated, use the start_time
- on GstElement).</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="delay">
- <doc xml:space="preserve">Extra delay added to base_time to compensate for computing delays
- when setting elements to PLAYING.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="PipelinePrivate" c:type="GstPipelinePrivate*"/>
- </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="PipelineClass"
- c:type="GstPipelineClass"
- glib:is-gtype-struct-for="Pipeline">
- <field name="parent_class">
- <type name="BinClass" c:type="GstBinClass"/>
- </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="PipelineFlags"
- glib:type-name="GstPipelineFlags"
- glib:get-type="gst_pipeline_flags_get_type"
- c:type="GstPipelineFlags">
- <doc xml:space="preserve">Pipeline flags</doc>
- <member name="fixed_clock"
- value="524288"
- c:identifier="GST_PIPELINE_FLAG_FIXED_CLOCK"
- glib:nick="fixed-clock">
- <doc xml:space="preserve">this pipeline works with a fixed clock</doc>
- </member>
- <member name="last"
- value="8388608"
- c:identifier="GST_PIPELINE_FLAG_LAST"
- glib:nick="last">
- <doc xml:space="preserve">offset to define more flags</doc>
- </member>
- </bitfield>
- <record name="PipelinePrivate" c:type="GstPipelinePrivate" disguised="1">
- </record>
- <class name="Plugin"
- c:symbol-prefix="plugin"
- c:type="GstPlugin"
- parent="Object"
- glib:type-name="GstPlugin"
- glib:get-type="gst_plugin_get_type"
- glib:type-struct="PluginClass">
- <doc xml:space="preserve">GStreamer is extensible, so #GstElement instances can be loaded at runtime.
- A plugin system can provide one or more of the basic
- <application>GStreamer</application> #GstPluginFeature subclasses.
- A plugin should export a symbol <symbol>gst_plugin_desc</symbol> that is a
- struct of type #GstPluginDesc.
- the plugin loader will check the version of the core library the plugin was
- linked against and will create a new #GstPlugin. It will then call the
- #GstPluginInitFunc function that was provided in the
- <symbol>gst_plugin_desc</symbol>.
- Once you have a handle to a #GstPlugin (e.g. from the #GstRegistry), you
- can add any object that subclasses #GstPluginFeature.
- Usually plugins are always automatically loaded so you don't need to call
- gst_plugin_load() explicitly to bring it into memory. There are options to
- statically link plugins to an app or even use GStreamer without a plugin
- repository in which case gst_plugin_load() can be needed to bring the plugin
- into memory.</doc>
- <function name="list_free" c:identifier="gst_plugin_list_free">
- <doc xml:space="preserve">Unrefs each member of @list, then frees the list.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="full">
- <doc xml:space="preserve">list of #GstPlugin</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Plugin"/>
- </type>
- </parameter>
- </parameters>
- </function>
- <function name="load_by_name" c:identifier="gst_plugin_load_by_name">
- <doc xml:space="preserve">Load the named plugin. Refs the plugin.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a reference to a loaded plugin, or %NULL on error.</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name of plugin to load</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="load_file"
- c:identifier="gst_plugin_load_file"
- throws="1">
- <doc xml:space="preserve">Loads the given plugin and refs it. Caller needs to unref after use.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a reference to the existing loaded GstPlugin, a
- reference to the newly-loaded GstPlugin, or %NULL if an error occurred.</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </return-value>
- <parameters>
- <parameter name="filename" transfer-ownership="none">
- <doc xml:space="preserve">the plugin filename to load</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="register_static"
- c:identifier="gst_plugin_register_static">
- <doc xml:space="preserve">Registers a static plugin, ie. a plugin which is private to an application
- or library and contained within the application or library (as opposed to
- being shipped as a separate module file).
- You must make sure that GStreamer has been initialised (with gst_init() or
- via gst_init_get_option_group()) before calling this function.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the plugin was registered correctly, otherwise %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="major_version" transfer-ownership="none">
- <doc xml:space="preserve">the major version number of the GStreamer core that the
- plugin was compiled for, you can just use GST_VERSION_MAJOR here</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="minor_version" transfer-ownership="none">
- <doc xml:space="preserve">the minor version number of the GStreamer core that the
- plugin was compiled for, you can just use GST_VERSION_MINOR here</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">a unique name of the plugin (ideally prefixed with an application- or
- library-specific namespace prefix in order to avoid name conflicts in
- case a similar plugin with the same name ever gets added to GStreamer)</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="description" transfer-ownership="none">
- <doc xml:space="preserve">description of the plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="init_func" transfer-ownership="none" scope="call">
- <doc xml:space="preserve">pointer to the init function of this plugin.</doc>
- <type name="PluginInitFunc" c:type="GstPluginInitFunc"/>
- </parameter>
- <parameter name="version" transfer-ownership="none">
- <doc xml:space="preserve">version string of the plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="license" transfer-ownership="none">
- <doc xml:space="preserve">effective license of plugin. Must be one of the approved licenses
- (see #GstPluginDesc above) or the plugin will not be registered.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">source module plugin belongs to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="package" transfer-ownership="none">
- <doc xml:space="preserve">shipped package plugin belongs to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="origin" transfer-ownership="none">
- <doc xml:space="preserve">URL to provider of plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="register_static_full"
- c:identifier="gst_plugin_register_static_full">
- <doc xml:space="preserve">Registers a static plugin, ie. a plugin which is private to an application
- or library and contained within the application or library (as opposed to
- being shipped as a separate module file) with a #GstPluginInitFullFunc
- which allows user data to be passed to the callback function (useful
- for bindings).
- You must make sure that GStreamer has been initialised (with gst_init() or
- via gst_init_get_option_group()) before calling this function.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the plugin was registered correctly, otherwise %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="major_version" transfer-ownership="none">
- <doc xml:space="preserve">the major version number of the GStreamer core that the
- plugin was compiled for, you can just use GST_VERSION_MAJOR here</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="minor_version" transfer-ownership="none">
- <doc xml:space="preserve">the minor version number of the GStreamer core that the
- plugin was compiled for, you can just use GST_VERSION_MINOR here</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">a unique name of the plugin (ideally prefixed with an application- or
- library-specific namespace prefix in order to avoid name conflicts in
- case a similar plugin with the same name ever gets added to GStreamer)</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="description" transfer-ownership="none">
- <doc xml:space="preserve">description of the plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="init_full_func"
- transfer-ownership="none"
- scope="call"
- closure="10">
- <doc xml:space="preserve">pointer to the init function with user data
- of this plugin.</doc>
- <type name="PluginInitFullFunc" c:type="GstPluginInitFullFunc"/>
- </parameter>
- <parameter name="version" transfer-ownership="none">
- <doc xml:space="preserve">version string of the plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="license" transfer-ownership="none">
- <doc xml:space="preserve">effective license of plugin. Must be one of the approved licenses
- (see #GstPluginDesc above) or the plugin will not be registered.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">source module plugin belongs to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="package" transfer-ownership="none">
- <doc xml:space="preserve">shipped package plugin belongs to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="origin" transfer-ownership="none">
- <doc xml:space="preserve">URL to provider of plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">gpointer to user data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <method name="add_dependency" c:identifier="gst_plugin_add_dependency">
- <doc xml:space="preserve">Make GStreamer aware of external dependencies which affect the feature
- set of this plugin (ie. the elements or typefinders associated with it).
- GStreamer will re-inspect plugins with external dependencies whenever any
- of the external dependencies change. This is useful for plugins which wrap
- other plugin systems, e.g. a plugin which wraps a plugin-based visualisation
- library and makes visualisations available as GStreamer elements, or a
- codec loader which exposes elements and/or caps dependent on what external
- codec libraries are currently installed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPlugin</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </instance-parameter>
- <parameter name="env_vars"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">%NULL-terminated array of environment variables affecting the
- feature set of the plugin (e.g. an environment variable containing
- paths where to look for additional modules/plugins of a library),
- or %NULL. Environment variable names may be followed by a path component
- which will be added to the content of the environment variable, e.g.
- "HOME/.mystuff/plugins".</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- <parameter name="paths"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">%NULL-terminated array of directories/paths where dependent files
- may be, or %NULL.</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- <parameter name="names"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">%NULL-terminated array of file names (or file name suffixes,
- depending on @flags) to be used in combination with the paths from
- @paths and/or the paths extracted from the environment variables in
- @env_vars, or %NULL.</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">optional flags, or #GST_PLUGIN_DEPENDENCY_FLAG_NONE</doc>
- <type name="PluginDependencyFlags"
- c:type="GstPluginDependencyFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_dependency_simple"
- c:identifier="gst_plugin_add_dependency_simple">
- <doc xml:space="preserve">Make GStreamer aware of external dependencies which affect the feature
- set of this plugin (ie. the elements or typefinders associated with it).
- GStreamer will re-inspect plugins with external dependencies whenever any
- of the external dependencies change. This is useful for plugins which wrap
- other plugin systems, e.g. a plugin which wraps a plugin-based visualisation
- library and makes visualisations available as GStreamer elements, or a
- codec loader which exposes elements and/or caps dependent on what external
- codec libraries are currently installed.
- Convenience wrapper function for gst_plugin_add_dependency() which
- takes simple strings as arguments instead of string arrays, with multiple
- arguments separated by predefined delimiters (see above).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPlugin</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </instance-parameter>
- <parameter name="env_vars"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">one or more environment variables (separated by ':', ';' or ','),
- or %NULL. Environment variable names may be followed by a path component
- which will be added to the content of the environment variable, e.g.
- "HOME/.mystuff/plugins:MYSTUFF_PLUGINS_PATH"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="paths"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">one ore more directory paths (separated by ':' or ';' or ','),
- or %NULL. Example: "/usr/lib/mystuff/plugins"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="names"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">one or more file names or file name suffixes (separated by commas),
- or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">optional flags, or #GST_PLUGIN_DEPENDENCY_FLAG_NONE</doc>
- <type name="PluginDependencyFlags"
- c:type="GstPluginDependencyFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_cache_data" c:identifier="gst_plugin_get_cache_data">
- <doc xml:space="preserve">Gets the plugin specific data cache. If it is %NULL there is no cached data
- stored. This is the case when the registry is getting rebuilt.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">The cached data as a
- #GstStructure or %NULL.</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </return-value>
- <parameters>
- <instance-parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">a plugin</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_description" c:identifier="gst_plugin_get_description">
- <doc xml:space="preserve">Get the long descriptive name of the plugin</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the long name of the plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">plugin to get long name of</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_filename" c:identifier="gst_plugin_get_filename">
- <doc xml:space="preserve">get the filename of the plugin</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the filename of the plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">plugin to get the filename of</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_license" c:identifier="gst_plugin_get_license">
- <doc xml:space="preserve">get the license of the plugin</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the license of the plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">plugin to get the license of</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_name" c:identifier="gst_plugin_get_name">
- <doc xml:space="preserve">Get the short name of the plugin</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name of the plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">plugin to get the name of</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_origin" c:identifier="gst_plugin_get_origin">
- <doc xml:space="preserve">get the URL where the plugin comes from</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the origin of the plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">plugin to get the origin of</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_package" c:identifier="gst_plugin_get_package">
- <doc xml:space="preserve">get the package the plugin belongs to.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the package of the plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">plugin to get the package of</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_release_date_string"
- c:identifier="gst_plugin_get_release_date_string">
- <doc xml:space="preserve">Get the release date (and possibly time) in form of a string, if available.
- For normal GStreamer plugin releases this will usually just be a date in
- the form of "YYYY-MM-DD", while pre-releases and builds from git may contain
- a time component after the date as well, in which case the string will be
- formatted like "YYYY-MM-DDTHH:MMZ" (e.g. "2012-04-30T09:30Z").
- There may be plugins that do not have a valid release date set on them.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the date string of the plugin, or %NULL if not
- available.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">plugin to get the release date of</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_source" c:identifier="gst_plugin_get_source">
- <doc xml:space="preserve">get the source module the plugin belongs to.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the source of the plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">plugin to get the source of</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_version" c:identifier="gst_plugin_get_version">
- <doc xml:space="preserve">get the version of the plugin</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the version of the plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">plugin to get the version of</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_loaded" c:identifier="gst_plugin_is_loaded">
- <doc xml:space="preserve">queries if the plugin is loaded into memory</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE is loaded, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">plugin to query</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="load" c:identifier="gst_plugin_load">
- <doc xml:space="preserve">Loads @plugin. Note that the *return value* is the loaded plugin; @plugin is
- untouched. The normal use pattern of this function goes like this:
- <programlisting>
- GstPlugin *loaded_plugin;
- loaded_plugin = gst_plugin_load (plugin);
- // presumably, we're no longer interested in the potentially-unloaded plugin
- gst_object_unref (plugin);
- plugin = loaded_plugin;
- </programlisting></doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a reference to a loaded plugin, or %NULL on error.</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </return-value>
- <parameters>
- <instance-parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">plugin to load</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_cache_data" c:identifier="gst_plugin_set_cache_data">
- <doc xml:space="preserve">Adds plugin specific data to cache. Passes the ownership of the structure to
- the @plugin.
- The cache is flushed every time the registry is rebuilt.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">a plugin</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </instance-parameter>
- <parameter name="cache_data" transfer-ownership="full">
- <doc xml:space="preserve">a structure containing the data to cache</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- </class>
- <record name="PluginClass"
- c:type="GstPluginClass"
- disguised="1"
- glib:is-gtype-struct-for="Plugin">
- </record>
- <bitfield name="PluginDependencyFlags"
- glib:type-name="GstPluginDependencyFlags"
- glib:get-type="gst_plugin_dependency_flags_get_type"
- c:type="GstPluginDependencyFlags">
- <doc xml:space="preserve">Flags used in connection with gst_plugin_add_dependency().</doc>
- <member name="none"
- value="0"
- c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_NONE"
- glib:nick="none">
- <doc xml:space="preserve">no special flags</doc>
- </member>
- <member name="recurse"
- value="1"
- c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_RECURSE"
- glib:nick="recurse">
- <doc xml:space="preserve">recurse into subdirectories</doc>
- </member>
- <member name="paths_are_default_only"
- value="2"
- c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY"
- glib:nick="paths-are-default-only">
- <doc xml:space="preserve">use paths
- argument only if none of the environment variables is set</doc>
- </member>
- <member name="file_name_is_suffix"
- value="4"
- c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX"
- glib:nick="file-name-is-suffix">
- <doc xml:space="preserve">interpret
- filename argument as filter suffix and check all matching files in
- the directory</doc>
- </member>
- <member name="file_name_is_prefix"
- value="8"
- c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_PREFIX"
- glib:nick="file-name-is-prefix">
- <doc xml:space="preserve">interpret
- filename argument as filter prefix and check all matching files in
- the directory. Since 1.8.</doc>
- </member>
- </bitfield>
- <record name="PluginDesc" c:type="GstPluginDesc">
- <doc xml:space="preserve">A plugin should export a variable of this type called plugin_desc. The plugin
- loader will use the data provided there to initialize the plugin.
- The @licence parameter must be one of: LGPL, GPL, QPL, GPL/QPL, MPL,
- BSD, MIT/X11, Proprietary, unknown.</doc>
- <field name="major_version" writable="1">
- <doc xml:space="preserve">the major version number of core that plugin was compiled for</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="minor_version" writable="1">
- <doc xml:space="preserve">the minor version number of core that plugin was compiled for</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="name" writable="1">
- <doc xml:space="preserve">a unique name of the plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="description" writable="1">
- <doc xml:space="preserve">description of plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="plugin_init" writable="1">
- <doc xml:space="preserve">pointer to the init function of this plugin.</doc>
- <type name="PluginInitFunc" c:type="GstPluginInitFunc"/>
- </field>
- <field name="version" writable="1">
- <doc xml:space="preserve">version of the plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="license" writable="1">
- <doc xml:space="preserve">effective license of plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="source" writable="1">
- <doc xml:space="preserve">source module plugin belongs to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="package" writable="1">
- <doc xml:space="preserve">shipped package plugin belongs to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="origin" writable="1">
- <doc xml:space="preserve">URL to provider of plugin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="release_datetime" writable="1">
- <doc xml:space="preserve">date time string in ISO 8601
- format (or rather, a subset thereof), or %NULL. Allowed are the
- following formats: "YYYY-MM-DD" and "YYY-MM-DDTHH:MMZ" (with
- 'T' a separator and 'Z' indicating UTC/Zulu time). This field
- should be set via the GST_PACKAGE_RELEASE_DATETIME
- preprocessor macro.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </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="PluginError"
- glib:type-name="GstPluginError"
- glib:get-type="gst_plugin_error_get_type"
- c:type="GstPluginError"
- glib:error-domain="gst_plugin_error">
- <doc xml:space="preserve">The plugin loading errors</doc>
- <member name="module"
- value="0"
- c:identifier="GST_PLUGIN_ERROR_MODULE"
- glib:nick="module">
- <doc xml:space="preserve">The plugin could not be loaded</doc>
- </member>
- <member name="dependencies"
- value="1"
- c:identifier="GST_PLUGIN_ERROR_DEPENDENCIES"
- glib:nick="dependencies">
- <doc xml:space="preserve">The plugin has unresolved dependencies</doc>
- </member>
- <member name="name_mismatch"
- value="2"
- c:identifier="GST_PLUGIN_ERROR_NAME_MISMATCH"
- glib:nick="name-mismatch">
- <doc xml:space="preserve">The plugin has already be loaded from a different file</doc>
- </member>
- <function name="quark" c:identifier="gst_plugin_error_quark">
- <doc xml:space="preserve">Get the error quark.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The error quark used in GError messages</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- </enumeration>
- <class name="PluginFeature"
- c:symbol-prefix="plugin_feature"
- c:type="GstPluginFeature"
- parent="Object"
- abstract="1"
- glib:type-name="GstPluginFeature"
- glib:get-type="gst_plugin_feature_get_type"
- glib:type-struct="PluginFeatureClass">
- <doc xml:space="preserve">This is a base class for anything that can be added to a #GstPlugin.</doc>
- <function name="list_copy" c:identifier="gst_plugin_feature_list_copy">
- <doc xml:space="preserve">Copies the list of features. Caller should call @gst_plugin_feature_list_free
- when done with the list.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a copy of @list,
- with each feature's reference count incremented.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="PluginFeature"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">list
- of #GstPluginFeature</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="PluginFeature"/>
- </type>
- </parameter>
- </parameters>
- </function>
- <function name="list_debug" c:identifier="gst_plugin_feature_list_debug">
- <doc xml:space="preserve">Debug the plugin feature names in @list.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GList of
- plugin features</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="PluginFeature"/>
- </type>
- </parameter>
- </parameters>
- </function>
- <function name="list_free" c:identifier="gst_plugin_feature_list_free">
- <doc xml:space="preserve">Unrefs each member of @list, then frees the list.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="full">
- <doc xml:space="preserve">list
- of #GstPluginFeature</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="PluginFeature"/>
- </type>
- </parameter>
- </parameters>
- </function>
- <function name="rank_compare_func"
- c:identifier="gst_plugin_feature_rank_compare_func">
- <doc xml:space="preserve">Compares the two given #GstPluginFeature instances. This function can be
- used as a #GCompareFunc when sorting by rank and then by name.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">negative value if the rank of p1 > the rank of p2 or the ranks are
- equal but the name of p1 comes before the name of p2; zero if the rank
- and names are equal; positive value if the rank of p1 < the rank of p2 or the
- ranks are equal but the name of p2 comes before the name of p1</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="p1"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstPluginFeature</doc>
- <type name="gpointer" c:type="gconstpointer"/>
- </parameter>
- <parameter name="p2"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstPluginFeature</doc>
- <type name="gpointer" c:type="gconstpointer"/>
- </parameter>
- </parameters>
- </function>
- <method name="check_version"
- c:identifier="gst_plugin_feature_check_version">
- <doc xml:space="preserve">Checks whether the given plugin feature is at least
- the required version</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the plugin feature has at least
- the required version, otherwise %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="feature" transfer-ownership="none">
- <doc xml:space="preserve">a feature</doc>
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </instance-parameter>
- <parameter name="min_major" transfer-ownership="none">
- <doc xml:space="preserve">minimum required major version</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="min_minor" transfer-ownership="none">
- <doc xml:space="preserve">minimum required minor version</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="min_micro" transfer-ownership="none">
- <doc xml:space="preserve">minimum required micro version</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_plugin" c:identifier="gst_plugin_feature_get_plugin">
- <doc xml:space="preserve">Get the plugin that provides this feature.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the plugin that provides this
- feature, or %NULL. Unref with gst_object_unref() when no
- longer needed.</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </return-value>
- <parameters>
- <instance-parameter name="feature" transfer-ownership="none">
- <doc xml:space="preserve">a feature</doc>
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_plugin_name"
- c:identifier="gst_plugin_feature_get_plugin_name"
- version="1.2">
- <doc xml:space="preserve">Get the name of the plugin that provides this feature.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the name of the plugin that provides this
- feature, or %NULL if the feature is not associated with a
- plugin.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="feature" transfer-ownership="none">
- <doc xml:space="preserve">a feature</doc>
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_rank" c:identifier="gst_plugin_feature_get_rank">
- <doc xml:space="preserve">Gets the rank of a plugin feature.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The rank of the feature</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="feature" transfer-ownership="none">
- <doc xml:space="preserve">a feature</doc>
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="load" c:identifier="gst_plugin_feature_load">
- <doc xml:space="preserve">Loads the plugin containing @feature if it's not already loaded. @feature is
- unaffected; use the return value instead.
- Normally this function is used like this:
- |[<!-- language="C" -->
- GstPluginFeature *loaded_feature;
- loaded_feature = gst_plugin_feature_load (feature);
- // presumably, we're no longer interested in the potentially-unloaded feature
- gst_object_unref (feature);
- feature = loaded_feature;
- ]|</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a reference to the loaded
- feature, or %NULL on error</doc>
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </return-value>
- <parameters>
- <instance-parameter name="feature" transfer-ownership="none">
- <doc xml:space="preserve">the plugin feature to check</doc>
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_rank" c:identifier="gst_plugin_feature_set_rank">
- <doc xml:space="preserve">Specifies a rank for a plugin feature, so that autoplugging uses
- the most appropriate feature.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="feature" transfer-ownership="none">
- <doc xml:space="preserve">feature to rank</doc>
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </instance-parameter>
- <parameter name="rank" transfer-ownership="none">
- <doc xml:space="preserve">rank value - higher number means more priority rank</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- </class>
- <record name="PluginFeatureClass"
- c:type="GstPluginFeatureClass"
- disguised="1"
- glib:is-gtype-struct-for="PluginFeature">
- </record>
- <callback name="PluginFeatureFilter" c:type="GstPluginFeatureFilter">
- <doc xml:space="preserve">A function that can be used with e.g. gst_registry_feature_filter()
- to get a list of pluginfeature that match certain criteria.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for a positive match, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="feature" transfer-ownership="none">
- <doc xml:space="preserve">the pluginfeature to check</doc>
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="1">
- <doc xml:space="preserve">the user_data that has been passed on e.g.
- gst_registry_feature_filter()</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PluginFilter" c:type="GstPluginFilter">
- <doc xml:space="preserve">A function that can be used with e.g. gst_registry_plugin_filter()
- to get a list of plugins that match certain criteria.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for a positive match, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">the plugin to check</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="1">
- <doc xml:space="preserve">the user_data that has been passed on e.g. gst_registry_plugin_filter()</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="PluginFlags"
- glib:type-name="GstPluginFlags"
- glib:get-type="gst_plugin_flags_get_type"
- c:type="GstPluginFlags">
- <doc xml:space="preserve">The plugin loading state</doc>
- <member name="cached"
- value="16"
- c:identifier="GST_PLUGIN_FLAG_CACHED"
- glib:nick="cached">
- <doc xml:space="preserve">Temporarily loaded plugins</doc>
- </member>
- <member name="blacklisted"
- value="32"
- c:identifier="GST_PLUGIN_FLAG_BLACKLISTED"
- glib:nick="blacklisted">
- <doc xml:space="preserve">The plugin won't be scanned (again)</doc>
- </member>
- </bitfield>
- <callback name="PluginInitFullFunc" c:type="GstPluginInitFullFunc">
- <doc xml:space="preserve">A plugin should provide a pointer to a function of either #GstPluginInitFunc
- or this type in the plugin_desc struct.
- The function will be called by the loader at startup. One would then
- register each #GstPluginFeature. This version allows
- user data to be passed to init function (useful for bindings).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if plugin initialised successfully</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">The plugin object</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="1">
- <doc xml:space="preserve">extra data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PluginInitFunc" c:type="GstPluginInitFunc">
- <doc xml:space="preserve">A plugin should provide a pointer to a function of this type in the
- plugin_desc struct.
- This function will be called by the loader at startup. One would then
- register each #GstPluginFeature.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if plugin initialised successfully</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">The plugin object</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- </parameters>
- </callback>
- <record name="Poll" c:type="GstPoll" disguised="1">
- <doc xml:space="preserve">A #GstPoll keeps track of file descriptors much like fd_set (used with
- select()) or a struct pollfd array (used with poll()). Once created with
- gst_poll_new(), the set can be used to wait for file descriptors to be
- readable and/or writable. It is possible to make this wait be controlled
- by specifying %TRUE for the @controllable flag when creating the set (or
- later calling gst_poll_set_controllable()).
- New file descriptors are added to the set using gst_poll_add_fd(), and
- removed using gst_poll_remove_fd(). Controlling which file descriptors
- should be waited for to become readable and/or writable are done using
- gst_poll_fd_ctl_read() and gst_poll_fd_ctl_write().
- Use gst_poll_wait() to wait for the file descriptors to actually become
- readable and/or writable, or to timeout if no file descriptor is available
- in time. The wait can be controlled by calling gst_poll_restart() and
- gst_poll_set_flushing().
- Once the file descriptor set has been waited for, one can use
- gst_poll_fd_has_closed() to see if the file descriptor has been closed,
- gst_poll_fd_has_error() to see if it has generated an error,
- gst_poll_fd_can_read() to see if it is possible to read from the file
- descriptor, and gst_poll_fd_can_write() to see if it is possible to
- write to it.</doc>
- <method name="add_fd" c:identifier="gst_poll_add_fd">
- <doc xml:space="preserve">Add a file descriptor to the file descriptor set.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the file descriptor was successfully added to the set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor set.</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </instance-parameter>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor.</doc>
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- </parameters>
- </method>
- <method name="fd_can_read" c:identifier="gst_poll_fd_can_read">
- <doc xml:space="preserve">Check if @fd in @set has data to be read.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the descriptor has data to be read.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor set.</doc>
- <type name="Poll" c:type="const GstPoll*"/>
- </instance-parameter>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor.</doc>
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- </parameters>
- </method>
- <method name="fd_can_write" c:identifier="gst_poll_fd_can_write">
- <doc xml:space="preserve">Check if @fd in @set can be used for writing.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the descriptor can be used for writing.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor set.</doc>
- <type name="Poll" c:type="const GstPoll*"/>
- </instance-parameter>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor.</doc>
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- </parameters>
- </method>
- <method name="fd_ctl_read" c:identifier="gst_poll_fd_ctl_read">
- <doc xml:space="preserve">Control whether the descriptor @fd in @set will be monitored for
- readability.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the descriptor was successfully updated.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor set.</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </instance-parameter>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor.</doc>
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- <parameter name="active" transfer-ownership="none">
- <doc xml:space="preserve">a new status.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="fd_ctl_write" c:identifier="gst_poll_fd_ctl_write">
- <doc xml:space="preserve">Control whether the descriptor @fd in @set will be monitored for
- writability.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the descriptor was successfully updated.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor set.</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </instance-parameter>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor.</doc>
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- <parameter name="active" transfer-ownership="none">
- <doc xml:space="preserve">a new status.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="fd_has_closed" c:identifier="gst_poll_fd_has_closed">
- <doc xml:space="preserve">Check if @fd in @set has closed the connection.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the connection was closed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor set.</doc>
- <type name="Poll" c:type="const GstPoll*"/>
- </instance-parameter>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor.</doc>
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- </parameters>
- </method>
- <method name="fd_has_error" c:identifier="gst_poll_fd_has_error">
- <doc xml:space="preserve">Check if @fd in @set has an error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the descriptor has an error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor set.</doc>
- <type name="Poll" c:type="const GstPoll*"/>
- </instance-parameter>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor.</doc>
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- </parameters>
- </method>
- <method name="fd_ignored" c:identifier="gst_poll_fd_ignored">
- <doc xml:space="preserve">Mark @fd as ignored so that the next call to gst_poll_wait() will yield
- the same result for @fd as last time. This function must be called if no
- operation (read/write/recv/send/etc.) will be performed on @fd before
- the next call to gst_poll_wait().
- The reason why this is needed is because the underlying implementation
- might not allow querying the fd more than once between calls to one of
- the re-enabling operations.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor set.</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </instance-parameter>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor.</doc>
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- </parameters>
- </method>
- <method name="free" c:identifier="gst_poll_free">
- <doc xml:space="preserve">Free a file descriptor set.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="full">
- <doc xml:space="preserve">a file descriptor set.</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_read_gpollfd" c:identifier="gst_poll_get_read_gpollfd">
- <doc xml:space="preserve">Get a GPollFD for the reading part of the control socket. This is useful when
- integrating with a GSource and GMainLoop.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPoll</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </instance-parameter>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollFD</doc>
- <type name="GLib.PollFD" c:type="GPollFD*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_control" c:identifier="gst_poll_read_control">
- <doc xml:space="preserve">Read a byte from the control socket of the controllable @set.
- This function is mostly useful for timer #GstPoll objects created with
- gst_poll_new_timer().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success. %FALSE when @set is not controllable or when there
- was no byte to read.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPoll.</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="remove_fd" c:identifier="gst_poll_remove_fd">
- <doc xml:space="preserve">Remove a file descriptor from the file descriptor set.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the file descriptor was successfully removed from the set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor set.</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </instance-parameter>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor.</doc>
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- </parameters>
- </method>
- <method name="restart" c:identifier="gst_poll_restart">
- <doc xml:space="preserve">Restart any gst_poll_wait() that is in progress. This function is typically
- used after adding or removing descriptors to @set.
- If @set is not controllable, then this call will have no effect.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPoll.</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_controllable" c:identifier="gst_poll_set_controllable">
- <doc xml:space="preserve">When @controllable is %TRUE, this function ensures that future calls to
- gst_poll_wait() will be affected by gst_poll_restart() and
- gst_poll_set_flushing().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the controllability of @set could be updated.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPoll.</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </instance-parameter>
- <parameter name="controllable" transfer-ownership="none">
- <doc xml:space="preserve">new controllable state.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_flushing" c:identifier="gst_poll_set_flushing">
- <doc xml:space="preserve">When @flushing is %TRUE, this function ensures that current and future calls
- to gst_poll_wait() will return -1, with errno set to EBUSY.
- Unsetting the flushing state will restore normal operation of @set.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPoll.</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </instance-parameter>
- <parameter name="flushing" transfer-ownership="none">
- <doc xml:space="preserve">new flushing state.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="wait" c:identifier="gst_poll_wait">
- <doc xml:space="preserve">Wait for activity on the file descriptors in @set. This function waits up to
- the specified @timeout. A timeout of #GST_CLOCK_TIME_NONE waits forever.
- For #GstPoll objects created with gst_poll_new(), this function can only be
- called from a single thread at a time. If called from multiple threads,
- -1 will be returned with errno set to EPERM.
- This is not true for timer #GstPoll objects created with
- gst_poll_new_timer(), where it is allowed to have multiple threads waiting
- simultaneously.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The number of #GstPollFD in @set that have activity or 0 when no
- activity was detected after @timeout. If an error occurs, -1 is returned
- and errno is set.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPoll.</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </instance-parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">a timeout in nanoseconds.</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="write_control" c:identifier="gst_poll_write_control">
- <doc xml:space="preserve">Write a byte to the control socket of the controllable @set.
- This function is mostly useful for timer #GstPoll objects created with
- gst_poll_new_timer().
- It will make any current and future gst_poll_wait() function return with
- 1, meaning the control socket is set. After an equal amount of calls to
- gst_poll_read_control() have been performed, calls to gst_poll_wait() will
- block again until their timeout expired.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success. %FALSE when @set is not controllable or when the
- byte could not be written.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="set" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPoll.</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </instance-parameter>
- </parameters>
- </method>
- <function name="new" c:identifier="gst_poll_new" introspectable="0">
- <doc xml:space="preserve">Create a new file descriptor set. If @controllable, it
- is possible to restart or flush a call to gst_poll_wait() with
- gst_poll_restart() and gst_poll_set_flushing() respectively.
- Free-function: gst_poll_free</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a new #GstPoll, or %NULL in
- case of an error. Free with gst_poll_free().</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </return-value>
- <parameters>
- <parameter name="controllable" transfer-ownership="none">
- <doc xml:space="preserve">whether it should be possible to control a wait.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="new_timer"
- c:identifier="gst_poll_new_timer"
- introspectable="0">
- <doc xml:space="preserve">Create a new poll object that can be used for scheduling cancellable
- timeouts.
- A timeout is performed with gst_poll_wait(). Multiple timeouts can be
- performed from different threads.
- Free-function: gst_poll_free</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a new #GstPoll, or %NULL in
- case of an error. Free with gst_poll_free().</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </return-value>
- </function>
- </record>
- <record name="PollFD" c:type="GstPollFD">
- <doc xml:space="preserve">A file descriptor object.</doc>
- <field name="fd" writable="1">
- <doc xml:space="preserve">a file descriptor</doc>
- <type name="gint" c:type="int"/>
- </field>
- <field name="idx" readable="0" private="1">
- <type name="gint" c:type="gint"/>
- </field>
- <method name="init" c:identifier="gst_poll_fd_init">
- <doc xml:space="preserve">Initializes @fd. Alternatively you can initialize it with
- #GST_POLL_FD_INIT.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPollFD</doc>
- <type name="PollFD" c:type="GstPollFD*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <interface name="Preset"
- c:symbol-prefix="preset"
- c:type="GstPreset"
- glib:type-name="GstPreset"
- glib:get-type="gst_preset_get_type"
- glib:type-struct="PresetInterface">
- <doc xml:space="preserve">This interface offers methods to query and manipulate parameter preset sets.
- A preset is a bunch of property settings, together with meta data and a name.
- The name of a preset serves as key for subsequent method calls to manipulate
- single presets.
- All instances of one type will share the list of presets. The list is created
- on demand, if presets are not used, the list is not created.
- The interface comes with a default implementation that serves most plugins.
- Wrapper plugins will override most methods to implement support for the
- native preset format of those wrapped plugins.
- One method that is useful to be overridden is gst_preset_get_property_names().
- With that one can control which properties are saved and in which order.
- When implementing support for read-only presets, one should set the vmethods
- for gst_preset_save_preset() and gst_preset_delete_preset() to %NULL.
- Applications can use gst_preset_is_editable() to check for that.
- The default implementation supports presets located in a system directory,
- application specific directory and in the users home directory. When getting
- a list of presets individual presets are read and overlaid in 1) system,
- 2) application and 3) user order. Whenever an earlier entry is newer, the
- later entries will be updated. Since 1.8 you can also provide extra paths
- where to find presets through the GST_PRESET_PATH environment variable.
- Presets found in those paths will be concidered as "app presets".</doc>
- <function name="get_app_dir" c:identifier="gst_preset_get_app_dir">
- <doc xml:space="preserve">Gets the directory for application specific presets if set by the
- application.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the directory or %NULL, don't free or modify
- the string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- </function>
- <function name="set_app_dir" c:identifier="gst_preset_set_app_dir">
- <doc xml:space="preserve">Sets an extra directory as an absolute path that should be considered when
- looking for presets. Any presets in the application dir will shadow the
- system presets.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if the dir already has been set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="app_dir" transfer-ownership="none">
- <doc xml:space="preserve">the application specific preset dir</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="delete_preset" invoker="delete_preset">
- <doc xml:space="preserve">Delete the given preset.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">preset name to remove</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_meta" invoker="get_meta">
- <doc xml:space="preserve">Gets the @value for an existing meta data @tag. Meta data @tag names can be
- something like e.g. "comment". Returned values need to be released when done.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name
- or no value for the given @tag</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">preset name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">meta data item name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">value</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_preset_names" invoker="get_preset_names">
- <doc xml:space="preserve">Get a copy of preset names as a %NULL terminated string array.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">
- list with names, use g_strfreev() after usage.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_property_names" invoker="get_property_names">
- <doc xml:space="preserve">Get a the names of the GObject properties that can be used for presets.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">an
- array of property names which should be freed with g_strfreev() after use.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="load_preset" invoker="load_preset">
- <doc xml:space="preserve">Load the given preset.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">preset name to load</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="rename_preset" invoker="rename_preset">
- <doc xml:space="preserve">Renames a preset. If there is already a preset by the @new_name it will be
- overwritten.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with @old_name</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- <parameter name="old_name" transfer-ownership="none">
- <doc xml:space="preserve">current preset name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="new_name" transfer-ownership="none">
- <doc xml:space="preserve">new preset name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="save_preset" invoker="save_preset">
- <doc xml:space="preserve">Save the current object settings as a preset under the given name. If there
- is already a preset by this @name it will be overwritten.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">preset name to save</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_meta" invoker="set_meta">
- <doc xml:space="preserve">Sets a new @value for an existing meta data item or adds a new item. Meta
- data @tag names can be something like e.g. "comment". Supplying %NULL for the
- @value will unset an existing value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">preset name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">meta data item name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">new value</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="delete_preset" c:identifier="gst_preset_delete_preset">
- <doc xml:space="preserve">Delete the given preset.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">preset name to remove</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_meta" c:identifier="gst_preset_get_meta">
- <doc xml:space="preserve">Gets the @value for an existing meta data @tag. Meta data @tag names can be
- something like e.g. "comment". Returned values need to be released when done.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name
- or no value for the given @tag</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">preset name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">meta data item name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">value</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_preset_names"
- c:identifier="gst_preset_get_preset_names">
- <doc xml:space="preserve">Get a copy of preset names as a %NULL terminated string array.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">
- list with names, use g_strfreev() after usage.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_property_names"
- c:identifier="gst_preset_get_property_names">
- <doc xml:space="preserve">Get a the names of the GObject properties that can be used for presets.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">an
- array of property names which should be freed with g_strfreev() after use.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_editable"
- c:identifier="gst_preset_is_editable"
- version="1.6">
- <doc xml:space="preserve">Check if one can add new presets, change existing ones and remove presets.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if presets are editable or %FALSE if they are static</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="load_preset" c:identifier="gst_preset_load_preset">
- <doc xml:space="preserve">Load the given preset.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">preset name to load</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="rename_preset" c:identifier="gst_preset_rename_preset">
- <doc xml:space="preserve">Renames a preset. If there is already a preset by the @new_name it will be
- overwritten.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with @old_name</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- <parameter name="old_name" transfer-ownership="none">
- <doc xml:space="preserve">current preset name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="new_name" transfer-ownership="none">
- <doc xml:space="preserve">new preset name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="save_preset" c:identifier="gst_preset_save_preset">
- <doc xml:space="preserve">Save the current object settings as a preset under the given name. If there
- is already a preset by this @name it will be overwritten.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">preset name to save</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_meta" c:identifier="gst_preset_set_meta">
- <doc xml:space="preserve">Sets a new @value for an existing meta data item or adds a new item. Meta
- data @tag names can be something like e.g. "comment". Supplying %NULL for the
- @value will unset an existing value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">preset name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">meta data item name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">new value</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="PresetInterface"
- c:type="GstPresetInterface"
- glib:is-gtype-struct-for="Preset">
- <doc xml:space="preserve">#GstPreset interface.</doc>
- <field name="parent">
- <doc xml:space="preserve">parent interface type.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="get_preset_names">
- <callback name="get_preset_names">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">
- list with names, use g_strfreev() after usage.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_property_names">
- <callback name="get_property_names">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">an
- array of property names which should be freed with g_strfreev() after use.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="load_preset">
- <callback name="load_preset">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">preset name to load</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="save_preset">
- <callback name="save_preset">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">preset name to save</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="rename_preset">
- <callback name="rename_preset">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with @old_name</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </parameter>
- <parameter name="old_name" transfer-ownership="none">
- <doc xml:space="preserve">current preset name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="new_name" transfer-ownership="none">
- <doc xml:space="preserve">new preset name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="delete_preset">
- <callback name="delete_preset">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">preset name to remove</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_meta">
- <callback name="set_meta">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">preset name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">meta data item name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">new value</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_meta">
- <callback name="get_meta">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name
- or no value for the given @tag</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="preset" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
- <type name="Preset" c:type="GstPreset*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">preset name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">meta data item name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">value</doc>
- <type name="utf8" c:type="gchar**"/>
- </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="ProgressType"
- glib:type-name="GstProgressType"
- glib:get-type="gst_progress_type_get_type"
- c:type="GstProgressType">
- <doc xml:space="preserve">The type of a %GST_MESSAGE_PROGRESS. The progress messages inform the
- application of the status of asynchronous tasks.</doc>
- <member name="start"
- value="0"
- c:identifier="GST_PROGRESS_TYPE_START"
- glib:nick="start">
- <doc xml:space="preserve">A new task started.</doc>
- </member>
- <member name="continue"
- value="1"
- c:identifier="GST_PROGRESS_TYPE_CONTINUE"
- glib:nick="continue">
- <doc xml:space="preserve">A task completed and a new one continues.</doc>
- </member>
- <member name="complete"
- value="2"
- c:identifier="GST_PROGRESS_TYPE_COMPLETE"
- glib:nick="complete">
- <doc xml:space="preserve">A task completed.</doc>
- </member>
- <member name="canceled"
- value="3"
- c:identifier="GST_PROGRESS_TYPE_CANCELED"
- glib:nick="canceled">
- <doc xml:space="preserve">A task was canceled.</doc>
- </member>
- <member name="error"
- value="4"
- c:identifier="GST_PROGRESS_TYPE_ERROR"
- glib:nick="error">
- <doc xml:space="preserve">A task caused an error. An error message is also
- posted on the bus.</doc>
- </member>
- </enumeration>
- <record name="ProtectionMeta" c:type="GstProtectionMeta" version="1.6">
- <doc xml:space="preserve">Metadata type that holds information about a sample from a protection-protected
- track, including the information needed to decrypt it (if it is encrypted).</doc>
- <field name="meta" writable="1">
- <doc xml:space="preserve">the parent #GstMeta.</doc>
- <type name="Meta" c:type="GstMeta"/>
- </field>
- <field name="info" writable="1">
- <doc xml:space="preserve">the cryptographic information needed to decrypt the sample.</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </field>
- <function name="get_info" c:identifier="gst_protection_meta_get_info">
- <return-value transfer-ownership="none">
- <type name="MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- </function>
- </record>
- <class name="ProxyPad"
- c:symbol-prefix="proxy_pad"
- c:type="GstProxyPad"
- parent="Pad"
- glib:type-name="GstProxyPad"
- glib:get-type="gst_proxy_pad_get_type"
- glib:type-struct="ProxyPadClass">
- <function name="chain_default"
- c:identifier="gst_proxy_pad_chain_default">
- <doc xml:space="preserve">Invoke the default chain function of the proxy pad.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn from the pad.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a sink #GstPad, returns GST_FLOW_ERROR if not.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad or %NULL</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="full">
- <doc xml:space="preserve">the #GstBuffer to send, return GST_FLOW_ERROR
- if not.</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </function>
- <function name="chain_list_default"
- c:identifier="gst_proxy_pad_chain_list_default">
- <doc xml:space="preserve">Invoke the default chain list function of the proxy pad.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn from the pad.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a sink #GstPad, returns GST_FLOW_ERROR if not.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad or %NULL</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="list" transfer-ownership="full">
- <doc xml:space="preserve">the #GstBufferList to send, return GST_FLOW_ERROR
- if not.</doc>
- <type name="BufferList" c:type="GstBufferList*"/>
- </parameter>
- </parameters>
- </function>
- <function name="getrange_default"
- c:identifier="gst_proxy_pad_getrange_default">
- <doc xml:space="preserve">Invoke the default getrange function of the proxy pad.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn from the pad.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a src #GstPad, returns #GST_FLOW_ERROR if not.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">the parent of @pad</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">The start offset of the buffer</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">The length of the buffer</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="buffer"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to hold the #GstBuffer,
- returns #GST_FLOW_ERROR if %NULL.</doc>
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- </parameters>
- </function>
- <function name="iterate_internal_links_default"
- c:identifier="gst_proxy_pad_iterate_internal_links_default">
- <doc xml:space="preserve">Invoke the default iterate internal links function of the proxy pad.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GstIterator of #GstPad, or %NULL if @pad
- has no parent. Unref each returned pad with gst_object_unref().</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstPad to get the internal links of.</doc>
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent of @pad or %NULL</doc>
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </function>
- <method name="get_internal" c:identifier="gst_proxy_pad_get_internal">
- <doc xml:space="preserve">Get the internal pad of @pad. Unref target pad after usage.
- The internal pad of a #GstGhostPad is the internally used
- pad of opposite direction, which is used to link to the target.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the target #GstProxyPad, can
- be %NULL. Unref target pad after usage.</doc>
- <type name="ProxyPad" c:type="GstProxyPad*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the #GstProxyPad</doc>
- <type name="ProxyPad" c:type="GstProxyPad*"/>
- </instance-parameter>
- </parameters>
- </method>
- <field name="pad">
- <type name="Pad" c:type="GstPad"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="ProxyPadPrivate" c:type="GstProxyPadPrivate*"/>
- </field>
- </class>
- <record name="ProxyPadClass"
- c:type="GstProxyPadClass"
- glib:is-gtype-struct-for="ProxyPad">
- <field name="parent_class">
- <type name="PadClass" c:type="GstPadClass"/>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="1">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <record name="ProxyPadPrivate" c:type="GstProxyPadPrivate" disguised="1">
- </record>
- <enumeration name="QOSType"
- glib:type-name="GstQOSType"
- glib:get-type="gst_qos_type_get_type"
- c:type="GstQOSType">
- <doc xml:space="preserve">The different types of QoS events that can be given to the
- gst_event_new_qos() method.</doc>
- <member name="overflow"
- value="0"
- c:identifier="GST_QOS_TYPE_OVERFLOW"
- glib:nick="overflow">
- <doc xml:space="preserve">The QoS event type that is produced when upstream
- elements are producing data too quickly and the element can't keep up
- processing the data. Upstream should reduce their production rate. This
- type is also used when buffers arrive early or in time.</doc>
- </member>
- <member name="underflow"
- value="1"
- c:identifier="GST_QOS_TYPE_UNDERFLOW"
- glib:nick="underflow">
- <doc xml:space="preserve">The QoS event type that is produced when upstream
- elements are producing data too slowly and need to speed up their
- production rate.</doc>
- </member>
- <member name="throttle"
- value="2"
- c:identifier="GST_QOS_TYPE_THROTTLE"
- glib:nick="throttle">
- <doc xml:space="preserve">The QoS event type that is produced when the
- application enabled throttling to limit the data rate.</doc>
- </member>
- </enumeration>
- <constant name="QUERY_NUM_SHIFT" value="8" c:type="GST_QUERY_NUM_SHIFT">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="QUERY_TYPE_BOTH" value="0" c:type="GST_QUERY_TYPE_BOTH">
- <doc xml:space="preserve">The same thing as #GST_QUERY_TYPE_UPSTREAM | #GST_QUERY_TYPE_DOWNSTREAM.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <record name="Query"
- c:type="GstQuery"
- glib:type-name="GstQuery"
- glib:get-type="gst_query_get_type"
- c:symbol-prefix="query">
- <doc xml:space="preserve">Queries can be performed on pads (gst_pad_query()) and elements
- (gst_element_query()). Please note that some queries might need a running
- pipeline to work.
- Queries can be created using the gst_query_new_*() functions.
- Query values can be set using gst_query_set_*(), and parsed using
- gst_query_parse_*() helpers.
- The following example shows how to query the duration of a pipeline:
- |[<!-- language="C" -->
- GstQuery *query;
- gboolean res;
- query = gst_query_new_duration (GST_FORMAT_TIME);
- res = gst_element_query (pipeline, query);
- if (res) {
- gint64 duration;
- gst_query_parse_duration (query, NULL, &amp;duration);
- g_print ("duration = %"GST_TIME_FORMAT, GST_TIME_ARGS (duration));
- } else {
- g_print ("duration query failed...");
- }
- gst_query_unref (query);
- ]|</doc>
- <field name="mini_object" writable="1">
- <doc xml:space="preserve">The parent #GstMiniObject type</doc>
- <type name="MiniObject" c:type="GstMiniObject"/>
- </field>
- <field name="type" writable="1">
- <doc xml:space="preserve">the #GstQueryType</doc>
- <type name="QueryType" c:type="GstQueryType"/>
- </field>
- <constructor name="new_accept_caps"
- c:identifier="gst_query_new_accept_caps">
- <doc xml:space="preserve">Constructs a new query object for querying if @caps are accepted.
- Free-function: gst_query_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a fixed #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_allocation"
- c:identifier="gst_query_new_allocation">
- <doc xml:space="preserve">Constructs a new query object for querying the allocation properties.
- Free-function: gst_query_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the negotiated caps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="need_pool" transfer-ownership="none">
- <doc xml:space="preserve">return a pool</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_buffering" c:identifier="gst_query_new_buffering">
- <doc xml:space="preserve">Constructs a new query object for querying the buffering status of
- a stream.
- Free-function: gst_query_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the default #GstFormat for the new query</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_caps" c:identifier="gst_query_new_caps">
- <doc xml:space="preserve">Constructs a new query object for querying the caps.
- The CAPS query should return the allowable caps for a pad in the context
- of the element's state, its link to other elements, and the devices or files
- it has opened. These caps must be a subset of the pad template caps. In the
- NULL state with no links, the CAPS query should ideally return the same caps
- as the pad template. In rare circumstances, an object property can affect
- the caps returned by the CAPS query, but this is discouraged.
- For most filters, the caps returned by CAPS query is directly affected by the
- allowed caps on other pads. For demuxers and decoders, the caps returned by
- the srcpad's getcaps function is directly related to the stream data. Again,
- the CAPS query should return the most specific caps it reasonably can, since this
- helps with autoplugging.
- The @filter is used to restrict the result caps, only the caps matching
- @filter should be returned from the CAPS query. Specifying a filter might
- greatly reduce the amount of processing an element needs to do.
- Free-function: gst_query_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="filter" transfer-ownership="none">
- <doc xml:space="preserve">a filter</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_context"
- c:identifier="gst_query_new_context"
- version="1.2">
- <doc xml:space="preserve">Constructs a new query object for querying the pipeline-local context.
- Free-function: gst_query_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="context_type" transfer-ownership="none">
- <doc xml:space="preserve">Context type to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_convert" c:identifier="gst_query_new_convert">
- <doc xml:space="preserve">Constructs a new convert query object. Use gst_query_unref()
- when done with it. A convert query is used to ask for a conversion between
- one format and another.
- Free-function: gst_query_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="src_format" transfer-ownership="none">
- <doc xml:space="preserve">the source #GstFormat for the new query</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the value to convert</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="dest_format" transfer-ownership="none">
- <doc xml:space="preserve">the target #GstFormat</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_custom" c:identifier="gst_query_new_custom">
- <doc xml:space="preserve">Constructs a new custom query object. Use gst_query_unref()
- when done with it.
- Free-function: gst_query_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the query type</doc>
- <type name="QueryType" c:type="GstQueryType"/>
- </parameter>
- <parameter name="structure"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a structure for the query</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_drain" c:identifier="gst_query_new_drain">
- <doc xml:space="preserve">Constructs a new query object for querying the drain state.
- Free-function: gst_query_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- </constructor>
- <constructor name="new_duration" c:identifier="gst_query_new_duration">
- <doc xml:space="preserve">Constructs a new stream duration query object to query in the given format.
- Use gst_query_unref() when done with it. A duration query will give the
- total length of the stream.
- Free-function: gst_query_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the #GstFormat for this duration query</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_formats" c:identifier="gst_query_new_formats">
- <doc xml:space="preserve">Constructs a new query object for querying formats of
- the stream.
- Free-function: gst_query_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- </constructor>
- <constructor name="new_latency" c:identifier="gst_query_new_latency">
- <doc xml:space="preserve">Constructs a new latency query object.
- Use gst_query_unref() when done with it. A latency query is usually performed
- by sinks to compensate for additional latency introduced by elements in the
- pipeline.
- Free-function: gst_query_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- </constructor>
- <constructor name="new_position" c:identifier="gst_query_new_position">
- <doc xml:space="preserve">Constructs a new query stream position query object. Use gst_query_unref()
- when done with it. A position query is used to query the current position
- of playback in the streams, in some format.
- Free-function: gst_query_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the default #GstFormat for the new query</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_scheduling"
- c:identifier="gst_query_new_scheduling">
- <doc xml:space="preserve">Constructs a new query object for querying the scheduling properties.
- Free-function: gst_query_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- </constructor>
- <constructor name="new_seeking" c:identifier="gst_query_new_seeking">
- <doc xml:space="preserve">Constructs a new query object for querying seeking properties of
- the stream.
- Free-function: gst_query_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the default #GstFormat for the new query</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_segment" c:identifier="gst_query_new_segment">
- <doc xml:space="preserve">Constructs a new segment query object. Use gst_query_unref()
- when done with it. A segment query is used to discover information about the
- currently configured segment for playback.
- Free-function: gst_query_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the #GstFormat for the new query</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_uri" c:identifier="gst_query_new_uri">
- <doc xml:space="preserve">Constructs a new query URI query object. Use gst_query_unref()
- when done with it. An URI query is used to query the current URI
- that is used by the source or sink.
- Free-function: gst_query_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- </constructor>
- <method name="add_allocation_meta"
- c:identifier="gst_query_add_allocation_meta">
- <doc xml:space="preserve">Add @api with @params as one of the supported metadata API to @query.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="api" transfer-ownership="none">
- <doc xml:space="preserve">the metadata API</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="params"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">API specific parameters</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_allocation_param"
- c:identifier="gst_query_add_allocation_param">
- <doc xml:space="preserve">Add @allocator and its @params as a supported memory allocator.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="allocator"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the memory allocator</doc>
- <type name="Allocator" c:type="GstAllocator*"/>
- </parameter>
- <parameter name="params"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstAllocationParams</doc>
- <type name="AllocationParams" c:type="const GstAllocationParams*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_allocation_pool"
- c:identifier="gst_query_add_allocation_pool">
- <doc xml:space="preserve">Set the pool parameters in @query.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_ALLOCATION.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="pool"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="min_buffers" transfer-ownership="none">
- <doc xml:space="preserve">the min buffers</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="max_buffers" transfer-ownership="none">
- <doc xml:space="preserve">the max buffers</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_buffering_range"
- c:identifier="gst_query_add_buffering_range">
- <doc xml:space="preserve">Set the buffering-ranges array field in @query. The current last
- start position of the array should be inferior to @start.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean indicating if the range was added or not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_BUFFERING type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="start" transfer-ownership="none">
- <doc xml:space="preserve">start position of the range</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="stop" transfer-ownership="none">
- <doc xml:space="preserve">stop position of the range</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_scheduling_mode"
- c:identifier="gst_query_add_scheduling_mode">
- <doc xml:space="preserve">Add @mode as one of the supported scheduling modes to @query.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_SCHEDULING type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadMode</doc>
- <type name="PadMode" c:type="GstPadMode"/>
- </parameter>
- </parameters>
- </method>
- <method name="find_allocation_meta"
- c:identifier="gst_query_find_allocation_meta">
- <doc xml:space="preserve">Check if @query has metadata @api set. When this function returns %TRUE,
- @index will contain the index where the requested API and the parameters
- can be found.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE when @api is in the list of metadata.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="api" transfer-ownership="none">
- <doc xml:space="preserve">the metadata API</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="index"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the index</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_n_allocation_metas"
- c:identifier="gst_query_get_n_allocation_metas">
- <doc xml:space="preserve">Retrieve the number of values currently stored in the
- meta API array of the query's structure.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the metadata API array size as a #guint.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_n_allocation_params"
- c:identifier="gst_query_get_n_allocation_params">
- <doc xml:space="preserve">Retrieve the number of values currently stored in the
- allocator params array of the query's structure.
- If no memory allocator is specified, the downstream element can handle
- the default memory allocator. The first memory allocator in the query
- should be generic and allow mapping to system memory, all following
- allocators should be ordered by preference with the preferred one first.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the allocator array size as a #guint.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_n_allocation_pools"
- c:identifier="gst_query_get_n_allocation_pools">
- <doc xml:space="preserve">Retrieve the number of values currently stored in the
- pool array of the query's structure.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the pool array size as a #guint.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_n_buffering_ranges"
- c:identifier="gst_query_get_n_buffering_ranges">
- <doc xml:space="preserve">Retrieve the number of values currently stored in the
- buffered-ranges array of the query's structure.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the range array size as a #guint.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_BUFFERING type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_n_scheduling_modes"
- c:identifier="gst_query_get_n_scheduling_modes">
- <doc xml:space="preserve">Retrieve the number of values currently stored in the
- scheduling mode array of the query's structure.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the scheduling mode array size as a #guint.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_SCHEDULING type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_structure" c:identifier="gst_query_get_structure">
- <doc xml:space="preserve">Get the structure of a query.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstStructure of the query. The structure is
- still owned by the query and will therefore be freed when the query
- is unreffed.</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_scheduling_mode"
- c:identifier="gst_query_has_scheduling_mode">
- <doc xml:space="preserve">Check if @query has scheduling mode set.
- <note>
- <para>
- When checking if upstream supports pull mode, it is usually not
- enough to just check for GST_PAD_MODE_PULL with this function, you
- also want to check whether the scheduling flags returned by
- gst_query_parse_scheduling() have the seeking flag set (meaning
- random access is supported, not only sequential pulls).
- </para>
- </note></doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE when @mode is in the list of scheduling modes.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_SCHEDULING type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the scheduling mode</doc>
- <type name="PadMode" c:type="GstPadMode"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_scheduling_mode_with_flags"
- c:identifier="gst_query_has_scheduling_mode_with_flags">
- <doc xml:space="preserve">Check if @query has scheduling mode set and @flags is set in
- query scheduling flags.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE when @mode is in the list of scheduling modes
- and @flags are compatible with query flags.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_SCHEDULING type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the scheduling mode</doc>
- <type name="PadMode" c:type="GstPadMode"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GstSchedulingFlags</doc>
- <type name="SchedulingFlags" c:type="GstSchedulingFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_accept_caps"
- c:identifier="gst_query_parse_accept_caps">
- <doc xml:space="preserve">Get the caps from @query. The caps remains valid as long as @query remains
- valid.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">The query to parse</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="caps"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none">
- <doc xml:space="preserve">A pointer to the caps</doc>
- <type name="Caps" c:type="GstCaps**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_accept_caps_result"
- c:identifier="gst_query_parse_accept_caps_result">
- <doc xml:space="preserve">Parse the result from @query and store in @result.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_ACCEPT_CAPS type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">location for the result</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_allocation"
- c:identifier="gst_query_parse_allocation">
- <doc xml:space="preserve">Parse an allocation query, writing the requested caps in @caps and
- whether a pool is needed in @need_pool, if the respective parameters
- are non-%NULL.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="caps"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstCaps</doc>
- <type name="Caps" c:type="GstCaps**"/>
- </parameter>
- <parameter name="need_pool"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Whether a #GstBufferPool is needed</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_buffering_percent"
- c:identifier="gst_query_parse_buffering_percent">
- <doc xml:space="preserve">Get the percentage of buffered data. This is a value between 0 and 100.
- The @busy indicator is %TRUE when the buffering is in progress.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_BUFFERING.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="busy"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">if buffering is busy, or %NULL</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="percent"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a buffering percent, or %NULL</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_buffering_range"
- c:identifier="gst_query_parse_buffering_range">
- <doc xml:space="preserve">Parse an available query, writing the format into @format, and
- other results into the passed parameters, if the respective parameters
- are non-%NULL</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_BUFFERING type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the format to set for the @segment_start
- and @segment_end values, or %NULL</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="start"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the start to set, or %NULL</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- <parameter name="stop"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the stop to set, or %NULL</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- <parameter name="estimated_total"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">estimated total amount of download
- time remaining in milliseconds, or %NULL</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_buffering_stats"
- c:identifier="gst_query_parse_buffering_stats">
- <doc xml:space="preserve">Extracts the buffering stats values from @query.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_BUFFERING.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="mode"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a buffering mode, or %NULL</doc>
- <type name="BufferingMode" c:type="GstBufferingMode*"/>
- </parameter>
- <parameter name="avg_in"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the average input rate, or %NULL</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="avg_out"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the average output rat, or %NULL</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="buffering_left"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">amount of buffering time left in
- milliseconds, or %NULL</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_caps" c:identifier="gst_query_parse_caps">
- <doc xml:space="preserve">Get the filter from the caps @query. The caps remains valid as long as
- @query remains valid.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">The query to parse</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="filter"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none">
- <doc xml:space="preserve">A pointer to the caps filter</doc>
- <type name="Caps" c:type="GstCaps**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_caps_result"
- c:identifier="gst_query_parse_caps_result">
- <doc xml:space="preserve">Get the caps result from @query. The caps remains valid as long as
- @query remains valid.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">The query to parse</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="caps"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none">
- <doc xml:space="preserve">A pointer to the caps</doc>
- <type name="Caps" c:type="GstCaps**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_context"
- c:identifier="gst_query_parse_context"
- version="1.2">
- <doc xml:space="preserve">Get the context from the context @query. The context remains valid as long as
- @query remains valid.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">The query to parse</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="context"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none">
- <doc xml:space="preserve">A pointer to store the #GstContext</doc>
- <type name="Context" c:type="GstContext**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_context_type"
- c:identifier="gst_query_parse_context_type"
- version="1.2">
- <doc xml:space="preserve">Parse a context type from an existing GST_QUERY_CONTEXT query.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean indicating if the parsing succeeded.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_CONTEXT type query</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="context_type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the context type, or %NULL</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_convert" c:identifier="gst_query_parse_convert">
- <doc xml:space="preserve">Parse a convert query answer. Any of @src_format, @src_value, @dest_format,
- and @dest_value may be %NULL, in which case that value is omitted.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="src_format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the #GstFormat of the
- source value, or %NULL</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="src_value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the source value, or %NULL</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- <parameter name="dest_format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the #GstFormat of the
- destination value, or %NULL</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="dest_value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the destination value,
- or %NULL</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_duration" c:identifier="gst_query_parse_duration">
- <doc xml:space="preserve">Parse a duration query answer. Write the format of the duration into @format,
- and the value into @duration, if the respective variables are non-%NULL.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the #GstFormat of the duration
- value, or %NULL.</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="duration"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the total duration, or %NULL.</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_latency" c:identifier="gst_query_parse_latency">
- <doc xml:space="preserve">Parse a latency query answer.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="live"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">storage for live or %NULL</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="min_latency"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the min latency or %NULL</doc>
- <type name="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">the storage for the max latency or %NULL</doc>
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_n_formats" c:identifier="gst_query_parse_n_formats">
- <doc xml:space="preserve">Parse the number of formats in the formats @query.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="n_formats"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of formats in this query.</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_nth_allocation_meta"
- c:identifier="gst_query_parse_nth_allocation_meta">
- <doc xml:space="preserve">Parse an available query and get the metadata API
- at @index of the metadata API array.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GType of the metadata API at @index.</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">position in the metadata API array to read</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="params"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">API specific parameters</doc>
- <type name="Structure" c:type="const GstStructure**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_nth_allocation_param"
- c:identifier="gst_query_parse_nth_allocation_param">
- <doc xml:space="preserve">Parse an available query and get the allocator and its params
- at @index of the allocator array.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">position in the allocator array to read</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="allocator"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">variable to hold the result</doc>
- <type name="Allocator" c:type="GstAllocator**"/>
- </parameter>
- <parameter name="params"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">parameters for the allocator</doc>
- <type name="AllocationParams" c:type="GstAllocationParams*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_nth_allocation_pool"
- c:identifier="gst_query_parse_nth_allocation_pool">
- <doc xml:space="preserve">Get the pool parameters in @query.
- Unref @pool with gst_object_unref() when it's not needed any more.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_ALLOCATION.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">index to parse</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="pool"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool**"/>
- </parameter>
- <parameter name="size"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the size</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="min_buffers"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the min buffers</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="max_buffers"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the max buffers</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_nth_buffering_range"
- c:identifier="gst_query_parse_nth_buffering_range">
- <doc xml:space="preserve">Parse an available query and get the start and stop values stored
- at the @index of the buffered ranges array.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean indicating if the parsing succeeded.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_BUFFERING type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">position in the buffered-ranges array to read</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="start"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the start position to set, or %NULL</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- <parameter name="stop"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the stop position to set, or %NULL</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_nth_format"
- c:identifier="gst_query_parse_nth_format">
- <doc xml:space="preserve">Parse the format query and retrieve the @nth format from it into
- @format. If the list contains less elements than @nth, @format will be
- set to GST_FORMAT_UNDEFINED.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="nth"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">the nth format to retrieve.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to store the nth format</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_nth_scheduling_mode"
- c:identifier="gst_query_parse_nth_scheduling_mode">
- <doc xml:space="preserve">Parse an available query and get the scheduling mode
- at @index of the scheduling modes array.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadMode of the scheduling mode at @index.</doc>
- <type name="PadMode" c:type="GstPadMode"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_SCHEDULING type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">position in the scheduling modes array to read</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_position" c:identifier="gst_query_parse_position">
- <doc xml:space="preserve">Parse a position query, writing the format into @format, and the position
- into @cur, if the respective parameters are non-%NULL.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the #GstFormat of the
- position values (may be %NULL)</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="cur"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the current position (may be %NULL)</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_scheduling"
- c:identifier="gst_query_parse_scheduling">
- <doc xml:space="preserve">Set the scheduling properties.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_SCHEDULING.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="flags"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">#GstSchedulingFlags</doc>
- <type name="SchedulingFlags" c:type="GstSchedulingFlags*"/>
- </parameter>
- <parameter name="minsize"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the suggested minimum size of pull requests</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="maxsize"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the suggested maximum size of pull requests:</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="align"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the suggested alignment of pull requests</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_seeking" c:identifier="gst_query_parse_seeking">
- <doc xml:space="preserve">Parse a seeking query, writing the format into @format, and
- other results into the passed parameters, if the respective parameters
- are non-%NULL</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_SEEKING type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the format to set for the @segment_start
- and @segment_end values, or %NULL</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="seekable"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the seekable flag to set, or %NULL</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="segment_start"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the segment_start to set, or %NULL</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- <parameter name="segment_end"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the segment_end to set, or %NULL</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_segment" c:identifier="gst_query_parse_segment">
- <doc xml:space="preserve">Parse a segment query answer. Any of @rate, @format, @start_value, and
- @stop_value may be %NULL, which will cause this value to be omitted.
- See gst_query_set_segment() for an explanation of the function arguments.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="rate"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the rate of the segment, or %NULL</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- <parameter name="format"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the #GstFormat of the values,
- or %NULL</doc>
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="start_value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the start value, or %NULL</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- <parameter name="stop_value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the stop value, or %NULL</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_uri" c:identifier="gst_query_parse_uri">
- <doc xml:space="preserve">Parse an URI query, writing the URI into @uri as a newly
- allocated string, if the respective parameters are non-%NULL.
- Free the string with g_free() after usage.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="uri"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the current URI
- (may be %NULL)</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_uri_redirection"
- c:identifier="gst_query_parse_uri_redirection"
- version="1.2">
- <doc xml:space="preserve">Parse an URI query, writing the URI into @uri as a newly
- allocated string, if the respective parameters are non-%NULL.
- Free the string with g_free() after usage.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="uri"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the redirect URI
- (may be %NULL)</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_uri_redirection_permanent"
- c:identifier="gst_query_parse_uri_redirection_permanent"
- version="1.4">
- <doc xml:space="preserve">Parse an URI query, and set @permanent to %TRUE if there is a redirection
- and it should be considered permanent. If a redirection is permanent,
- applications should update their internal storage of the URI, otherwise
- they should make all future requests to the original URI.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="permanent"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">if the URI redirection is permanent
- (may be %NULL)</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_nth_allocation_meta"
- c:identifier="gst_query_remove_nth_allocation_meta">
- <doc xml:space="preserve">Remove the metadata API at @index of the metadata API array.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">position in the metadata API array to remove</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_nth_allocation_param"
- c:identifier="gst_query_remove_nth_allocation_param"
- version="1.2">
- <doc xml:space="preserve">Remove the allocation param at @index of the allocation param array.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">position in the allocation param array to remove</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_nth_allocation_pool"
- c:identifier="gst_query_remove_nth_allocation_pool"
- version="1.2">
- <doc xml:space="preserve">Remove the allocation pool at @index of the allocation pool array.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">position in the allocation pool array to remove</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_accept_caps_result"
- c:identifier="gst_query_set_accept_caps_result">
- <doc xml:space="preserve">Set @result as the result for the @query.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_ACCEPT_CAPS type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result to set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_buffering_percent"
- c:identifier="gst_query_set_buffering_percent">
- <doc xml:space="preserve">Set the percentage of buffered data. This is a value between 0 and 100.
- The @busy indicator is %TRUE when the buffering is in progress.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_BUFFERING.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="busy" transfer-ownership="none">
- <doc xml:space="preserve">if buffering is busy</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="percent" transfer-ownership="none">
- <doc xml:space="preserve">a buffering percent</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_buffering_range"
- c:identifier="gst_query_set_buffering_range">
- <doc xml:space="preserve">Set the available query result fields in @query.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format to set for the @start and @stop values</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <doc xml:space="preserve">the start to set</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="stop" transfer-ownership="none">
- <doc xml:space="preserve">the stop to set</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="estimated_total" transfer-ownership="none">
- <doc xml:space="preserve">estimated total amount of download time remaining in
- milliseconds</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_buffering_stats"
- c:identifier="gst_query_set_buffering_stats">
- <doc xml:space="preserve">Configures the buffering stats values in @query.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_BUFFERING.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">a buffering mode</doc>
- <type name="BufferingMode" c:type="GstBufferingMode"/>
- </parameter>
- <parameter name="avg_in" transfer-ownership="none">
- <doc xml:space="preserve">the average input rate</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="avg_out" transfer-ownership="none">
- <doc xml:space="preserve">the average output rate</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="buffering_left" transfer-ownership="none">
- <doc xml:space="preserve">amount of buffering time left in milliseconds</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_caps_result" c:identifier="gst_query_set_caps_result">
- <doc xml:space="preserve">Set the @caps result in @query.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">The query to use</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">A pointer to the caps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_context"
- c:identifier="gst_query_set_context"
- version="1.2">
- <doc xml:space="preserve">Answer a context query by setting the requested context.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery with query type GST_QUERY_CONTEXT</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">the requested #GstContext</doc>
- <type name="Context" c:type="GstContext*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_convert" c:identifier="gst_query_set_convert">
- <doc xml:space="preserve">Answer a convert query by setting the requested values.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="src_format" transfer-ownership="none">
- <doc xml:space="preserve">the source #GstFormat</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="src_value" transfer-ownership="none">
- <doc xml:space="preserve">the source value</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="dest_format" transfer-ownership="none">
- <doc xml:space="preserve">the destination #GstFormat</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="dest_value" transfer-ownership="none">
- <doc xml:space="preserve">the destination value</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_duration" c:identifier="gst_query_set_duration">
- <doc xml:space="preserve">Answer a duration query by setting the requested value in the given format.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the #GstFormat for the duration</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="duration" transfer-ownership="none">
- <doc xml:space="preserve">the duration of the stream</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_formats"
- c:identifier="gst_query_set_formats"
- introspectable="0">
- <doc xml:space="preserve">Set the formats query result fields in @query. The number of formats passed
- must be equal to @n_formats.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="n_formats" transfer-ownership="none">
- <doc xml:space="preserve">the number of formats to set.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">A number of @GstFormats equal to @n_formats.</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="set_formatsv" c:identifier="gst_query_set_formatsv">
- <doc xml:space="preserve">Set the formats query result fields in @query. The number of formats passed
- in the @formats array must be equal to @n_formats.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="n_formats" transfer-ownership="none">
- <doc xml:space="preserve">the number of formats to set.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="formats" transfer-ownership="none">
- <doc xml:space="preserve">an array containing @n_formats
- @GstFormat values.</doc>
- <array length="0" zero-terminated="0" c:type="GstFormat*">
- <type name="Format" c:type="GstFormat"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="set_latency" c:identifier="gst_query_set_latency">
- <doc xml:space="preserve">Answer a latency query by setting the requested values in the given format.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="live" transfer-ownership="none">
- <doc xml:space="preserve">if there is a live element upstream</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="min_latency" transfer-ownership="none">
- <doc xml:space="preserve">the minimal latency of the upstream elements</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="max_latency" transfer-ownership="none">
- <doc xml:space="preserve">the maximal latency of the upstream elements</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_nth_allocation_param"
- c:identifier="gst_query_set_nth_allocation_param">
- <doc xml:space="preserve">Parse an available query and get the allocator and its params
- at @index of the allocator array.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">position in the allocator array to set</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="allocator"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">new allocator to set</doc>
- <type name="Allocator" c:type="GstAllocator*"/>
- </parameter>
- <parameter name="params"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">parameters for the allocator</doc>
- <type name="AllocationParams" c:type="const GstAllocationParams*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_nth_allocation_pool"
- c:identifier="gst_query_set_nth_allocation_pool">
- <doc xml:space="preserve">Set the pool parameters in @query.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_ALLOCATION.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">index to modify</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="pool"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the #GstBufferPool</doc>
- <type name="BufferPool" c:type="GstBufferPool*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="min_buffers" transfer-ownership="none">
- <doc xml:space="preserve">the min buffers</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="max_buffers" transfer-ownership="none">
- <doc xml:space="preserve">the max buffers</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_position" c:identifier="gst_query_set_position">
- <doc xml:space="preserve">Answer a position query by setting the requested value in the given format.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery with query type GST_QUERY_POSITION</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the requested #GstFormat</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="cur" transfer-ownership="none">
- <doc xml:space="preserve">the position to set</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_scheduling" c:identifier="gst_query_set_scheduling">
- <doc xml:space="preserve">Set the scheduling properties.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_SCHEDULING.</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GstSchedulingFlags</doc>
- <type name="SchedulingFlags" c:type="GstSchedulingFlags"/>
- </parameter>
- <parameter name="minsize" transfer-ownership="none">
- <doc xml:space="preserve">the suggested minimum size of pull requests</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="maxsize" transfer-ownership="none">
- <doc xml:space="preserve">the suggested maximum size of pull requests</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="align" transfer-ownership="none">
- <doc xml:space="preserve">the suggested alignment of pull requests</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_seeking" c:identifier="gst_query_set_seeking">
- <doc xml:space="preserve">Set the seeking query result fields in @query.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format to set for the @segment_start and @segment_end values</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="seekable" transfer-ownership="none">
- <doc xml:space="preserve">the seekable flag to set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="segment_start" transfer-ownership="none">
- <doc xml:space="preserve">the segment_start to set</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="segment_end" transfer-ownership="none">
- <doc xml:space="preserve">the segment_end to set</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_segment" c:identifier="gst_query_set_segment">
- <doc xml:space="preserve">Answer a segment query by setting the requested values. The normal
- playback segment of a pipeline is 0 to duration at the default rate of
- 1.0. If a seek was performed on the pipeline to play a different
- segment, this query will return the range specified in the last seek.
- @start_value and @stop_value will respectively contain the configured
- playback range start and stop values expressed in @format.
- The values are always between 0 and the duration of the media and
- @start_value <= @stop_value. @rate will contain the playback rate. For
- negative rates, playback will actually happen from @stop_value to
- @start_value.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="rate" transfer-ownership="none">
- <doc xml:space="preserve">the rate of the segment</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the #GstFormat of the segment values (@start_value and @stop_value)</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="start_value" transfer-ownership="none">
- <doc xml:space="preserve">the start value</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="stop_value" transfer-ownership="none">
- <doc xml:space="preserve">the stop value</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_uri" c:identifier="gst_query_set_uri">
- <doc xml:space="preserve">Answer a URI query by setting the requested URI.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery with query type GST_QUERY_URI</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">the URI to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_uri_redirection"
- c:identifier="gst_query_set_uri_redirection"
- version="1.2">
- <doc xml:space="preserve">Answer a URI query by setting the requested URI redirection.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery with query type GST_QUERY_URI</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">the URI to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_uri_redirection_permanent"
- c:identifier="gst_query_set_uri_redirection_permanent"
- version="1.4">
- <doc xml:space="preserve">Answer a URI query by setting the requested URI redirection
- to permanent or not.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery with query type %GST_QUERY_URI</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- <parameter name="permanent" transfer-ownership="none">
- <doc xml:space="preserve">whether the redirect is permanent or not</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="writable_structure"
- c:identifier="gst_query_writable_structure">
- <doc xml:space="preserve">Get the structure of a query. This method should be called with a writable
- @query so that the returned structure is guaranteed to be writable.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstStructure of the query. The structure is
- still owned by the query and will therefore be freed when the query
- is unreffed.</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <instance-parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Query" c:type="GstQuery*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <enumeration name="QueryType"
- glib:type-name="GstQueryType"
- glib:get-type="gst_query_type_get_type"
- c:type="GstQueryType">
- <doc xml:space="preserve">Standard predefined Query types</doc>
- <member name="unknown"
- value="0"
- c:identifier="GST_QUERY_UNKNOWN"
- glib:nick="unknown">
- <doc xml:space="preserve">unknown query type</doc>
- </member>
- <member name="position"
- value="2563"
- c:identifier="GST_QUERY_POSITION"
- glib:nick="position">
- <doc xml:space="preserve">current position in stream</doc>
- </member>
- <member name="duration"
- value="5123"
- c:identifier="GST_QUERY_DURATION"
- glib:nick="duration">
- <doc xml:space="preserve">total duration of the stream</doc>
- </member>
- <member name="latency"
- value="7683"
- c:identifier="GST_QUERY_LATENCY"
- glib:nick="latency">
- <doc xml:space="preserve">latency of stream</doc>
- </member>
- <member name="jitter"
- value="10243"
- c:identifier="GST_QUERY_JITTER"
- glib:nick="jitter">
- <doc xml:space="preserve">current jitter of stream</doc>
- </member>
- <member name="rate"
- value="12803"
- c:identifier="GST_QUERY_RATE"
- glib:nick="rate">
- <doc xml:space="preserve">current rate of the stream</doc>
- </member>
- <member name="seeking"
- value="15363"
- c:identifier="GST_QUERY_SEEKING"
- glib:nick="seeking">
- <doc xml:space="preserve">seeking capabilities</doc>
- </member>
- <member name="segment"
- value="17923"
- c:identifier="GST_QUERY_SEGMENT"
- glib:nick="segment">
- <doc xml:space="preserve">segment start/stop positions</doc>
- </member>
- <member name="convert"
- value="20483"
- c:identifier="GST_QUERY_CONVERT"
- glib:nick="convert">
- <doc xml:space="preserve">convert values between formats</doc>
- </member>
- <member name="formats"
- value="23043"
- c:identifier="GST_QUERY_FORMATS"
- glib:nick="formats">
- <doc xml:space="preserve">query supported formats for convert</doc>
- </member>
- <member name="buffering"
- value="28163"
- c:identifier="GST_QUERY_BUFFERING"
- glib:nick="buffering">
- <doc xml:space="preserve">query available media for efficient seeking.</doc>
- </member>
- <member name="custom"
- value="30723"
- c:identifier="GST_QUERY_CUSTOM"
- glib:nick="custom">
- <doc xml:space="preserve">a custom application or element defined query.</doc>
- </member>
- <member name="uri"
- value="33283"
- c:identifier="GST_QUERY_URI"
- glib:nick="uri">
- <doc xml:space="preserve">query the URI of the source or sink.</doc>
- </member>
- <member name="allocation"
- value="35846"
- c:identifier="GST_QUERY_ALLOCATION"
- glib:nick="allocation">
- <doc xml:space="preserve">the buffer allocation properties</doc>
- </member>
- <member name="scheduling"
- value="38401"
- c:identifier="GST_QUERY_SCHEDULING"
- glib:nick="scheduling">
- <doc xml:space="preserve">the scheduling properties</doc>
- </member>
- <member name="accept_caps"
- value="40963"
- c:identifier="GST_QUERY_ACCEPT_CAPS"
- glib:nick="accept-caps">
- <doc xml:space="preserve">the accept caps query</doc>
- </member>
- <member name="caps"
- value="43523"
- c:identifier="GST_QUERY_CAPS"
- glib:nick="caps">
- <doc xml:space="preserve">the caps query</doc>
- </member>
- <member name="drain"
- value="46086"
- c:identifier="GST_QUERY_DRAIN"
- glib:nick="drain">
- <doc xml:space="preserve">wait till all serialized data is consumed downstream</doc>
- </member>
- <member name="context"
- value="48643"
- c:identifier="GST_QUERY_CONTEXT"
- glib:nick="context">
- <doc xml:space="preserve">query the pipeline-local context from
- downstream or upstream (since 1.2)</doc>
- </member>
- <function name="get_flags" c:identifier="gst_query_type_get_flags">
- <doc xml:space="preserve">Gets the #GstQueryTypeFlags associated with @type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstQueryTypeFlags.</doc>
- <type name="QueryTypeFlags" c:type="GstQueryTypeFlags"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQueryType</doc>
- <type name="QueryType" c:type="GstQueryType"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_name" c:identifier="gst_query_type_get_name">
- <doc xml:space="preserve">Get a printable name for the given query type. Do not modify or free.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a reference to the static name of the query.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the query type</doc>
- <type name="QueryType" c:type="GstQueryType"/>
- </parameter>
- </parameters>
- </function>
- <function name="to_quark" c:identifier="gst_query_type_to_quark">
- <doc xml:space="preserve">Get the unique quark for the given query type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the quark associated with the query type</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the query type</doc>
- <type name="QueryType" c:type="GstQueryType"/>
- </parameter>
- </parameters>
- </function>
- </enumeration>
- <bitfield name="QueryTypeFlags"
- glib:type-name="GstQueryTypeFlags"
- glib:get-type="gst_query_type_flags_get_type"
- c:type="GstQueryTypeFlags">
- <doc xml:space="preserve">#GstQueryTypeFlags indicate the aspects of the different #GstQueryType
- values. You can get the type flags of a #GstQueryType with the
- gst_query_type_get_flags() function.</doc>
- <member name="upstream"
- value="1"
- c:identifier="GST_QUERY_TYPE_UPSTREAM"
- glib:nick="upstream">
- <doc xml:space="preserve">Set if the query can travel upstream.</doc>
- </member>
- <member name="downstream"
- value="2"
- c:identifier="GST_QUERY_TYPE_DOWNSTREAM"
- glib:nick="downstream">
- <doc xml:space="preserve">Set if the query can travel downstream.</doc>
- </member>
- <member name="serialized"
- value="4"
- c:identifier="GST_QUERY_TYPE_SERIALIZED"
- glib:nick="serialized">
- <doc xml:space="preserve">Set if the query should be serialized with data
- flow.</doc>
- </member>
- </bitfield>
- <enumeration name="Rank"
- glib:type-name="GstRank"
- glib:get-type="gst_rank_get_type"
- c:type="GstRank">
- <doc xml:space="preserve">Element priority ranks. Defines the order in which the autoplugger (or
- similar rank-picking mechanisms, such as e.g. gst_element_make_from_uri())
- will choose this element over an alternative one with the same function.
- These constants serve as a rough guidance for defining the rank of a
- #GstPluginFeature. Any value is valid, including values bigger than
- @GST_RANK_PRIMARY.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_RANK_NONE"
- glib:nick="none">
- <doc xml:space="preserve">will be chosen last or not at all</doc>
- </member>
- <member name="marginal"
- value="64"
- c:identifier="GST_RANK_MARGINAL"
- glib:nick="marginal">
- <doc xml:space="preserve">unlikely to be chosen</doc>
- </member>
- <member name="secondary"
- value="128"
- c:identifier="GST_RANK_SECONDARY"
- glib:nick="secondary">
- <doc xml:space="preserve">likely to be chosen</doc>
- </member>
- <member name="primary"
- value="256"
- c:identifier="GST_RANK_PRIMARY"
- glib:nick="primary">
- <doc xml:space="preserve">will be chosen first</doc>
- </member>
- </enumeration>
- <class name="Registry"
- c:symbol-prefix="registry"
- c:type="GstRegistry"
- parent="Object"
- glib:type-name="GstRegistry"
- glib:get-type="gst_registry_get_type"
- glib:type-struct="RegistryClass">
- <doc xml:space="preserve">One registry holds the metadata of a set of plugins.
- <emphasis role="bold">Design:</emphasis>
- The #GstRegistry object is a list of plugins and some functions for dealing
- with them. Each #GstPlugin is matched 1-1 with a file on disk, and may or may
- not be loaded at a given time.
- The primary source, at all times, of plugin information is each plugin file
- itself. Thus, if an application wants information about a particular plugin,
- or wants to search for a feature that satisfies given criteria, the primary
- means of doing so is to load every plugin and look at the resulting
- information that is gathered in the default registry. Clearly, this is a time
- consuming process, so we cache information in the registry file. The format
- and location of the cache file is internal to gstreamer.
- On startup, plugins are searched for in the plugin search path. The following
- locations are checked in this order:
- <itemizedlist>
- <listitem>
- <para>location from --gst-plugin-path commandline option.</para>
- </listitem>
- <listitem>
- <para>the GST_PLUGIN_PATH environment variable.</para>
- </listitem>
- <listitem>
- <para>the GST_PLUGIN_SYSTEM_PATH environment variable.</para>
- </listitem>
- <listitem>
- <para>default locations (if GST_PLUGIN_SYSTEM_PATH is not set). Those
- default locations are:
- <filename>$XDG_DATA_HOME/gstreamer-$GST_API_VERSION/plugins/</filename>
- and <filename>$prefix/libs/gstreamer-$GST_API_VERSION/</filename>.
- <ulink url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">
- <filename>$XDG_DATA_HOME</filename></ulink> defaults to
- <filename>$HOME/.local/share</filename>.
- </para>
- </listitem>
- </itemizedlist>
- The registry cache file is loaded from
- <filename>$XDG_CACHE_HOME/gstreamer-$GST_API_VERSION/registry-$ARCH.bin</filename>
- (where
- <ulink url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">
- <filename>$XDG_CACHE_HOME</filename></ulink> defaults to
- <filename>$HOME/.cache</filename>) or the file listed in the GST_REGISTRY
- env var. One reason to change the registry location is for testing.
- For each plugin that is found in the plugin search path, there could be 3
- possibilities for cached information:
- <itemizedlist>
- <listitem>
- <para>the cache may not contain information about a given file.</para>
- </listitem>
- <listitem>
- <para>the cache may have stale information.</para>
- </listitem>
- <listitem>
- <para>the cache may have current information.</para>
- </listitem>
- </itemizedlist>
- In the first two cases, the plugin is loaded and the cache updated. In
- addition to these cases, the cache may have entries for plugins that are not
- relevant to the current process. These are marked as not available to the
- current process. If the cache is updated for whatever reason, it is marked
- dirty.
- A dirty cache is written out at the end of initialization. Each entry is
- checked to make sure the information is minimally valid. If not, the entry is
- simply dropped.
- <emphasis role="bold">Implementation notes:</emphasis>
- The "cache" and "registry" are different concepts and can represent
- different sets of plugins. For various reasons, at init time, the cache is
- stored in the default registry, and plugins not relevant to the current
- process are marked with the %GST_PLUGIN_FLAG_CACHED bit. These plugins are
- removed at the end of initialization.</doc>
- <function name="fork_is_enabled"
- c:identifier="gst_registry_fork_is_enabled">
- <doc xml:space="preserve">By default GStreamer will perform scanning and rebuilding of the
- registry file using a helper child process.
- Applications might want to disable this behaviour with the
- gst_registry_fork_set_enabled() function, in which case new plugins
- are scanned (and loaded) into the application process.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if GStreamer will use the child helper process when
- rebuilding the registry.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- </function>
- <function name="fork_set_enabled"
- c:identifier="gst_registry_fork_set_enabled">
- <doc xml:space="preserve">Applications might want to disable/enable spawning of a child helper process
- when rebuilding the registry. See gst_registry_fork_is_enabled() for more
- information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="enabled" transfer-ownership="none">
- <doc xml:space="preserve">whether rebuilding the registry can use a temporary child helper process.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="get" c:identifier="gst_registry_get">
- <doc xml:space="preserve">Retrieves the singleton plugin registry. The caller does not own a
- reference on the registry, as it is alive as long as GStreamer is
- initialized.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstRegistry.</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </return-value>
- </function>
- <method name="add_feature" c:identifier="gst_registry_add_feature">
- <doc xml:space="preserve">Add the feature to the registry. The feature-added signal will be emitted.
- This function sinks @feature.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="registry" transfer-ownership="none">
- <doc xml:space="preserve">the registry to add the plugin to</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </instance-parameter>
- <parameter name="feature" transfer-ownership="full">
- <doc xml:space="preserve">the feature to add</doc>
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_plugin" c:identifier="gst_registry_add_plugin">
- <doc xml:space="preserve">Add the plugin to the registry. The plugin-added signal will be emitted.
- This function will sink @plugin.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="registry" transfer-ownership="none">
- <doc xml:space="preserve">the registry to add the plugin to</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </instance-parameter>
- <parameter name="plugin" transfer-ownership="full">
- <doc xml:space="preserve">the plugin to add</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- </parameters>
- </method>
- <method name="check_feature_version"
- c:identifier="gst_registry_check_feature_version">
- <doc xml:space="preserve">Checks whether a plugin feature by the given name exists in
- @registry and whether its version is at least the
- version required.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the feature could be found and the version is
- the same as the required version or newer, and %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="registry" transfer-ownership="none">
- <doc xml:space="preserve">a #GstRegistry</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </instance-parameter>
- <parameter name="feature_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the feature (e.g. "oggdemux")</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="min_major" transfer-ownership="none">
- <doc xml:space="preserve">the minimum major version number</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="min_minor" transfer-ownership="none">
- <doc xml:space="preserve">the minimum minor version number</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="min_micro" transfer-ownership="none">
- <doc xml:space="preserve">the minimum micro version number</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="feature_filter" c:identifier="gst_registry_feature_filter">
- <doc xml:space="preserve">Runs a filter against all features of the plugins in the registry
- and returns a GList with the results.
- If the first flag is set, only the first match is
- returned (as a list with a single object).</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of
- #GstPluginFeature. Use gst_plugin_feature_list_free() after usage.
- MT safe.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="PluginFeature"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="registry" transfer-ownership="none">
- <doc xml:space="preserve">registry to query</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </instance-parameter>
- <parameter name="filter"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <doc xml:space="preserve">the filter to use</doc>
- <type name="PluginFeatureFilter" c:type="GstPluginFeatureFilter"/>
- </parameter>
- <parameter name="first" transfer-ownership="none">
- <doc xml:space="preserve">only return first match</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to the filter function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="find_feature" c:identifier="gst_registry_find_feature">
- <doc xml:space="preserve">Find the pluginfeature with the given name and type in the registry.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the pluginfeature with the
- given name and type or %NULL if the plugin was not
- found. gst_object_unref() after usage.
- MT safe.</doc>
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </return-value>
- <parameters>
- <instance-parameter name="registry" transfer-ownership="none">
- <doc xml:space="preserve">the registry to search</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the pluginfeature name to find</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the pluginfeature type to find</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </method>
- <method name="find_plugin" c:identifier="gst_registry_find_plugin">
- <doc xml:space="preserve">Find the plugin with the given name in the registry.
- The plugin will be reffed; caller is responsible for unreffing.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the plugin with the given name
- or %NULL if the plugin was not found. gst_object_unref() after
- usage.
- MT safe.</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </return-value>
- <parameters>
- <instance-parameter name="registry" transfer-ownership="none">
- <doc xml:space="preserve">the registry to search</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the plugin name to find</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_feature_list"
- c:identifier="gst_registry_get_feature_list">
- <doc xml:space="preserve">Retrieves a #GList of #GstPluginFeature of @type.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of
- #GstPluginFeature of @type. Use gst_plugin_feature_list_free() after use
- MT safe.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="PluginFeature"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="registry" transfer-ownership="none">
- <doc xml:space="preserve">a #GstRegistry</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </instance-parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GType.</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_feature_list_by_plugin"
- c:identifier="gst_registry_get_feature_list_by_plugin">
- <doc xml:space="preserve">Retrieves a #GList of features of the plugin with name @name.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of
- #GstPluginFeature. Use gst_plugin_feature_list_free() after usage.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="PluginFeature"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="registry" transfer-ownership="none">
- <doc xml:space="preserve">a #GstRegistry.</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">a plugin name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_feature_list_cookie"
- c:identifier="gst_registry_get_feature_list_cookie">
- <doc xml:space="preserve">Returns the registry's feature list cookie. This changes
- every time a feature is added or removed from the registry.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the feature list cookie.</doc>
- <type name="guint32" c:type="guint32"/>
- </return-value>
- <parameters>
- <instance-parameter name="registry" transfer-ownership="none">
- <doc xml:space="preserve">the registry</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_plugin_list"
- c:identifier="gst_registry_get_plugin_list">
- <doc xml:space="preserve">Get a copy of all plugins registered in the given registry. The refcount
- of each element in the list in incremented.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of #GstPlugin.
- Use gst_plugin_list_free() after usage.
- MT safe.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Plugin"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="registry" transfer-ownership="none">
- <doc xml:space="preserve">the registry to search</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="lookup" c:identifier="gst_registry_lookup">
- <doc xml:space="preserve">Look up a plugin in the given registry with the given filename.
- If found, plugin is reffed.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the #GstPlugin if found, or
- %NULL if not. gst_object_unref() after usage.</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </return-value>
- <parameters>
- <instance-parameter name="registry" transfer-ownership="none">
- <doc xml:space="preserve">the registry to look up in</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </instance-parameter>
- <parameter name="filename" transfer-ownership="none">
- <doc xml:space="preserve">the name of the file to look up</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_feature" c:identifier="gst_registry_lookup_feature">
- <doc xml:space="preserve">Find a #GstPluginFeature with @name in @registry.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstPluginFeature with its refcount incremented,
- use gst_object_unref() after usage.
- MT safe.</doc>
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </return-value>
- <parameters>
- <instance-parameter name="registry" transfer-ownership="none">
- <doc xml:space="preserve">a #GstRegistry</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPluginFeature name</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="plugin_filter" c:identifier="gst_registry_plugin_filter">
- <doc xml:space="preserve">Runs a filter against all plugins in the registry and returns a #GList with
- the results. If the first flag is set, only the first match is
- returned (as a list with a single object).
- Every plugin is reffed; use gst_plugin_list_free() after use, which
- will unref again.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of #GstPlugin.
- Use gst_plugin_list_free() after usage.
- MT safe.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Plugin"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="registry" transfer-ownership="none">
- <doc xml:space="preserve">registry to query</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </instance-parameter>
- <parameter name="filter"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <doc xml:space="preserve">the filter to use</doc>
- <type name="PluginFilter" c:type="GstPluginFilter"/>
- </parameter>
- <parameter name="first" transfer-ownership="none">
- <doc xml:space="preserve">only return first match</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to the filter function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_feature" c:identifier="gst_registry_remove_feature">
- <doc xml:space="preserve">Remove the feature from the registry.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="registry" transfer-ownership="none">
- <doc xml:space="preserve">the registry to remove the feature from</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </instance-parameter>
- <parameter name="feature" transfer-ownership="none">
- <doc xml:space="preserve">the feature to remove</doc>
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_plugin" c:identifier="gst_registry_remove_plugin">
- <doc xml:space="preserve">Remove the plugin from the registry.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="registry" transfer-ownership="none">
- <doc xml:space="preserve">the registry to remove the plugin from</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </instance-parameter>
- <parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">the plugin to remove</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- </parameters>
- </method>
- <method name="scan_path" c:identifier="gst_registry_scan_path">
- <doc xml:space="preserve">Scan the given path for plugins to add to the registry. The syntax of the
- path is specific to the registry.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if registry changed</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="registry" transfer-ownership="none">
- <doc xml:space="preserve">the registry to add found plugins to</doc>
- <type name="Registry" c:type="GstRegistry*"/>
- </instance-parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">the path to scan</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="RegistryPrivate" c:type="GstRegistryPrivate*"/>
- </field>
- <glib:signal name="feature-added" when="last">
- <doc xml:space="preserve">Signals that a feature has been added to the registry (possibly
- replacing a previously-added one by the same name)</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="feature" transfer-ownership="none">
- <doc xml:space="preserve">the feature that has been added</doc>
- <type name="PluginFeature"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="plugin-added" when="last">
- <doc xml:space="preserve">Signals that a plugin has been added to the registry (possibly
- replacing a previously-added one by the same name)</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="plugin" transfer-ownership="none">
- <doc xml:space="preserve">the plugin that has been added</doc>
- <type name="Plugin"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="RegistryClass"
- c:type="GstRegistryClass"
- glib:is-gtype-struct-for="Registry">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- </record>
- <record name="RegistryPrivate" c:type="GstRegistryPrivate" disguised="1">
- </record>
- <enumeration name="ResourceError"
- glib:type-name="GstResourceError"
- glib:get-type="gst_resource_error_get_type"
- c:type="GstResourceError"
- glib:error-domain="gst-resource-error-quark">
- <doc xml:space="preserve">Resource errors are for any resource used by an element:
- memory, files, network connections, process space, ...
- They're typically used by source and sink elements.</doc>
- <member name="failed"
- value="1"
- c:identifier="GST_RESOURCE_ERROR_FAILED"
- glib:nick="failed">
- <doc xml:space="preserve">a general error which doesn't fit in any other
- category. Make sure you add a custom message to the error call.</doc>
- </member>
- <member name="too_lazy"
- value="2"
- c:identifier="GST_RESOURCE_ERROR_TOO_LAZY"
- glib:nick="too-lazy">
- <doc xml:space="preserve">do not use this except as a placeholder for
- deciding where to go while developing code.</doc>
- </member>
- <member name="not_found"
- value="3"
- c:identifier="GST_RESOURCE_ERROR_NOT_FOUND"
- glib:nick="not-found">
- <doc xml:space="preserve">used when the resource could not be found.</doc>
- </member>
- <member name="busy"
- value="4"
- c:identifier="GST_RESOURCE_ERROR_BUSY"
- glib:nick="busy">
- <doc xml:space="preserve">used when resource is busy.</doc>
- </member>
- <member name="open_read"
- value="5"
- c:identifier="GST_RESOURCE_ERROR_OPEN_READ"
- glib:nick="open-read">
- <doc xml:space="preserve">used when resource fails to open for reading.</doc>
- </member>
- <member name="open_write"
- value="6"
- c:identifier="GST_RESOURCE_ERROR_OPEN_WRITE"
- glib:nick="open-write">
- <doc xml:space="preserve">used when resource fails to open for writing.</doc>
- </member>
- <member name="open_read_write"
- value="7"
- c:identifier="GST_RESOURCE_ERROR_OPEN_READ_WRITE"
- glib:nick="open-read-write">
- <doc xml:space="preserve">used when resource cannot be opened for
- both reading and writing, or either (but unspecified which).</doc>
- </member>
- <member name="close"
- value="8"
- c:identifier="GST_RESOURCE_ERROR_CLOSE"
- glib:nick="close">
- <doc xml:space="preserve">used when the resource can't be closed.</doc>
- </member>
- <member name="read"
- value="9"
- c:identifier="GST_RESOURCE_ERROR_READ"
- glib:nick="read">
- <doc xml:space="preserve">used when the resource can't be read from.</doc>
- </member>
- <member name="write"
- value="10"
- c:identifier="GST_RESOURCE_ERROR_WRITE"
- glib:nick="write">
- <doc xml:space="preserve">used when the resource can't be written to.</doc>
- </member>
- <member name="seek"
- value="11"
- c:identifier="GST_RESOURCE_ERROR_SEEK"
- glib:nick="seek">
- <doc xml:space="preserve">used when a seek on the resource fails.</doc>
- </member>
- <member name="sync"
- value="12"
- c:identifier="GST_RESOURCE_ERROR_SYNC"
- glib:nick="sync">
- <doc xml:space="preserve">used when a synchronize on the resource fails.</doc>
- </member>
- <member name="settings"
- value="13"
- c:identifier="GST_RESOURCE_ERROR_SETTINGS"
- glib:nick="settings">
- <doc xml:space="preserve">used when settings can't be manipulated on.</doc>
- </member>
- <member name="no_space_left"
- value="14"
- c:identifier="GST_RESOURCE_ERROR_NO_SPACE_LEFT"
- glib:nick="no-space-left">
- <doc xml:space="preserve">used when the resource has no space left.</doc>
- </member>
- <member name="not_authorized"
- value="15"
- c:identifier="GST_RESOURCE_ERROR_NOT_AUTHORIZED"
- glib:nick="not-authorized">
- <doc xml:space="preserve">used when the resource can't be opened
- due to missing authorization.
- (Since 1.2.4)</doc>
- </member>
- <member name="num_errors"
- value="16"
- c:identifier="GST_RESOURCE_ERROR_NUM_ERRORS"
- glib:nick="num-errors">
- <doc xml:space="preserve">the number of resource error types.</doc>
- </member>
- <function name="quark" c:identifier="gst_resource_error_quark">
- <return-value transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- </enumeration>
- <constant name="SECOND" value="1000000000" c:type="GST_SECOND">
- <doc xml:space="preserve">Constant that defines one GStreamer second.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="SEGMENT_FORMAT" value="paB" c:type="GST_SEGMENT_FORMAT">
- <doc xml:space="preserve">printf format type used to debug GStreamer segments.
- This can only be used on pointers to GstSegment structures.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="STIME_FORMAT"
- value="c%"
- c:type="GST_STIME_FORMAT"
- version="1.6">
- <doc xml:space="preserve">A string that can be used in printf-like format strings to display a signed
- #GstClockTimeDiff or #gint64 value in h:m:s format. Use GST_TIME_ARGS() to
- construct the matching arguments.
- Example:
- |[
- printf("%" GST_STIME_FORMAT "\n", GST_STIME_ARGS(ts));
- ]|</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <record name="Sample"
- c:type="GstSample"
- glib:type-name="GstSample"
- glib:get-type="gst_sample_get_type"
- c:symbol-prefix="sample">
- <doc xml:space="preserve">A #GstSample is a small object containing data, a type, timing and
- extra arbitrary information.</doc>
- <constructor name="new" c:identifier="gst_sample_new">
- <doc xml:space="preserve">Create a new #GstSample with the provided details.
- Free-function: gst_sample_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GstSample. gst_sample_unref()
- after usage.</doc>
- <type name="Sample" c:type="GstSample*"/>
- </return-value>
- <parameters>
- <parameter name="buffer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstBuffer, or %NULL</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="caps"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstCaps, or %NULL</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="segment"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstSegment, or %NULL</doc>
- <type name="Segment" c:type="const GstSegment*"/>
- </parameter>
- <parameter name="info"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstStructure, or %NULL</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_buffer" c:identifier="gst_sample_get_buffer">
- <doc xml:space="preserve">Get the buffer associated with @sample</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the buffer of @sample or %NULL
- when there is no buffer. The buffer remains valid as long as
- @sample is valid. If you need to hold on to it for longer than
- that, take a ref to the buffer with gst_buffer_ref().</doc>
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="sample" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSample</doc>
- <type name="Sample" c:type="GstSample*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_buffer_list"
- c:identifier="gst_sample_get_buffer_list"
- version="1.6">
- <doc xml:space="preserve">Get the buffer list associated with @sample</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the buffer list of @sample or %NULL
- when there is no buffer list. The buffer list remains valid as long as
- @sample is valid. If you need to hold on to it for longer than
- that, take a ref to the buffer list with gst_mini_object_ref ().</doc>
- <type name="BufferList" c:type="GstBufferList*"/>
- </return-value>
- <parameters>
- <instance-parameter name="sample" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSample</doc>
- <type name="Sample" c:type="GstSample*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_caps" c:identifier="gst_sample_get_caps">
- <doc xml:space="preserve">Get the caps associated with @sample</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the caps of @sample or %NULL
- when there is no caps. The caps remain valid as long as @sample is
- valid. If you need to hold on to the caps for longer than that,
- take a ref to the caps with gst_caps_ref().</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="sample" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSample</doc>
- <type name="Sample" c:type="GstSample*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_info" c:identifier="gst_sample_get_info">
- <doc xml:space="preserve">Get extra information associated with @sample.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the extra info of @sample.
- The info remains valid as long as @sample is valid.</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </return-value>
- <parameters>
- <instance-parameter name="sample" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSample</doc>
- <type name="Sample" c:type="GstSample*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_segment" c:identifier="gst_sample_get_segment">
- <doc xml:space="preserve">Get the segment associated with @sample</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the segment of @sample.
- The segment remains valid as long as @sample is valid.</doc>
- <type name="Segment" c:type="GstSegment*"/>
- </return-value>
- <parameters>
- <instance-parameter name="sample" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSample</doc>
- <type name="Sample" c:type="GstSample*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_buffer_list"
- c:identifier="gst_sample_set_buffer_list"
- version="1.6">
- <doc xml:space="preserve">Set the buffer list associated with @sample</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="sample" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSample</doc>
- <type name="Sample" c:type="GstSample*"/>
- </instance-parameter>
- <parameter name="buffer_list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBufferList</doc>
- <type name="BufferList" c:type="GstBufferList*"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <bitfield name="SchedulingFlags"
- glib:type-name="GstSchedulingFlags"
- glib:get-type="gst_scheduling_flags_get_type"
- c:type="GstSchedulingFlags">
- <doc xml:space="preserve">The different scheduling flags.</doc>
- <member name="seekable"
- value="1"
- c:identifier="GST_SCHEDULING_FLAG_SEEKABLE"
- glib:nick="seekable">
- <doc xml:space="preserve">if seeking is possible</doc>
- </member>
- <member name="sequential"
- value="2"
- c:identifier="GST_SCHEDULING_FLAG_SEQUENTIAL"
- glib:nick="sequential">
- <doc xml:space="preserve">if sequential access is recommended</doc>
- </member>
- <member name="bandwidth_limited"
- value="4"
- c:identifier="GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED"
- glib:nick="bandwidth-limited">
- <doc xml:space="preserve">if bandwidth is limited and buffering possible (since 1.2)</doc>
- </member>
- </bitfield>
- <enumeration name="SearchMode"
- glib:type-name="GstSearchMode"
- glib:get-type="gst_search_mode_get_type"
- c:type="GstSearchMode">
- <doc xml:space="preserve">The different search modes.</doc>
- <member name="exact"
- value="0"
- c:identifier="GST_SEARCH_MODE_EXACT"
- glib:nick="exact">
- <doc xml:space="preserve">Only search for exact matches.</doc>
- </member>
- <member name="before"
- value="1"
- c:identifier="GST_SEARCH_MODE_BEFORE"
- glib:nick="before">
- <doc xml:space="preserve">Search for an exact match or the element just before.</doc>
- </member>
- <member name="after"
- value="2"
- c:identifier="GST_SEARCH_MODE_AFTER"
- glib:nick="after">
- <doc xml:space="preserve">Search for an exact match or the element just after.</doc>
- </member>
- </enumeration>
- <bitfield name="SeekFlags"
- glib:type-name="GstSeekFlags"
- glib:get-type="gst_seek_flags_get_type"
- c:type="GstSeekFlags">
- <doc xml:space="preserve">Flags to be used with gst_element_seek() or gst_event_new_seek(). All flags
- can be used together.
- A non flushing seek might take some time to perform as the currently
- playing data in the pipeline will not be cleared.
- An accurate seek might be slower for formats that don't have any indexes
- or timestamp markers in the stream. Specifying this flag might require a
- complete scan of the file in those cases.
- When performing a segment seek: after the playback of the segment completes,
- no EOS will be emitted by the element that performed the seek, but a
- %GST_MESSAGE_SEGMENT_DONE message will be posted on the bus by the element.
- When this message is posted, it is possible to send a new seek event to
- continue playback. With this seek method it is possible to perform seamless
- looping or simple linear editing.
- When doing fast forward (rate > 1.0) or fast reverse (rate < -1.0) trickmode
- playback, the %GST_SEEK_FLAG_TRICKMODE flag can be used to instruct decoders
- and demuxers to adjust the playback rate by skipping frames. This can improve
- performance and decrease CPU usage because not all frames need to be decoded.
- Beyond that, the %GST_SEEK_FLAG_TRICKMODE_KEY_UNITS flag can be used to
- request that decoders skip all frames except key units, and
- %GST_SEEK_FLAG_TRICKMODE_NO_AUDIO flags can be used to request that audio
- decoders do no decoding at all, and simple output silence.
- The %GST_SEEK_FLAG_SNAP_BEFORE flag can be used to snap to the previous
- relevant location, and the %GST_SEEK_FLAG_SNAP_AFTER flag can be used to
- select the next relevant location. If %GST_SEEK_FLAG_KEY_UNIT is specified,
- the relevant location is a keyframe. If both flags are specified, the nearest
- of these locations will be selected. If none are specified, the implementation is
- free to select whichever it wants.
- The before and after here are in running time, so when playing backwards,
- the next location refers to the one that will played in next, and not the
- one that is located after in the actual source stream.
- Also see part-seeking.txt in the GStreamer design documentation for more
- details on the meaning of these flags and the behaviour expected of
- elements that handle them.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_SEEK_FLAG_NONE"
- glib:nick="none">
- <doc xml:space="preserve">no flag</doc>
- </member>
- <member name="flush"
- value="1"
- c:identifier="GST_SEEK_FLAG_FLUSH"
- glib:nick="flush">
- <doc xml:space="preserve">flush pipeline</doc>
- </member>
- <member name="accurate"
- value="2"
- c:identifier="GST_SEEK_FLAG_ACCURATE"
- glib:nick="accurate">
- <doc xml:space="preserve">accurate position is requested, this might
- be considerably slower for some formats.</doc>
- </member>
- <member name="key_unit"
- value="4"
- c:identifier="GST_SEEK_FLAG_KEY_UNIT"
- glib:nick="key-unit">
- <doc xml:space="preserve">seek to the nearest keyframe. This might be
- faster but less accurate.</doc>
- </member>
- <member name="segment"
- value="8"
- c:identifier="GST_SEEK_FLAG_SEGMENT"
- glib:nick="segment">
- <doc xml:space="preserve">perform a segment seek.</doc>
- </member>
- <member name="trickmode"
- value="16"
- c:identifier="GST_SEEK_FLAG_TRICKMODE"
- glib:nick="trickmode">
- <doc xml:space="preserve">when doing fast forward or fast reverse playback, allow
- elements to skip frames instead of generating all
- frames. (Since 1.6)</doc>
- </member>
- <member name="skip"
- value="16"
- c:identifier="GST_SEEK_FLAG_SKIP"
- glib:nick="skip">
- <doc xml:space="preserve">Deprecated backward compatibility flag, replaced
- by %GST_SEEK_FLAG_TRICKMODE</doc>
- </member>
- <member name="snap_before"
- value="32"
- c:identifier="GST_SEEK_FLAG_SNAP_BEFORE"
- glib:nick="snap-before">
- <doc xml:space="preserve">go to a location before the requested position,
- if %GST_SEEK_FLAG_KEY_UNIT this means the keyframe at or before
- the requested position the one at or before the seek target.</doc>
- </member>
- <member name="snap_after"
- value="64"
- c:identifier="GST_SEEK_FLAG_SNAP_AFTER"
- glib:nick="snap-after">
- <doc xml:space="preserve">go to a location after the requested position,
- if %GST_SEEK_FLAG_KEY_UNIT this means the keyframe at of after the
- requested position.</doc>
- </member>
- <member name="snap_nearest"
- value="96"
- c:identifier="GST_SEEK_FLAG_SNAP_NEAREST"
- glib:nick="snap-nearest">
- <doc xml:space="preserve">go to a position near the requested position,
- if %GST_SEEK_FLAG_KEY_UNIT this means the keyframe closest
- to the requested position, if both keyframes are at an equal
- distance, behaves like %GST_SEEK_FLAG_SNAP_BEFORE.</doc>
- </member>
- <member name="trickmode_key_units"
- value="128"
- c:identifier="GST_SEEK_FLAG_TRICKMODE_KEY_UNITS"
- glib:nick="trickmode-key-units">
- <doc xml:space="preserve">when doing fast forward or fast reverse
- playback, request that elements only decode keyframes
- and skip all other content, for formats that have
- keyframes. (Since 1.6)</doc>
- </member>
- <member name="trickmode_no_audio"
- value="256"
- c:identifier="GST_SEEK_FLAG_TRICKMODE_NO_AUDIO"
- glib:nick="trickmode-no-audio">
- <doc xml:space="preserve">when doing fast forward or fast reverse
- playback, request that audio decoder elements skip
- decoding and output only gap events or silence. (Since 1.6)</doc>
- </member>
- </bitfield>
- <enumeration name="SeekType"
- glib:type-name="GstSeekType"
- glib:get-type="gst_seek_type_get_type"
- c:type="GstSeekType">
- <doc xml:space="preserve">The different types of seek events. When constructing a seek event with
- gst_event_new_seek() or when doing gst_segment_do_seek ().</doc>
- <member name="none"
- value="0"
- c:identifier="GST_SEEK_TYPE_NONE"
- glib:nick="none">
- <doc xml:space="preserve">no change in position is required</doc>
- </member>
- <member name="set"
- value="1"
- c:identifier="GST_SEEK_TYPE_SET"
- glib:nick="set">
- <doc xml:space="preserve">absolute position is requested</doc>
- </member>
- <member name="end"
- value="2"
- c:identifier="GST_SEEK_TYPE_END"
- glib:nick="end">
- <doc xml:space="preserve">relative position to duration is requested</doc>
- </member>
- </enumeration>
- <record name="Segment"
- c:type="GstSegment"
- glib:type-name="GstSegment"
- glib:get-type="gst_segment_get_type"
- c:symbol-prefix="segment">
- <doc xml:space="preserve">This helper structure holds the relevant values for tracking the region of
- interest in a media file, called a segment.
- The structure can be used for two purposes:
- <itemizedlist>
- <listitem><para>performing seeks (handling seek events)</para></listitem>
- <listitem><para>tracking playback regions (handling newsegment events)</para></listitem>
- </itemizedlist>
- The segment is usually configured by the application with a seek event which
- is propagated upstream and eventually handled by an element that performs the seek.
- The configured segment is then propagated back downstream with a newsegment event.
- This information is then used to clip media to the segment boundaries.
- A segment structure is initialized with gst_segment_init(), which takes a #GstFormat
- that will be used as the format of the segment values. The segment will be configured
- with a start value of 0 and a stop/duration of -1, which is undefined. The default
- rate and applied_rate is 1.0.
- The public duration field contains the duration of the segment. When using
- the segment for seeking, the start and time members should normally be left
- to their default 0 value. The stop position is left to -1 unless explicitly
- configured to a different value after a seek event.
- The current position in the segment should be set by changing the position
- member in the structure.
- For elements that perform seeks, the current segment should be updated with the
- gst_segment_do_seek() and the values from the seek event. This method will update
- all the segment fields. The position field will contain the new playback position.
- If the start_type was different from GST_SEEK_TYPE_NONE, playback continues from
- the position position, possibly with updated flags or rate.
- For elements that want to use #GstSegment to track the playback region,
- update the segment fields with the information from the newsegment event.
- The gst_segment_clip() method can be used to check and clip
- the media data to the segment boundaries.
- For elements that want to synchronize to the pipeline clock, gst_segment_to_running_time()
- can be used to convert a timestamp to a value that can be used to synchronize
- to the clock. This function takes into account the base as well as
- any rate or applied_rate conversions.
- For elements that need to perform operations on media data in stream_time,
- gst_segment_to_stream_time() can be used to convert a timestamp and the segment
- info to stream time (which is always between 0 and the duration of the stream).</doc>
- <field name="flags" writable="1">
- <doc xml:space="preserve">flags for this segment</doc>
- <type name="SegmentFlags" c:type="GstSegmentFlags"/>
- </field>
- <field name="rate" writable="1">
- <doc xml:space="preserve">the playback rate of the segment</doc>
- <type name="gdouble" c:type="gdouble"/>
- </field>
- <field name="applied_rate" writable="1">
- <doc xml:space="preserve">the already applied rate to the segment</doc>
- <type name="gdouble" c:type="gdouble"/>
- </field>
- <field name="format" writable="1">
- <doc xml:space="preserve">the format of the segment values</doc>
- <type name="Format" c:type="GstFormat"/>
- </field>
- <field name="base" writable="1">
- <doc xml:space="preserve">the running time (plus elapsed time, see offset) of the segment start</doc>
- <type name="guint64" c:type="guint64"/>
- </field>
- <field name="offset" writable="1">
- <doc xml:space="preserve">the amount (in buffer timestamps) that has already been elapsed in
- the segment</doc>
- <type name="guint64" c:type="guint64"/>
- </field>
- <field name="start" writable="1">
- <doc xml:space="preserve">the start of the segment in buffer timestamp time (PTS)</doc>
- <type name="guint64" c:type="guint64"/>
- </field>
- <field name="stop" writable="1">
- <doc xml:space="preserve">the stop of the segment in buffer timestamp time (PTS)</doc>
- <type name="guint64" c:type="guint64"/>
- </field>
- <field name="time" writable="1">
- <doc xml:space="preserve">the stream time of the segment start</doc>
- <type name="guint64" c:type="guint64"/>
- </field>
- <field name="position" writable="1">
- <doc xml:space="preserve">the buffer timestamp position in the segment (used internally by
- elements such as sources, demuxers or parsers to track progress)</doc>
- <type name="guint64" c:type="guint64"/>
- </field>
- <field name="duration" writable="1">
- <doc xml:space="preserve">the duration of the segment</doc>
- <type name="guint64" c:type="guint64"/>
- </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>
- <constructor name="new" c:identifier="gst_segment_new">
- <doc xml:space="preserve">Allocate a new #GstSegment structure and initialize it using
- gst_segment_init().
- Free-function: gst_segment_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstSegment, free with gst_segment_free().</doc>
- <type name="Segment" c:type="GstSegment*"/>
- </return-value>
- </constructor>
- <method name="clip" c:identifier="gst_segment_clip">
- <doc xml:space="preserve">Clip the given @start and @stop values to the segment boundaries given
- in @segment. @start and @stop are compared and clipped to @segment
- start and stop values.
- If the function returns %FALSE, @start and @stop are known to fall
- outside of @segment and @clip_start and @clip_stop are not updated.
- When the function returns %TRUE, @clip_start and @clip_stop will be
- updated. If @clip_start or @clip_stop are different from @start or @stop
- respectively, the region fell partially in the segment.
- Note that when @stop is -1, @clip_stop will be set to the end of the
- segment. Depending on the use case, this may or may not be what you want.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the given @start and @stop times fall partially or
- completely in @segment, %FALSE if the values are completely outside
- of the segment.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment structure.</doc>
- <type name="Segment" c:type="const GstSegment*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of the segment.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <doc xml:space="preserve">the start position in the segment</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="stop" transfer-ownership="none">
- <doc xml:space="preserve">the stop position in the segment</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="clip_start"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the clipped start position in the segment</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="clip_stop"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the clipped stop position in the segment</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="copy" c:identifier="gst_segment_copy">
- <doc xml:space="preserve">Create a copy of given @segment.
- Free-function: gst_segment_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstSegment, free with gst_segment_free().</doc>
- <type name="Segment" c:type="GstSegment*"/>
- </return-value>
- <parameters>
- <instance-parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment</doc>
- <type name="Segment" c:type="const GstSegment*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="copy_into" c:identifier="gst_segment_copy_into">
- <doc xml:space="preserve">Copy the contents of @src into @dest.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment</doc>
- <type name="Segment" c:type="const GstSegment*"/>
- </instance-parameter>
- <parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment</doc>
- <type name="Segment" c:type="GstSegment*"/>
- </parameter>
- </parameters>
- </method>
- <method name="do_seek" c:identifier="gst_segment_do_seek">
- <doc xml:space="preserve">Update the segment structure with the field values of a seek event (see
- gst_event_new_seek()).
- After calling this method, the segment field position and time will
- contain the requested new position in the segment. The new requested
- position in the segment depends on @rate and @start_type and @stop_type.
- For positive @rate, the new position in the segment is the new @segment
- start field when it was updated with a @start_type different from
- #GST_SEEK_TYPE_NONE. If no update was performed on @segment start position
- (#GST_SEEK_TYPE_NONE), @start is ignored and @segment position is
- unmodified.
- For negative @rate, the new position in the segment is the new @segment
- stop field when it was updated with a @stop_type different from
- #GST_SEEK_TYPE_NONE. If no stop was previously configured in the segment, the
- duration of the segment will be used to update the stop position.
- If no update was performed on @segment stop position (#GST_SEEK_TYPE_NONE),
- @stop is ignored and @segment position is unmodified.
- The applied rate of the segment will be set to 1.0 by default.
- If the caller can apply a rate change, it should update @segment
- rate and applied_rate after calling this function.
- @update will be set to %TRUE if a seek should be performed to the segment
- position field. This field can be %FALSE if, for example, only the @rate
- has been changed but not the playback position.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the seek could be performed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment structure.</doc>
- <type name="Segment" c:type="GstSegment*"/>
- </instance-parameter>
- <parameter name="rate" transfer-ownership="none">
- <doc xml:space="preserve">the rate of the segment.</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of the segment.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">the segment flags for the segment</doc>
- <type name="SeekFlags" c:type="GstSeekFlags"/>
- </parameter>
- <parameter name="start_type" transfer-ownership="none">
- <doc xml:space="preserve">the seek method</doc>
- <type name="SeekType" c:type="GstSeekType"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <doc xml:space="preserve">the seek start value</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="stop_type" transfer-ownership="none">
- <doc xml:space="preserve">the seek method</doc>
- <type name="SeekType" c:type="GstSeekType"/>
- </parameter>
- <parameter name="stop" transfer-ownership="none">
- <doc xml:space="preserve">the seek stop value</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="update" transfer-ownership="none">
- <doc xml:space="preserve">boolean holding whether position was updated.</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="free" c:identifier="gst_segment_free">
- <doc xml:space="preserve">Free the allocated segment @segment.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="segment" transfer-ownership="full">
- <doc xml:space="preserve">a #GstSegment</doc>
- <type name="Segment" c:type="GstSegment*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="init" c:identifier="gst_segment_init">
- <doc xml:space="preserve">The start/position fields are set to 0 and the stop/duration
- fields are set to -1 (unknown). The default rate of 1.0 and no
- flags are set.
- Initialize @segment to its default values.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment structure.</doc>
- <type name="Segment" c:type="GstSegment*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of the segment.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_equal"
- c:identifier="gst_segment_is_equal"
- version="1.6">
- <doc xml:space="preserve">Checks for two segments being equal. Equality here is defined
- as perfect equality, including floating point values.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the segments are equal, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="s0" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment structure.</doc>
- <type name="Segment" c:type="const GstSegment*"/>
- </instance-parameter>
- <parameter name="s1" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment structure.</doc>
- <type name="Segment" c:type="const GstSegment*"/>
- </parameter>
- </parameters>
- </method>
- <method name="offset_running_time"
- c:identifier="gst_segment_offset_running_time"
- version="1.2.3">
- <doc xml:space="preserve">Adjust the values in @segment so that @offset is applied to all
- future running-time calculations.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the segment could be updated successfully. If %FALSE is
- returned, @offset is not in @segment.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment structure.</doc>
- <type name="Segment" c:type="GstSegment*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of the segment.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">the offset to apply in the segment</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="position_from_running_time"
- c:identifier="gst_segment_position_from_running_time"
- version="1.8">
- <doc xml:space="preserve">Convert @running_time into a position in the segment so that
- gst_segment_to_running_time() with that position returns @running_time.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the position in the segment for @running_time. This function returns
- -1 when @running_time is -1 or when it is not inside @segment.</doc>
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <instance-parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment structure.</doc>
- <type name="Segment" c:type="const GstSegment*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of the segment.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="running_time" transfer-ownership="none">
- <doc xml:space="preserve">the running_time in the segment</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="position_from_running_time_full"
- c:identifier="gst_segment_position_from_running_time_full"
- version="1.8">
- <doc xml:space="preserve">Translate @running_time to the segment position using the currently configured
- segment. Compared to gst_segment_position_from_running_time() this function can
- return negative segment position.
- This function is typically used by elements that need to synchronize buffers
- against the clock or each other.
- @running_time can be any value and the result of this function for values
- outside of the segment is extrapolated.
- When 1 is returned, @running_time resulted in a positive position returned
- in @position.
- When this function returns -1, the returned @position should be negated
- to get the real negative segment position.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a 1 or -1 on success, 0 on failure.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment structure.</doc>
- <type name="Segment" c:type="const GstSegment*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of the segment.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="running_time" transfer-ownership="none">
- <doc xml:space="preserve">the running-time</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the resulting position in the segment</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="position_from_stream_time"
- c:identifier="gst_segment_position_from_stream_time"
- version="1.8">
- <doc xml:space="preserve">Convert @stream_time into a position in the segment so that
- gst_segment_to_stream_time() with that position returns @stream_time.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the position in the segment for @stream_time. This function returns
- -1 when @stream_time is -1 or when it is not inside @segment.</doc>
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <instance-parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment structure.</doc>
- <type name="Segment" c:type="const GstSegment*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of the segment.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="stream_time" transfer-ownership="none">
- <doc xml:space="preserve">the stream_time in the segment</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="position_from_stream_time_full"
- c:identifier="gst_segment_position_from_stream_time_full"
- version="1.8">
- <doc xml:space="preserve">Translate @stream_time to the segment position using the currently configured
- segment. Compared to gst_segment_position_from_stream_time() this function can
- return negative segment position.
- This function is typically used by elements that need to synchronize buffers
- against the clock or each other.
- @stream_time can be any value and the result of this function for values outside
- of the segment is extrapolated.
- When 1 is returned, @stream_time resulted in a positive position returned
- in @position.
- When this function returns -1, the returned @position should be negated
- to get the real negative segment position.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a 1 or -1 on success, 0 on failure.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment structure.</doc>
- <type name="Segment" c:type="const GstSegment*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of the segment.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="stream_time" transfer-ownership="none">
- <doc xml:space="preserve">the stream-time</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the resulting position in the segment</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_running_time"
- c:identifier="gst_segment_set_running_time">
- <doc xml:space="preserve">Adjust the start/stop and base values of @segment such that the next valid
- buffer will be one with @running_time.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the segment could be updated successfully. If %FALSE is
- returned, @running_time is -1 or not in @segment.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment structure.</doc>
- <type name="Segment" c:type="GstSegment*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of the segment.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="running_time" transfer-ownership="none">
- <doc xml:space="preserve">the running_time in the segment</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_position" c:identifier="gst_segment_to_position">
- <doc xml:space="preserve">Convert @running_time into a position in the segment so that
- gst_segment_to_running_time() with that position returns @running_time.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the position in the segment for @running_time. This function returns
- -1 when @running_time is -1 or when it is not inside @segment.
- Deprecated. Use gst_segment_position_from_running_time() instead.</doc>
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <instance-parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment structure.</doc>
- <type name="Segment" c:type="const GstSegment*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of the segment.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="running_time" transfer-ownership="none">
- <doc xml:space="preserve">the running_time in the segment</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_running_time"
- c:identifier="gst_segment_to_running_time">
- <doc xml:space="preserve">Translate @position to the total running time using the currently configured
- segment. Position is a value between @segment start and stop time.
- This function is typically used by elements that need to synchronize to the
- global clock in a pipeline. The running time is a constantly increasing value
- starting from 0. When gst_segment_init() is called, this value will reset to
- 0.
- This function returns -1 if the position is outside of @segment start and stop.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the position as the total running time or -1 when an invalid position
- was given.</doc>
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <instance-parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment structure.</doc>
- <type name="Segment" c:type="const GstSegment*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of the segment.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position in the segment</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_running_time_full"
- c:identifier="gst_segment_to_running_time_full"
- version="1.6">
- <doc xml:space="preserve">Translate @position to the total running time using the currently configured
- segment. Compared to gst_segment_to_running_time() this function can return
- negative running-time.
- This function is typically used by elements that need to synchronize buffers
- against the clock or eachother.
- @position can be any value and the result of this function for values outside
- of the segment is extrapolated.
- When 1 is returned, @position resulted in a positive running-time returned
- in @running_time.
- When this function returns -1, the returned @running_time should be negated
- to get the real negative running time.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a 1 or -1 on success, 0 on failure.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment structure.</doc>
- <type name="Segment" c:type="const GstSegment*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of the segment.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position in the segment</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="running_time" transfer-ownership="none">
- <doc xml:space="preserve">result running-time</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_stream_time"
- c:identifier="gst_segment_to_stream_time"
- version="1.8">
- <doc xml:space="preserve">Translate @position to stream time using the currently configured
- segment. The @position value must be between @segment start and
- stop value.
- This function is typically used by elements that need to operate on
- the stream time of the buffers it receives, such as effect plugins.
- In those use cases, @position is typically the buffer timestamp or
- clock time that one wants to convert to the stream time.
- The stream time is always between 0 and the total duration of the
- media stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the position in stream_time or -1 when an invalid position
- was given.</doc>
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <instance-parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment structure.</doc>
- <type name="Segment" c:type="const GstSegment*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of the segment.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position in the segment</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_stream_time_full"
- c:identifier="gst_segment_to_stream_time_full"
- version="1.8">
- <doc xml:space="preserve">Translate @position to the total stream time using the currently configured
- segment. Compared to gst_segment_to_stream_time() this function can return
- negative stream-time.
- This function is typically used by elements that need to synchronize buffers
- against the clock or eachother.
- @position can be any value and the result of this function for values outside
- of the segment is extrapolated.
- When 1 is returned, @position resulted in a positive stream-time returned
- in @stream_time.
- When this function returns -1, the returned @stream_time should be negated
- to get the real negative stream time.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a 1 or -1 on success, 0 on failure.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment structure.</doc>
- <type name="Segment" c:type="const GstSegment*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format of the segment.</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position in the segment</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="stream_time" transfer-ownership="none">
- <doc xml:space="preserve">result stream-time</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <bitfield name="SegmentFlags"
- glib:type-name="GstSegmentFlags"
- glib:get-type="gst_segment_flags_get_type"
- c:type="GstSegmentFlags">
- <doc xml:space="preserve">Flags for the GstSegment structure. Currently mapped to the corresponding
- values of the seek flags.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_SEGMENT_FLAG_NONE"
- glib:nick="none">
- <doc xml:space="preserve">no flags</doc>
- </member>
- <member name="reset"
- value="1"
- c:identifier="GST_SEGMENT_FLAG_RESET"
- glib:nick="reset">
- <doc xml:space="preserve">reset the pipeline running_time to the segment
- running_time</doc>
- </member>
- <member name="trickmode"
- value="16"
- c:identifier="GST_SEGMENT_FLAG_TRICKMODE"
- glib:nick="trickmode">
- <doc xml:space="preserve">perform skip playback (Since 1.6)</doc>
- </member>
- <member name="skip"
- value="16"
- c:identifier="GST_SEGMENT_FLAG_SKIP"
- glib:nick="skip">
- <doc xml:space="preserve">Deprecated backward compatibility flag, replaced
- by @GST_SEGMENT_FLAG_TRICKMODE</doc>
- </member>
- <member name="segment"
- value="8"
- c:identifier="GST_SEGMENT_FLAG_SEGMENT"
- glib:nick="segment">
- <doc xml:space="preserve">send SEGMENT_DONE instead of EOS</doc>
- </member>
- <member name="trickmode_key_units"
- value="128"
- c:identifier="GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS"
- glib:nick="trickmode-key-units">
- <doc xml:space="preserve">Decode only keyframes, where
- possible (Since 1.6)</doc>
- </member>
- <member name="trickmode_no_audio"
- value="256"
- c:identifier="GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO"
- glib:nick="trickmode-no-audio">
- <doc xml:space="preserve">Do not decode any audio, where
- possible (Since 1.6)</doc>
- </member>
- </bitfield>
- <enumeration name="State"
- glib:type-name="GstState"
- glib:get-type="gst_state_get_type"
- c:type="GstState">
- <doc xml:space="preserve">The possible states an element can be in. States can be changed using
- gst_element_set_state() and checked using gst_element_get_state().</doc>
- <member name="void_pending"
- value="0"
- c:identifier="GST_STATE_VOID_PENDING"
- glib:nick="void-pending">
- <doc xml:space="preserve">no pending state.</doc>
- </member>
- <member name="null"
- value="1"
- c:identifier="GST_STATE_NULL"
- glib:nick="null">
- <doc xml:space="preserve">the NULL state or initial state of an element.</doc>
- </member>
- <member name="ready"
- value="2"
- c:identifier="GST_STATE_READY"
- glib:nick="ready">
- <doc xml:space="preserve">the element is ready to go to PAUSED.</doc>
- </member>
- <member name="paused"
- value="3"
- c:identifier="GST_STATE_PAUSED"
- glib:nick="paused">
- <doc xml:space="preserve">the element is PAUSED, it is ready to accept and
- process data. Sink elements however only accept one
- buffer and then block.</doc>
- </member>
- <member name="playing"
- value="4"
- c:identifier="GST_STATE_PLAYING"
- glib:nick="playing">
- <doc xml:space="preserve">the element is PLAYING, the #GstClock is running and
- the data is flowing.</doc>
- </member>
- </enumeration>
- <enumeration name="StateChange"
- glib:type-name="GstStateChange"
- glib:get-type="gst_state_change_get_type"
- c:type="GstStateChange">
- <doc xml:space="preserve">These are the different state changes an element goes through.
- %GST_STATE_NULL &rArr; %GST_STATE_PLAYING is called an upwards state change
- and %GST_STATE_PLAYING &rArr; %GST_STATE_NULL a downwards state change.</doc>
- <member name="null_to_ready"
- value="10"
- c:identifier="GST_STATE_CHANGE_NULL_TO_READY"
- glib:nick="null-to-ready">
- <doc xml:space="preserve">state change from NULL to READY.
- <itemizedlist>
- <listitem><para>
- The element must check if the resources it needs are available. Device
- sinks and -sources typically try to probe the device to constrain their
- caps.
- </para></listitem>
- <listitem><para>
- The element opens the device (in case feature need to be probed).
- </para></listitem>
- </itemizedlist></doc>
- </member>
- <member name="ready_to_paused"
- value="19"
- c:identifier="GST_STATE_CHANGE_READY_TO_PAUSED"
- glib:nick="ready-to-paused">
- <doc xml:space="preserve">state change from READY to PAUSED.
- <itemizedlist>
- <listitem><para>
- The element pads are activated in order to receive data in PAUSED.
- Streaming threads are started.
- </para></listitem>
- <listitem><para>
- Some elements might need to return %GST_STATE_CHANGE_ASYNC and complete
- the state change when they have enough information. It is a requirement
- for sinks to return %GST_STATE_CHANGE_ASYNC and complete the state change
- when they receive the first buffer or %GST_EVENT_EOS (preroll).
- Sinks also block the dataflow when in PAUSED.
- </para></listitem>
- <listitem><para>
- A pipeline resets the running_time to 0.
- </para></listitem>
- <listitem><para>
- Live sources return %GST_STATE_CHANGE_NO_PREROLL and don't generate data.
- </para></listitem>
- </itemizedlist></doc>
- </member>
- <member name="paused_to_playing"
- value="28"
- c:identifier="GST_STATE_CHANGE_PAUSED_TO_PLAYING"
- glib:nick="paused-to-playing">
- <doc xml:space="preserve">state change from PAUSED to PLAYING.
- <itemizedlist>
- <listitem><para>
- Most elements ignore this state change.
- </para></listitem>
- <listitem><para>
- The pipeline selects a #GstClock and distributes this to all the children
- before setting them to PLAYING. This means that it is only allowed to
- synchronize on the #GstClock in the PLAYING state.
- </para></listitem>
- <listitem><para>
- The pipeline uses the #GstClock and the running_time to calculate the
- base_time. The base_time is distributed to all children when performing
- the state change.
- </para></listitem>
- <listitem><para>
- Sink elements stop blocking on the preroll buffer or event and start
- rendering the data.
- </para></listitem>
- <listitem><para>
- Sinks can post %GST_MESSAGE_EOS in the PLAYING state. It is not allowed
- to post %GST_MESSAGE_EOS when not in the PLAYING state.
- </para></listitem>
- <listitem><para>
- While streaming in PAUSED or PLAYING elements can create and remove
- sometimes pads.
- </para></listitem>
- <listitem><para>
- Live sources start generating data and return %GST_STATE_CHANGE_SUCCESS.
- </para></listitem>
- </itemizedlist></doc>
- </member>
- <member name="playing_to_paused"
- value="35"
- c:identifier="GST_STATE_CHANGE_PLAYING_TO_PAUSED"
- glib:nick="playing-to-paused">
- <doc xml:space="preserve">state change from PLAYING to PAUSED.
- <itemizedlist>
- <listitem><para>
- Most elements ignore this state change.
- </para></listitem>
- <listitem><para>
- The pipeline calculates the running_time based on the last selected
- #GstClock and the base_time. It stores this information to continue
- playback when going back to the PLAYING state.
- </para></listitem>
- <listitem><para>
- Sinks unblock any #GstClock wait calls.
- </para></listitem>
- <listitem><para>
- When a sink does not have a pending buffer to play, it returns
- %GST_STATE_CHANGE_ASYNC from this state change and completes the state
- change when it receives a new buffer or an %GST_EVENT_EOS.
- </para></listitem>
- <listitem><para>
- Any queued %GST_MESSAGE_EOS items are removed since they will be reposted
- when going back to the PLAYING state. The EOS messages are queued in
- #GstBin containers.
- </para></listitem>
- <listitem><para>
- Live sources stop generating data and return %GST_STATE_CHANGE_NO_PREROLL.
- </para></listitem>
- </itemizedlist></doc>
- </member>
- <member name="paused_to_ready"
- value="26"
- c:identifier="GST_STATE_CHANGE_PAUSED_TO_READY"
- glib:nick="paused-to-ready">
- <doc xml:space="preserve">state change from PAUSED to READY.
- <itemizedlist>
- <listitem><para>
- Sinks unblock any waits in the preroll.
- </para></listitem>
- <listitem><para>
- Elements unblock any waits on devices
- </para></listitem>
- <listitem><para>
- Chain or get_range functions return %GST_FLOW_FLUSHING.
- </para></listitem>
- <listitem><para>
- The element pads are deactivated so that streaming becomes impossible and
- all streaming threads are stopped.
- </para></listitem>
- <listitem><para>
- The sink forgets all negotiated formats
- </para></listitem>
- <listitem><para>
- Elements remove all sometimes pads
- </para></listitem>
- </itemizedlist></doc>
- </member>
- <member name="ready_to_null"
- value="17"
- c:identifier="GST_STATE_CHANGE_READY_TO_NULL"
- glib:nick="ready-to-null">
- <doc xml:space="preserve">state change from READY to NULL.
- <itemizedlist>
- <listitem><para>
- Elements close devices
- </para></listitem>
- <listitem><para>
- Elements reset any internal state.
- </para></listitem>
- </itemizedlist></doc>
- </member>
- </enumeration>
- <enumeration name="StateChangeReturn"
- glib:type-name="GstStateChangeReturn"
- glib:get-type="gst_state_change_return_get_type"
- c:type="GstStateChangeReturn">
- <doc xml:space="preserve">The possible return values from a state change function such as
- gst_element_set_state(). Only @GST_STATE_CHANGE_FAILURE is a real failure.</doc>
- <member name="failure"
- value="0"
- c:identifier="GST_STATE_CHANGE_FAILURE"
- glib:nick="failure">
- <doc xml:space="preserve">the state change failed</doc>
- </member>
- <member name="success"
- value="1"
- c:identifier="GST_STATE_CHANGE_SUCCESS"
- glib:nick="success">
- <doc xml:space="preserve">the state change succeeded</doc>
- </member>
- <member name="async"
- value="2"
- c:identifier="GST_STATE_CHANGE_ASYNC"
- glib:nick="async">
- <doc xml:space="preserve">the state change will happen asynchronously</doc>
- </member>
- <member name="no_preroll"
- value="3"
- c:identifier="GST_STATE_CHANGE_NO_PREROLL"
- glib:nick="no-preroll">
- <doc xml:space="preserve">the state change succeeded but the element
- cannot produce data in %GST_STATE_PAUSED.
- This typically happens with live sources.</doc>
- </member>
- </enumeration>
- <record name="StaticCaps" c:type="GstStaticCaps">
- <doc xml:space="preserve">Datastructure to initialize #GstCaps from a string description usually
- used in conjunction with GST_STATIC_CAPS() and gst_static_caps_get() to
- instantiate a #GstCaps.</doc>
- <field name="caps" writable="1">
- <doc xml:space="preserve">the cached #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </field>
- <field name="string" writable="1">
- <doc xml:space="preserve">a string describing a caps</doc>
- <type name="utf8" c:type="const char*"/>
- </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="cleanup" c:identifier="gst_static_caps_cleanup">
- <doc xml:space="preserve">Clean up the cached caps contained in @static_caps.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="static_caps" transfer-ownership="none">
- <doc xml:space="preserve">the #GstStaticCaps to clean</doc>
- <type name="StaticCaps" c:type="GstStaticCaps*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get" c:identifier="gst_static_caps_get">
- <doc xml:space="preserve">Converts a #GstStaticCaps to a #GstCaps.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a pointer to the #GstCaps. Unref after usage.
- Since the core holds an additional ref to the returned caps,
- use gst_caps_make_writable() on the returned caps to modify it.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="static_caps" transfer-ownership="none">
- <doc xml:space="preserve">the #GstStaticCaps to convert</doc>
- <type name="StaticCaps" c:type="GstStaticCaps*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <record name="StaticPadTemplate" c:type="GstStaticPadTemplate">
- <doc xml:space="preserve">Structure describing the #GstStaticPadTemplate.</doc>
- <field name="name_template" writable="1">
- <doc xml:space="preserve">the name of the template</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="direction" writable="1">
- <doc xml:space="preserve">the direction of the template</doc>
- <type name="PadDirection" c:type="GstPadDirection"/>
- </field>
- <field name="presence" writable="1">
- <doc xml:space="preserve">the presence of the template</doc>
- <type name="PadPresence" c:type="GstPadPresence"/>
- </field>
- <field name="static_caps" writable="1">
- <doc xml:space="preserve">the caps of the template.</doc>
- <type name="StaticCaps" c:type="GstStaticCaps"/>
- </field>
- <method name="get" c:identifier="gst_static_pad_template_get">
- <doc xml:space="preserve">Converts a #GstStaticPadTemplate into a #GstPadTemplate.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstPadTemplate.</doc>
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="pad_template" transfer-ownership="none">
- <doc xml:space="preserve">the static pad template</doc>
- <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_caps" c:identifier="gst_static_pad_template_get_caps">
- <doc xml:space="preserve">Gets the capabilities of the static pad template.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the #GstCaps of the static pad template.
- Unref after usage. Since the core holds an additional
- ref to the returned caps, use gst_caps_make_writable()
- on the returned caps to modify it.</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="templ" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStaticPadTemplate to get capabilities of.</doc>
- <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <enumeration name="StreamError"
- glib:type-name="GstStreamError"
- glib:get-type="gst_stream_error_get_type"
- c:type="GstStreamError"
- glib:error-domain="gst-stream-error-quark">
- <doc xml:space="preserve">Stream errors are for anything related to the stream being processed:
- format errors, media type errors, ...
- They're typically used by decoders, demuxers, converters, ...</doc>
- <member name="failed"
- value="1"
- c:identifier="GST_STREAM_ERROR_FAILED"
- glib:nick="failed">
- <doc xml:space="preserve">a general error which doesn't fit in any other
- category. Make sure you add a custom message to the error call.</doc>
- </member>
- <member name="too_lazy"
- value="2"
- c:identifier="GST_STREAM_ERROR_TOO_LAZY"
- glib:nick="too-lazy">
- <doc xml:space="preserve">do not use this except as a placeholder for
- deciding where to go while developing code.</doc>
- </member>
- <member name="not_implemented"
- value="3"
- c:identifier="GST_STREAM_ERROR_NOT_IMPLEMENTED"
- glib:nick="not-implemented">
- <doc xml:space="preserve">use this when you do not want to implement
- this functionality yet.</doc>
- </member>
- <member name="type_not_found"
- value="4"
- c:identifier="GST_STREAM_ERROR_TYPE_NOT_FOUND"
- glib:nick="type-not-found">
- <doc xml:space="preserve">used when the element doesn't know the
- stream's type.</doc>
- </member>
- <member name="wrong_type"
- value="5"
- c:identifier="GST_STREAM_ERROR_WRONG_TYPE"
- glib:nick="wrong-type">
- <doc xml:space="preserve">used when the element doesn't handle this type
- of stream.</doc>
- </member>
- <member name="codec_not_found"
- value="6"
- c:identifier="GST_STREAM_ERROR_CODEC_NOT_FOUND"
- glib:nick="codec-not-found">
- <doc xml:space="preserve">used when there's no codec to handle the
- stream's type.</doc>
- </member>
- <member name="decode"
- value="7"
- c:identifier="GST_STREAM_ERROR_DECODE"
- glib:nick="decode">
- <doc xml:space="preserve">used when decoding fails.</doc>
- </member>
- <member name="encode"
- value="8"
- c:identifier="GST_STREAM_ERROR_ENCODE"
- glib:nick="encode">
- <doc xml:space="preserve">used when encoding fails.</doc>
- </member>
- <member name="demux"
- value="9"
- c:identifier="GST_STREAM_ERROR_DEMUX"
- glib:nick="demux">
- <doc xml:space="preserve">used when demuxing fails.</doc>
- </member>
- <member name="mux"
- value="10"
- c:identifier="GST_STREAM_ERROR_MUX"
- glib:nick="mux">
- <doc xml:space="preserve">used when muxing fails.</doc>
- </member>
- <member name="format"
- value="11"
- c:identifier="GST_STREAM_ERROR_FORMAT"
- glib:nick="format">
- <doc xml:space="preserve">used when the stream is of the wrong format
- (for example, wrong caps).</doc>
- </member>
- <member name="decrypt"
- value="12"
- c:identifier="GST_STREAM_ERROR_DECRYPT"
- glib:nick="decrypt">
- <doc xml:space="preserve">used when the stream is encrypted and can't be
- decrypted because this is not supported by the element.</doc>
- </member>
- <member name="decrypt_nokey"
- value="13"
- c:identifier="GST_STREAM_ERROR_DECRYPT_NOKEY"
- glib:nick="decrypt-nokey">
- <doc xml:space="preserve">used when the stream is encrypted and
- can't be decrypted because no suitable key is available.</doc>
- </member>
- <member name="num_errors"
- value="14"
- c:identifier="GST_STREAM_ERROR_NUM_ERRORS"
- glib:nick="num-errors">
- <doc xml:space="preserve">the number of stream error types.</doc>
- </member>
- <function name="quark" c:identifier="gst_stream_error_quark">
- <return-value transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- </enumeration>
- <bitfield name="StreamFlags"
- version="1.2"
- glib:type-name="GstStreamFlags"
- glib:get-type="gst_stream_flags_get_type"
- c:type="GstStreamFlags">
- <member name="none"
- value="0"
- c:identifier="GST_STREAM_FLAG_NONE"
- glib:nick="none">
- <doc xml:space="preserve">This stream has no special attributes</doc>
- </member>
- <member name="sparse"
- value="1"
- c:identifier="GST_STREAM_FLAG_SPARSE"
- glib:nick="sparse">
- <doc xml:space="preserve">This stream is a sparse stream (e.g. a subtitle
- stream), data may flow only in irregular intervals with large gaps in
- between.</doc>
- </member>
- <member name="select"
- value="2"
- c:identifier="GST_STREAM_FLAG_SELECT"
- glib:nick="select">
- <doc xml:space="preserve">This stream should be selected by default. This
- flag may be used by demuxers to signal that a stream should be selected
- by default in a playback scenario.</doc>
- </member>
- <member name="unselect"
- value="4"
- c:identifier="GST_STREAM_FLAG_UNSELECT"
- glib:nick="unselect">
- <doc xml:space="preserve">This stream should not be selected by default.
- This flag may be used by demuxers to signal that a stream should not
- be selected by default in a playback scenario, but only if explicitly
- selected by the user (e.g. an audio track for the hard of hearing or
- a director's commentary track).</doc>
- </member>
- </bitfield>
- <enumeration name="StreamStatusType"
- glib:type-name="GstStreamStatusType"
- glib:get-type="gst_stream_status_type_get_type"
- c:type="GstStreamStatusType">
- <doc xml:space="preserve">The type of a %GST_MESSAGE_STREAM_STATUS. The stream status messages inform the
- application of new streaming threads and their status.</doc>
- <member name="create"
- value="0"
- c:identifier="GST_STREAM_STATUS_TYPE_CREATE"
- glib:nick="create">
- <doc xml:space="preserve">A new thread need to be created.</doc>
- </member>
- <member name="enter"
- value="1"
- c:identifier="GST_STREAM_STATUS_TYPE_ENTER"
- glib:nick="enter">
- <doc xml:space="preserve">a thread entered its loop function</doc>
- </member>
- <member name="leave"
- value="2"
- c:identifier="GST_STREAM_STATUS_TYPE_LEAVE"
- glib:nick="leave">
- <doc xml:space="preserve">a thread left its loop function</doc>
- </member>
- <member name="destroy"
- value="3"
- c:identifier="GST_STREAM_STATUS_TYPE_DESTROY"
- glib:nick="destroy">
- <doc xml:space="preserve">a thread is destroyed</doc>
- </member>
- <member name="start"
- value="8"
- c:identifier="GST_STREAM_STATUS_TYPE_START"
- glib:nick="start">
- <doc xml:space="preserve">a thread is started</doc>
- </member>
- <member name="pause"
- value="9"
- c:identifier="GST_STREAM_STATUS_TYPE_PAUSE"
- glib:nick="pause">
- <doc xml:space="preserve">a thread is paused</doc>
- </member>
- <member name="stop"
- value="10"
- c:identifier="GST_STREAM_STATUS_TYPE_STOP"
- glib:nick="stop">
- <doc xml:space="preserve">a thread is stopped</doc>
- </member>
- </enumeration>
- <record name="Structure"
- c:type="GstStructure"
- glib:type-name="GstStructure"
- glib:get-type="gst_structure_get_type"
- c:symbol-prefix="structure">
- <doc xml:space="preserve">A #GstStructure is a collection of key/value pairs. The keys are expressed
- as GQuarks and the values can be of any GType.
- In addition to the key/value pairs, a #GstStructure also has a name. The name
- starts with a letter and can be filled by letters, numbers and any of "/-_.:".
- #GstStructure is used by various GStreamer subsystems to store information
- in a flexible and extensible way. A #GstStructure does not have a refcount
- because it usually is part of a higher level object such as #GstCaps,
- #GstMessage, #GstEvent, #GstQuery. It provides a means to enforce mutability
- using the refcount of the parent with the gst_structure_set_parent_refcount()
- method.
- A #GstStructure can be created with gst_structure_new_empty() or
- gst_structure_new(), which both take a name and an optional set of
- key/value pairs along with the types of the values.
- Field values can be changed with gst_structure_set_value() or
- gst_structure_set().
- Field values can be retrieved with gst_structure_get_value() or the more
- convenient gst_structure_get_*() functions.
- Fields can be removed with gst_structure_remove_field() or
- gst_structure_remove_fields().
- Strings in structures must be ASCII or UTF-8 encoded. Other encodings are
- not allowed. Strings may be %NULL however.
- Be aware that the current #GstCaps / #GstStructure serialization into string
- has limited support for nested #GstCaps / #GstStructure fields. It can only
- support one level of nesting. Using more levels will lead to unexpected
- behavior when using serialization features, such as gst_caps_to_string() or
- gst_value_serialize() and their counterparts.</doc>
- <field name="type" writable="1">
- <doc xml:space="preserve">the GType of a structure</doc>
- <type name="GType" c:type="GType"/>
- </field>
- <field name="name" readable="0" private="1">
- <type name="GLib.Quark" c:type="GQuark"/>
- </field>
- <constructor name="new"
- c:identifier="gst_structure_new"
- introspectable="0">
- <doc xml:space="preserve">Creates a new #GstStructure with the given name. Parses the
- list of variable arguments and sets fields to the values listed.
- Variable arguments should be passed as field name, field type,
- and value. Last variable argument should be %NULL.
- Free-function: gst_structure_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name of new structure</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="firstfield" transfer-ownership="none">
- <doc xml:space="preserve">name of first field to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">additional arguments</doc>
- <varargs/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_empty" c:identifier="gst_structure_new_empty">
- <doc xml:space="preserve">Creates a new, empty #GstStructure with the given @name.
- See gst_structure_set_name() for constraints on the @name parameter.
- Free-function: gst_structure_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new, empty #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name of new structure</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_string"
- c:identifier="gst_structure_new_from_string"
- version="1.2">
- <doc xml:space="preserve">Creates a #GstStructure from a string representation.
- If end is not %NULL, a pointer to the place inside the given string
- where parsing ended will be returned.
- The current implementation of serialization will lead to unexpected results
- when there are nested #GstCaps / #GstStructure deeper than one level.
- Free-function: gst_structure_free</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a new #GstStructure or %NULL
- when the string could not be parsed. Free with
- gst_structure_free() after use.</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <doc xml:space="preserve">a string representation of a #GstStructure</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_id"
- c:identifier="gst_structure_new_id"
- introspectable="0">
- <doc xml:space="preserve">Creates a new #GstStructure with the given name as a GQuark, followed by
- fieldname quark, GType, argument(s) "triplets" in the same format as
- gst_structure_id_set(). Basically a convenience wrapper around
- gst_structure_new_id_empty() and gst_structure_id_set().
- The last variable argument must be %NULL (or 0).
- Free-function: gst_structure_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <parameter name="name_quark" transfer-ownership="none">
- <doc xml:space="preserve">name of new structure</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="field_quark" transfer-ownership="none">
- <doc xml:space="preserve">the GQuark for the name of the field to set</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">variable arguments</doc>
- <varargs/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_id_empty"
- c:identifier="gst_structure_new_id_empty">
- <doc xml:space="preserve">Creates a new, empty #GstStructure with the given name as a GQuark.
- Free-function: gst_structure_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new, empty #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <parameter name="quark" transfer-ownership="none">
- <doc xml:space="preserve">name of new structure</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_valist"
- c:identifier="gst_structure_new_valist"
- introspectable="0">
- <doc xml:space="preserve">Creates a new #GstStructure with the given @name. Structure fields
- are set according to the varargs in a manner similar to
- gst_structure_new().
- See gst_structure_set_name() for constraints on the @name parameter.
- Free-function: gst_structure_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name of new structure</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="firstfield" transfer-ownership="none">
- <doc xml:space="preserve">name of first field to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="varargs" transfer-ownership="none">
- <doc xml:space="preserve">variable argument list</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="can_intersect" c:identifier="gst_structure_can_intersect">
- <doc xml:space="preserve">Tries intersecting @struct1 and @struct2 and reports whether the result
- would not be empty.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if intersection would not be empty</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="struct1" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="struct2" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- <method name="copy" c:identifier="gst_structure_copy">
- <doc xml:space="preserve">Duplicates a #GstStructure and all its fields and values.
- Free-function: gst_structure_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstStructure.</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure to duplicate</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="filter_and_map_in_place"
- c:identifier="gst_structure_filter_and_map_in_place"
- version="1.6">
- <doc xml:space="preserve">Calls the provided function once for each field in the #GstStructure. In
- contrast to gst_structure_foreach(), the function may modify the fields.
- In contrast to gst_structure_map_in_place(), the field is removed from
- the structure if %FALSE is returned from the function.
- The structure must be mutable.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="1">
- <doc xml:space="preserve">a function to call for each field</doc>
- <type name="StructureFilterMapFunc"
- c:type="GstStructureFilterMapFunc"/>
- </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>
- </parameters>
- </method>
- <method name="fixate" c:identifier="gst_structure_fixate">
- <doc xml:space="preserve">Fixate all values in @structure using gst_value_fixate().
- @structure will be modified in-place and should be writable.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="fixate_field" c:identifier="gst_structure_fixate_field">
- <doc xml:space="preserve">Fixates a #GstStructure by changing the given field with its fixated value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the structure field could be fixated</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="field_name" transfer-ownership="none">
- <doc xml:space="preserve">a field in @structure</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="fixate_field_boolean"
- c:identifier="gst_structure_fixate_field_boolean">
- <doc xml:space="preserve">Fixates a #GstStructure by changing the given @field_name field to the given
- @target boolean if that field is not fixed yet.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the structure could be fixated</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="field_name" transfer-ownership="none">
- <doc xml:space="preserve">a field in @structure</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="target" transfer-ownership="none">
- <doc xml:space="preserve">the target value of the fixation</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="fixate_field_nearest_double"
- c:identifier="gst_structure_fixate_field_nearest_double">
- <doc xml:space="preserve">Fixates a #GstStructure by changing the given field to the nearest
- double to @target that is a subset of the existing field.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the structure could be fixated</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="field_name" transfer-ownership="none">
- <doc xml:space="preserve">a field in @structure</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="target" transfer-ownership="none">
- <doc xml:space="preserve">the target value of the fixation</doc>
- <type name="gdouble" c:type="double"/>
- </parameter>
- </parameters>
- </method>
- <method name="fixate_field_nearest_fraction"
- c:identifier="gst_structure_fixate_field_nearest_fraction">
- <doc xml:space="preserve">Fixates a #GstStructure by changing the given field to the nearest
- fraction to @target_numerator/@target_denominator that is a subset
- of the existing field.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the structure could be fixated</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="field_name" transfer-ownership="none">
- <doc xml:space="preserve">a field in @structure</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="target_numerator" transfer-ownership="none">
- <doc xml:space="preserve">The numerator of the target value of the fixation</doc>
- <type name="gint" c:type="const gint"/>
- </parameter>
- <parameter name="target_denominator" transfer-ownership="none">
- <doc xml:space="preserve">The denominator of the target value of the fixation</doc>
- <type name="gint" c:type="const gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="fixate_field_nearest_int"
- c:identifier="gst_structure_fixate_field_nearest_int">
- <doc xml:space="preserve">Fixates a #GstStructure by changing the given field to the nearest
- integer to @target that is a subset of the existing field.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the structure could be fixated</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="field_name" transfer-ownership="none">
- <doc xml:space="preserve">a field in @structure</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="target" transfer-ownership="none">
- <doc xml:space="preserve">the target value of the fixation</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="fixate_field_string"
- c:identifier="gst_structure_fixate_field_string">
- <doc xml:space="preserve">Fixates a #GstStructure by changing the given @field_name field to the given
- @target string if that field is not fixed yet.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the structure could be fixated</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="field_name" transfer-ownership="none">
- <doc xml:space="preserve">a field in @structure</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="target" transfer-ownership="none">
- <doc xml:space="preserve">the target value of the fixation</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="foreach" c:identifier="gst_structure_foreach">
- <doc xml:space="preserve">Calls the provided function once for each field in the #GstStructure. The
- function must not modify the fields. Also see gst_structure_map_in_place()
- and gst_structure_filter_and_map_in_place().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the supplied function returns %TRUE For each of the fields,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="1">
- <doc xml:space="preserve">a function to call for each field</doc>
- <type name="StructureForeachFunc"
- c:type="GstStructureForeachFunc"/>
- </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>
- </parameters>
- </method>
- <method name="free" c:identifier="gst_structure_free">
- <doc xml:space="preserve">Frees a #GstStructure and all its fields and values. The structure must not
- have a parent when this function is called.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="full">
- <doc xml:space="preserve">the #GstStructure to free</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get" c:identifier="gst_structure_get" introspectable="0">
- <doc xml:space="preserve">Parses the variable arguments and reads fields from @structure accordingly.
- Variable arguments should be in the form field name, field type
- (as a GType), pointer(s) to a variable(s) to hold the return value(s).
- The last variable argument should be %NULL.
- For refcounted (mini)objects you will receive a new reference which
- you must release with a suitable _unref() when no longer needed. For
- strings and boxed types you will receive a copy which you will need to
- release with either g_free() or the suitable function for the boxed type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE if there was a problem reading any of the fields (e.g.
- because the field requested did not exist, or was of a type other
- than the type specified), otherwise %TRUE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="first_fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of the first field to read</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">variable arguments</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="get_boolean" c:identifier="gst_structure_get_boolean">
- <doc xml:space="preserve">Sets the boolean pointed to by @value corresponding to the value of the
- given field. Caller is responsible for making sure the field exists
- and has the correct type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
- with @fieldname or the existing field did not contain a boolean, this
- function returns %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of a field</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to a #gboolean to set</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_clock_time"
- c:identifier="gst_structure_get_clock_time">
- <doc xml:space="preserve">Sets the clock time pointed to by @value corresponding to the clock time
- of the given field. Caller is responsible for making sure the field exists
- and has the correct type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
- with @fieldname or the existing field did not contain a #GstClockTime, this
- function returns %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of a field</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to a #GstClockTime to set</doc>
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_date" c:identifier="gst_structure_get_date">
- <doc xml:space="preserve">Sets the date pointed to by @value corresponding to the date of the
- given field. Caller is responsible for making sure the field exists
- and has the correct type.
- On success @value will point to a newly-allocated copy of the date which
- should be freed with g_date_free() when no longer needed (note: this is
- inconsistent with e.g. gst_structure_get_string() which doesn't return a
- copy of the string).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
- with @fieldname or the existing field did not contain a data, this function
- returns %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of a field</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to a #GDate to set</doc>
- <type name="GLib.Date" c:type="GDate**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_date_time" c:identifier="gst_structure_get_date_time">
- <doc xml:space="preserve">Sets the datetime pointed to by @value corresponding to the datetime of the
- given field. Caller is responsible for making sure the field exists
- and has the correct type.
- On success @value will point to a reference of the datetime which
- should be unreffed with gst_date_time_unref() when no longer needed
- (note: this is inconsistent with e.g. gst_structure_get_string()
- which doesn't return a copy of the string).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
- with @fieldname or the existing field did not contain a data, this function
- returns %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of a field</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to a #GstDateTime to set</doc>
- <type name="DateTime" c:type="GstDateTime**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_double" c:identifier="gst_structure_get_double">
- <doc xml:space="preserve">Sets the double pointed to by @value corresponding to the value of the
- given field. Caller is responsible for making sure the field exists
- and has the correct type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
- with @fieldname or the existing field did not contain a double, this
- function returns %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of a field</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to a gdouble to set</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_enum" c:identifier="gst_structure_get_enum">
- <doc xml:space="preserve">Sets the int pointed to by @value corresponding to the value of the
- given field. Caller is responsible for making sure the field exists,
- has the correct type and that the enumtype is correct.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
- with @fieldname or the existing field did not contain an enum of the given
- type, this function returns %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of a field</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="enumtype" transfer-ownership="none">
- <doc xml:space="preserve">the enum type of a field</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to an int to set</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_field_type"
- c:identifier="gst_structure_get_field_type">
- <doc xml:space="preserve">Finds the field with the given name, and returns the type of the
- value it contains. If the field is not found, G_TYPE_INVALID is
- returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GValue of the field</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of the field</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_flagset"
- c:identifier="gst_structure_get_flagset"
- version="1.6">
- <doc xml:space="preserve">Read the GstFlagSet flags and mask out of the structure into the
- provided pointers.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the values could be set correctly. If there was no field
- with @fieldname or the existing field did not contain a GstFlagSet, this
- function returns %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of a field</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value_flags"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to a guint for the flags field</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="value_mask"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to a guint for the mask field</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_fraction" c:identifier="gst_structure_get_fraction">
- <doc xml:space="preserve">Sets the integers pointed to by @value_numerator and @value_denominator
- corresponding to the value of the given field. Caller is responsible
- for making sure the field exists and has the correct type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the values could be set correctly. If there was no field
- with @fieldname or the existing field did not contain a GstFraction, this
- function returns %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of a field</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value_numerator"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to an int to set</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="value_denominator"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to an int to set</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_int" c:identifier="gst_structure_get_int">
- <doc xml:space="preserve">Sets the int pointed to by @value corresponding to the value of the
- given field. Caller is responsible for making sure the field exists
- and has the correct type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
- with @fieldname or the existing field did not contain an int, this function
- returns %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of a field</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to an int to set</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_int64"
- c:identifier="gst_structure_get_int64"
- version="1.4">
- <doc xml:space="preserve">Sets the #gint64 pointed to by @value corresponding to the value of the
- given field. Caller is responsible for making sure the field exists
- and has the correct type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
- with @fieldname or the existing field did not contain a #gint64, this function
- returns %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of a field</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to a #gint64 to set</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_name" c:identifier="gst_structure_get_name">
- <doc xml:space="preserve">Get the name of @structure as a string.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name of the structure.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_name_id" c:identifier="gst_structure_get_name_id">
- <doc xml:space="preserve">Get the name of @structure as a GQuark.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the quark representing the name of the structure.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_string" c:identifier="gst_structure_get_string">
- <doc xml:space="preserve">Finds the field corresponding to @fieldname, and returns the string
- contained in the field's value. Caller is responsible for making
- sure the field exists and has the correct type.
- The string should not be modified, and remains valid until the next
- call to a gst_structure_*() function with the given structure.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a pointer to the string or %NULL when the
- field did not exist or did not contain a string.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of a field</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_uint" c:identifier="gst_structure_get_uint">
- <doc xml:space="preserve">Sets the uint pointed to by @value corresponding to the value of the
- given field. Caller is responsible for making sure the field exists
- and has the correct type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
- with @fieldname or the existing field did not contain a uint, this function
- returns %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of a field</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to a uint to set</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_uint64"
- c:identifier="gst_structure_get_uint64"
- version="1.4">
- <doc xml:space="preserve">Sets the #guint64 pointed to by @value corresponding to the value of the
- given field. Caller is responsible for making sure the field exists
- and has the correct type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
- with @fieldname or the existing field did not contain a #guint64, this function
- returns %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of a field</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to a #guint64 to set</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_valist"
- c:identifier="gst_structure_get_valist"
- introspectable="0">
- <doc xml:space="preserve">Parses the variable arguments and reads fields from @structure accordingly.
- valist-variant of gst_structure_get(). Look at the documentation of
- gst_structure_get() for more details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, or %FALSE if there was a problem reading any of the fields</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="first_fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of the first field to read</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="args" transfer-ownership="none">
- <doc xml:space="preserve">variable arguments</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_value" c:identifier="gst_structure_get_value">
- <doc xml:space="preserve">Get the value of the field with name @fieldname.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GValue corresponding to the field with the given name.</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of the field to get</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_field" c:identifier="gst_structure_has_field">
- <doc xml:space="preserve">Check if @structure contains a field named @fieldname.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the structure contains a field with the given name</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of a field</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_field_typed"
- c:identifier="gst_structure_has_field_typed">
- <doc xml:space="preserve">Check if @structure contains a field named @fieldname and with GType @type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the structure contains a field with the given name and type</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of a field</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the type of a value</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_name" c:identifier="gst_structure_has_name">
- <doc xml:space="preserve">Checks if the structure has the given name</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @name matches the name of the structure.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">structure name to check for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="id_get"
- c:identifier="gst_structure_id_get"
- introspectable="0">
- <doc xml:space="preserve">Parses the variable arguments and reads fields from @structure accordingly.
- Variable arguments should be in the form field id quark, field type
- (as a GType), pointer(s) to a variable(s) to hold the return value(s).
- The last variable argument should be %NULL (technically it should be a
- 0 quark, but we require %NULL so compilers that support it can check for
- the %NULL terminator and warn if it's not there).
- This function is just like gst_structure_get() only that it is slightly
- more efficient since it saves the string-to-quark lookup in the global
- quark hashtable.
- For refcounted (mini)objects you will receive a new reference which
- you must release with a suitable _unref() when no longer needed. For
- strings and boxed types you will receive a copy which you will need to
- release with either g_free() or the suitable function for the boxed type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE if there was a problem reading any of the fields (e.g.
- because the field requested did not exist, or was of a type other
- than the type specified), otherwise %TRUE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="first_field_id" transfer-ownership="none">
- <doc xml:space="preserve">the quark of the first field to read</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">variable arguments</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="id_get_valist"
- c:identifier="gst_structure_id_get_valist"
- introspectable="0">
- <doc xml:space="preserve">Parses the variable arguments and reads fields from @structure accordingly.
- valist-variant of gst_structure_id_get(). Look at the documentation of
- gst_structure_id_get() for more details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, or %FALSE if there was a problem reading any of the fields</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="first_field_id" transfer-ownership="none">
- <doc xml:space="preserve">the quark of the first field to read</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="args" transfer-ownership="none">
- <doc xml:space="preserve">variable arguments</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <method name="id_get_value" c:identifier="gst_structure_id_get_value">
- <doc xml:space="preserve">Get the value of the field with GQuark @field.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GValue corresponding to the field with the given name
- identifier.</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="field" transfer-ownership="none">
- <doc xml:space="preserve">the #GQuark of the field to get</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- </parameters>
- </method>
- <method name="id_has_field" c:identifier="gst_structure_id_has_field">
- <doc xml:space="preserve">Check if @structure contains a field named @field.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the structure contains a field with the given name</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="field" transfer-ownership="none">
- <doc xml:space="preserve">#GQuark of the field name</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- </parameters>
- </method>
- <method name="id_has_field_typed"
- c:identifier="gst_structure_id_has_field_typed">
- <doc xml:space="preserve">Check if @structure contains a field named @field and with GType @type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the structure contains a field with the given name and type</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="field" transfer-ownership="none">
- <doc xml:space="preserve">#GQuark of the field name</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the type of a value</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </method>
- <method name="id_set"
- c:identifier="gst_structure_id_set"
- introspectable="0">
- <doc xml:space="preserve">Identical to gst_structure_set, except that field names are
- passed using the GQuark for the field name. This allows more efficient
- setting of the structure if the caller already knows the associated
- quark values.
- The last variable argument must be %NULL.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the GQuark for the name of the field to set</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">variable arguments</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="id_set_valist"
- c:identifier="gst_structure_id_set_valist"
- introspectable="0">
- <doc xml:space="preserve">va_list form of gst_structure_id_set().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of the field to set</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="varargs" transfer-ownership="none">
- <doc xml:space="preserve">variable arguments</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <method name="id_set_value" c:identifier="gst_structure_id_set_value">
- <doc xml:space="preserve">Sets the field with the given GQuark @field to @value. If the field
- does not exist, it is created. If the field exists, the previous
- value is replaced and freed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="field" transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark representing a field</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the new value of the field</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="id_take_value" c:identifier="gst_structure_id_take_value">
- <doc xml:space="preserve">Sets the field with the given GQuark @field to @value. If the field
- does not exist, it is created. If the field exists, the previous
- value is replaced and freed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="field" transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark representing a field</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="value" transfer-ownership="full">
- <doc xml:space="preserve">the new value of the field</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="intersect" c:identifier="gst_structure_intersect">
- <doc xml:space="preserve">Intersects @struct1 and @struct2 and returns the intersection.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">Intersection of @struct1 and @struct2</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <instance-parameter name="struct1" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="struct2" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_equal" c:identifier="gst_structure_is_equal">
- <doc xml:space="preserve">Tests if the two #GstStructure are equal.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the two structures have the same name and field.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure1" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure.</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="structure2" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure.</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_subset" c:identifier="gst_structure_is_subset">
- <doc xml:space="preserve">Checks if @subset is a subset of @superset, i.e. has the same
- structure name and for all fields that are existing in @superset,
- @subset has a value that is a subset of the value in @superset.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @subset is a subset of @superset</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="subset" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="superset" transfer-ownership="none">
- <doc xml:space="preserve">a potentially greater #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- <method name="map_in_place" c:identifier="gst_structure_map_in_place">
- <doc xml:space="preserve">Calls the provided function once for each field in the #GstStructure. In
- contrast to gst_structure_foreach(), the function may modify but not delete the
- fields. The structure must be mutable.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the supplied function returns %TRUE For each of the fields,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="1">
- <doc xml:space="preserve">a function to call for each field</doc>
- <type name="StructureMapFunc" c:type="GstStructureMapFunc"/>
- </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>
- </parameters>
- </method>
- <method name="n_fields" c:identifier="gst_structure_n_fields">
- <doc xml:space="preserve">Get the number of fields in the structure.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of fields in the structure</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="nth_field_name"
- c:identifier="gst_structure_nth_field_name">
- <doc xml:space="preserve">Get the name of the given field number, counting from 0 onwards.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name of the given field number</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">the index to get the name of</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_all_fields"
- c:identifier="gst_structure_remove_all_fields">
- <doc xml:space="preserve">Removes all fields in a GstStructure.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="remove_field" c:identifier="gst_structure_remove_field">
- <doc xml:space="preserve">Removes the field with the given name. If the field with the given
- name does not exist, the structure is unchanged.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of the field to remove</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_fields"
- c:identifier="gst_structure_remove_fields"
- introspectable="0">
- <doc xml:space="preserve">Removes the fields with the given names. If a field does not exist, the
- argument is ignored.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of the field to remove</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">%NULL-terminated list of more fieldnames to remove</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_fields_valist"
- c:identifier="gst_structure_remove_fields_valist"
- introspectable="0">
- <doc xml:space="preserve">va_list form of gst_structure_remove_fields().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of the field to remove</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="varargs" transfer-ownership="none">
- <doc xml:space="preserve">%NULL-terminated list of more fieldnames to remove</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <method name="set" c:identifier="gst_structure_set" introspectable="0">
- <doc xml:space="preserve">Parses the variable arguments and sets fields accordingly. Fields that
- weren't already part of the structure are added as needed.
- Variable arguments should be in the form field name, field type
- (as a GType), value(s). The last variable argument should be %NULL.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of the field to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">variable arguments</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="set_name" c:identifier="gst_structure_set_name">
- <doc xml:space="preserve">Sets the name of the structure to the given @name. The string
- provided is copied before being used. It must not be empty, start with a
- letter and can be followed by letters, numbers and any of "/-_.:".</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the new name of the structure</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_parent_refcount"
- c:identifier="gst_structure_set_parent_refcount">
- <doc xml:space="preserve">Sets the parent_refcount field of #GstStructure. This field is used to
- determine whether a structure is mutable or not. This function should only be
- called by code implementing parent objects of #GstStructure, as described in
- the MT Refcounting section of the design documents.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the parent refcount could be set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="refcount" transfer-ownership="none">
- <doc xml:space="preserve">a pointer to the parent's refcount</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_valist"
- c:identifier="gst_structure_set_valist"
- introspectable="0">
- <doc xml:space="preserve">va_list form of gst_structure_set().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of the field to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="varargs" transfer-ownership="none">
- <doc xml:space="preserve">variable arguments</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_value" c:identifier="gst_structure_set_value">
- <doc xml:space="preserve">Sets the field with the given name @field to @value. If the field
- does not exist, it is created. If the field exists, the previous
- value is replaced and freed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of the field to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the new value of the field</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="take_value" c:identifier="gst_structure_take_value">
- <doc xml:space="preserve">Sets the field with the given name @field to @value. If the field
- does not exist, it is created. If the field exists, the previous
- value is replaced and freed. The function will take ownership of @value.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </instance-parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <doc xml:space="preserve">the name of the field to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="full">
- <doc xml:space="preserve">the new value of the field</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_string" c:identifier="gst_structure_to_string">
- <doc xml:space="preserve">Converts @structure to a human-readable string representation.
- For debugging purposes its easier to do something like this:
- |[<!-- language="C" -->
- GST_LOG ("structure is %" GST_PTR_FORMAT, structure);
- ]|
- This prints the structure in human readable form.
- The current implementation of serialization will lead to unexpected results
- when there are nested #GstCaps / #GstStructure deeper than one level.
- Free-function: g_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a pointer to string allocated by g_malloc().
- g_free() after usage.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </instance-parameter>
- </parameters>
- </method>
- <function name="from_string" c:identifier="gst_structure_from_string">
- <doc xml:space="preserve">Creates a #GstStructure from a string representation.
- If end is not %NULL, a pointer to the place inside the given string
- where parsing ended will be returned.
- Free-function: gst_structure_free</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a new #GstStructure or %NULL
- when the string could not be parsed. Free with
- gst_structure_free() after use.</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <doc xml:space="preserve">a string representation of a #GstStructure.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="end"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1"
- skip="1">
- <doc xml:space="preserve">pointer to store the end of the string in.</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <enumeration name="StructureChangeType"
- glib:type-name="GstStructureChangeType"
- glib:get-type="gst_structure_change_type_get_type"
- c:type="GstStructureChangeType">
- <doc xml:space="preserve">The type of a %GST_MESSAGE_STRUCTURE_CHANGE.</doc>
- <member name="link"
- value="0"
- c:identifier="GST_STRUCTURE_CHANGE_TYPE_PAD_LINK"
- glib:nick="link">
- <doc xml:space="preserve">Pad linking is starting or done.</doc>
- </member>
- <member name="unlink"
- value="1"
- c:identifier="GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK"
- glib:nick="unlink">
- <doc xml:space="preserve">Pad unlinking is starting or done.</doc>
- </member>
- </enumeration>
- <callback name="StructureFilterMapFunc" c:type="GstStructureFilterMapFunc">
- <doc xml:space="preserve">A function that will be called in gst_structure_filter_and_map_in_place().
- The function may modify @value, and the value will be removed from
- the structure if %FALSE is returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the field should be preserved, %FALSE if it
- should be removed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="field_id" transfer-ownership="none">
- <doc xml:space="preserve">the #GQuark of the field name</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the #GValue of the field</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="StructureForeachFunc" c:type="GstStructureForeachFunc">
- <doc xml:space="preserve">A function that will be called in gst_structure_foreach(). The function may
- not modify @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the foreach operation should continue, %FALSE if
- the foreach operation should stop with %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="field_id" transfer-ownership="none">
- <doc xml:space="preserve">the #GQuark of the field name</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the #GValue of the field</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="StructureMapFunc" c:type="GstStructureMapFunc">
- <doc xml:space="preserve">A function that will be called in gst_structure_map_in_place(). The function
- may modify @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the map operation should continue, %FALSE if
- the map operation should stop with %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="field_id" transfer-ownership="none">
- <doc xml:space="preserve">the #GQuark of the field name</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the #GValue of the field</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <class name="SystemClock"
- c:symbol-prefix="system_clock"
- c:type="GstSystemClock"
- parent="Clock"
- glib:type-name="GstSystemClock"
- glib:get-type="gst_system_clock_get_type"
- glib:type-struct="SystemClockClass">
- <doc xml:space="preserve">The GStreamer core provides a GstSystemClock based on the system time.
- Asynchronous callbacks are scheduled from an internal thread.
- Clock implementors are encouraged to subclass this systemclock as it
- implements the async notification.
- Subclasses can however override all of the important methods for sync and
- async notifications to implement their own callback methods or blocking
- wait operations.</doc>
- <function name="obtain" c:identifier="gst_system_clock_obtain">
- <doc xml:space="preserve">Get a handle to the default system clock. The refcount of the
- clock will be increased so you need to unref the clock after
- usage.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the default clock.
- MT safe.</doc>
- <type name="Clock" c:type="GstClock*"/>
- </return-value>
- </function>
- <function name="set_default"
- c:identifier="gst_system_clock_set_default"
- version="1.4">
- <doc xml:space="preserve">Sets the default system clock that can be obtained with
- gst_system_clock_obtain().
- This is mostly used for testing and debugging purposes when you
- want to have control over the time reported by the default system
- clock.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="new_clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClock</doc>
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </function>
- <property name="clock-type" writable="1" transfer-ownership="none">
- <type name="ClockType"/>
- </property>
- <field name="clock">
- <type name="Clock" c:type="GstClock"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="SystemClockPrivate" c:type="GstSystemClockPrivate*"/>
- </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="SystemClockClass"
- c:type="GstSystemClockClass"
- glib:is-gtype-struct-for="SystemClock">
- <field name="parent_class">
- <type name="ClockClass" c:type="GstClockClass"/>
- </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="SystemClockPrivate"
- c:type="GstSystemClockPrivate"
- disguised="1">
- </record>
- <constant name="TAG_ALBUM" value="album" c:type="GST_TAG_ALBUM">
- <doc xml:space="preserve">album containing this data (string)
- The album name as it should be displayed, e.g. 'The Jazz Guitar'</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_ALBUM_ARTIST"
- value="album-artist"
- c:type="GST_TAG_ALBUM_ARTIST">
- <doc xml:space="preserve">The artist of the entire album, as it should be displayed.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_ALBUM_ARTIST_SORTNAME"
- value="album-artist-sortname"
- c:type="GST_TAG_ALBUM_ARTIST_SORTNAME">
- <doc xml:space="preserve">The artist of the entire album, as it should be sorted.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_ALBUM_GAIN"
- value="replaygain-album-gain"
- c:type="GST_TAG_ALBUM_GAIN">
- <doc xml:space="preserve">album gain in db (double)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_ALBUM_PEAK"
- value="replaygain-album-peak"
- c:type="GST_TAG_ALBUM_PEAK">
- <doc xml:space="preserve">peak of the album (double)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_ALBUM_SORTNAME"
- value="album-sortname"
- c:type="GST_TAG_ALBUM_SORTNAME">
- <doc xml:space="preserve">album containing this data, as used for sorting (string)
- The album name as it should be sorted, e.g. 'Jazz Guitar, The'</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_ALBUM_VOLUME_COUNT"
- value="album-disc-count"
- c:type="GST_TAG_ALBUM_VOLUME_COUNT">
- <doc xml:space="preserve">count of discs inside collection this disc belongs to (unsigned integer)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_ALBUM_VOLUME_NUMBER"
- value="album-disc-number"
- c:type="GST_TAG_ALBUM_VOLUME_NUMBER">
- <doc xml:space="preserve">disc number inside a collection (unsigned integer)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_APPLICATION_DATA"
- value="application-data"
- c:type="GST_TAG_APPLICATION_DATA">
- <doc xml:space="preserve">Arbitrary application data (sample)
- Some formats allow applications to add their own arbitrary data
- into files. This data is application dependent.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_APPLICATION_NAME"
- value="application-name"
- c:type="GST_TAG_APPLICATION_NAME">
- <doc xml:space="preserve">Name of the application used to create the media (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_ARTIST" value="artist" c:type="GST_TAG_ARTIST">
- <doc xml:space="preserve">person(s) responsible for the recording (string)
- The artist name as it should be displayed, e.g. 'Jimi Hendrix' or
- 'The Guitar Heroes'</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_ARTIST_SORTNAME"
- value="artist-sortname"
- c:type="GST_TAG_ARTIST_SORTNAME">
- <doc xml:space="preserve">person(s) responsible for the recording, as used for sorting (string)
- The artist name as it should be sorted, e.g. 'Hendrix, Jimi' or
- 'Guitar Heroes, The'</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_ATTACHMENT"
- value="attachment"
- c:type="GST_TAG_ATTACHMENT">
- <doc xml:space="preserve">generic file attachment (sample) (sample taglist should specify the content
- type and if possible set "filename" to the file name of the
- attachment)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_AUDIO_CODEC"
- value="audio-codec"
- c:type="GST_TAG_AUDIO_CODEC">
- <doc xml:space="preserve">codec the audio data is stored in (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_BEATS_PER_MINUTE"
- value="beats-per-minute"
- c:type="GST_TAG_BEATS_PER_MINUTE">
- <doc xml:space="preserve">number of beats per minute in audio (double)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_BITRATE" value="bitrate" c:type="GST_TAG_BITRATE">
- <doc xml:space="preserve">exact or average bitrate in bits/s (unsigned integer)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_CODEC" value="codec" c:type="GST_TAG_CODEC">
- <doc xml:space="preserve">codec the data is stored in (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_COMMENT" value="comment" c:type="GST_TAG_COMMENT">
- <doc xml:space="preserve">free text commenting the data (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_COMPOSER" value="composer" c:type="GST_TAG_COMPOSER">
- <doc xml:space="preserve">person(s) who composed the recording (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_COMPOSER_SORTNAME"
- value="composer-sortname"
- c:type="GST_TAG_COMPOSER_SORTNAME">
- <doc xml:space="preserve">The composer's name, used for sorting (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_CONDUCTOR"
- value="conductor"
- c:type="GST_TAG_CONDUCTOR"
- version="1.8">
- <doc xml:space="preserve">conductor/performer refinement (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_CONTACT" value="contact" c:type="GST_TAG_CONTACT">
- <doc xml:space="preserve">contact information (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_CONTAINER_FORMAT"
- value="container-format"
- c:type="GST_TAG_CONTAINER_FORMAT">
- <doc xml:space="preserve">container format the data is stored in (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_COPYRIGHT"
- value="copyright"
- c:type="GST_TAG_COPYRIGHT">
- <doc xml:space="preserve">copyright notice of the data (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_COPYRIGHT_URI"
- value="copyright-uri"
- c:type="GST_TAG_COPYRIGHT_URI">
- <doc xml:space="preserve">URI to location where copyright details can be found (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_DATE" value="date" c:type="GST_TAG_DATE">
- <doc xml:space="preserve">date the data was created (#GDate structure)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_DATE_TIME" value="datetime" c:type="GST_TAG_DATE_TIME">
- <doc xml:space="preserve">date and time the data was created (#GstDateTime structure)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_DESCRIPTION"
- value="description"
- c:type="GST_TAG_DESCRIPTION">
- <doc xml:space="preserve">short text describing the content of the data (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_DEVICE_MANUFACTURER"
- value="device-manufacturer"
- c:type="GST_TAG_DEVICE_MANUFACTURER">
- <doc xml:space="preserve">Manufacturer of the device used to create the media (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_DEVICE_MODEL"
- value="device-model"
- c:type="GST_TAG_DEVICE_MODEL">
- <doc xml:space="preserve">Model of the device used to create the media (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_DURATION" value="duration" c:type="GST_TAG_DURATION">
- <doc xml:space="preserve">length in GStreamer time units (nanoseconds) (unsigned 64-bit integer)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_ENCODED_BY"
- value="encoded-by"
- c:type="GST_TAG_ENCODED_BY">
- <doc xml:space="preserve">name of the person or organisation that encoded the file. May contain a
- copyright message if the person or organisation also holds the copyright
- (string)
- Note: do not use this field to describe the encoding application. Use
- #GST_TAG_APPLICATION_NAME or #GST_TAG_COMMENT for that.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_ENCODER" value="encoder" c:type="GST_TAG_ENCODER">
- <doc xml:space="preserve">encoder used to encode this stream (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_ENCODER_VERSION"
- value="encoder-version"
- c:type="GST_TAG_ENCODER_VERSION">
- <doc xml:space="preserve">version of the encoder used to encode this stream (unsigned integer)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_EXTENDED_COMMENT"
- value="extended-comment"
- c:type="GST_TAG_EXTENDED_COMMENT">
- <doc xml:space="preserve">key/value text commenting the data (string)
- Must be in the form of 'key=comment' or
- 'key[lc]=comment' where 'lc' is an ISO-639
- language code.
- This tag is used for unknown Vorbis comment tags,
- unknown APE tags and certain ID3v2 comment fields.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_GENRE" value="genre" c:type="GST_TAG_GENRE">
- <doc xml:space="preserve">genre this data belongs to (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_CAPTURE_DIRECTION"
- value="geo-location-capture-direction"
- c:type="GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION">
- <doc xml:space="preserve">Indicates the direction the device is pointing to when capturing
- a media. It is represented as degrees in floating point representation,
- 0 means the geographic north, and increases clockwise (double from 0 to 360)
- See also #GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_CITY"
- value="geo-location-city"
- c:type="GST_TAG_GEO_LOCATION_CITY">
- <doc xml:space="preserve">The city (english name) where the media has been produced (string).</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_COUNTRY"
- value="geo-location-country"
- c:type="GST_TAG_GEO_LOCATION_COUNTRY">
- <doc xml:space="preserve">The country (english name) where the media has been produced (string).</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_ELEVATION"
- value="geo-location-elevation"
- c:type="GST_TAG_GEO_LOCATION_ELEVATION">
- <doc xml:space="preserve">geo elevation of where the media has been recorded or produced in meters
- according to WGS84 (zero is average sea level) (double).</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_HORIZONTAL_ERROR"
- value="geo-location-horizontal-error"
- c:type="GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR">
- <doc xml:space="preserve">Represents the expected error on the horizontal positioning in
- meters (double).</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_LATITUDE"
- value="geo-location-latitude"
- c:type="GST_TAG_GEO_LOCATION_LATITUDE">
- <doc xml:space="preserve">geo latitude location of where the media has been recorded or produced in
- degrees according to WGS84 (zero at the equator, negative values for southern
- latitudes) (double).</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_LONGITUDE"
- value="geo-location-longitude"
- c:type="GST_TAG_GEO_LOCATION_LONGITUDE">
- <doc xml:space="preserve">geo longitude location of where the media has been recorded or produced in
- degrees according to WGS84 (zero at the prime meridian in Greenwich/UK,
- negative values for western longitudes). (double).</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_MOVEMENT_DIRECTION"
- value="geo-location-movement-direction"
- c:type="GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION">
- <doc xml:space="preserve">Indicates the movement direction of the device performing the capture
- of a media. It is represented as degrees in floating point representation,
- 0 means the geographic north, and increases clockwise (double from 0 to 360)
- See also #GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_MOVEMENT_SPEED"
- value="geo-location-movement-speed"
- c:type="GST_TAG_GEO_LOCATION_MOVEMENT_SPEED">
- <doc xml:space="preserve">Speed of the capturing device when performing the capture.
- Represented in m/s. (double)
- See also #GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_NAME"
- value="geo-location-name"
- c:type="GST_TAG_GEO_LOCATION_NAME">
- <doc xml:space="preserve">human readable descriptive location of where the media has been recorded or
- produced. (string).</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_SUBLOCATION"
- value="geo-location-sublocation"
- c:type="GST_TAG_GEO_LOCATION_SUBLOCATION">
- <doc xml:space="preserve">A location 'smaller' than GST_TAG_GEO_LOCATION_CITY that specifies better
- where the media has been produced. (e.g. the neighborhood) (string).
- This tag has been added as this is how it is handled/named in XMP's
- Iptc4xmpcore schema.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_GROUPING" value="grouping" c:type="GST_TAG_GROUPING">
- <doc xml:space="preserve">Groups together media that are related and spans multiple tracks. An
- example are multiple pieces of a concerto. (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_HOMEPAGE" value="homepage" c:type="GST_TAG_HOMEPAGE">
- <doc xml:space="preserve">Homepage for this media (i.e. artist or movie homepage) (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_IMAGE" value="image" c:type="GST_TAG_IMAGE">
- <doc xml:space="preserve">image (sample) (sample taglist should specify the content type and preferably
- also set "image-type" field as #GstTagImageType)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_IMAGE_ORIENTATION"
- value="image-orientation"
- c:type="GST_TAG_IMAGE_ORIENTATION">
- <doc xml:space="preserve">Represents the 'Orientation' tag from EXIF. Defines how the image
- should be rotated and mirrored for display. (string)
- This tag has a predefined set of allowed values:
- "rotate-0"
- "rotate-90"
- "rotate-180"
- "rotate-270"
- "flip-rotate-0"
- "flip-rotate-90"
- "flip-rotate-180"
- "flip-rotate-270"
- The naming is adopted according to a possible transformation to perform
- on the image to fix its orientation, obviously equivalent operations will
- yield the same result.
- Rotations indicated by the values are in clockwise direction and
- 'flip' means an horizontal mirroring.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_INTERPRETED_BY"
- value="interpreted-by"
- c:type="GST_TAG_INTERPRETED_BY"
- version="1.2">
- <doc xml:space="preserve">Information about the people behind a remix and similar
- interpretations of another existing piece (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_ISRC" value="isrc" c:type="GST_TAG_ISRC">
- <doc xml:space="preserve">International Standard Recording Code - see http://www.ifpi.org/isrc/ (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_KEYWORDS" value="keywords" c:type="GST_TAG_KEYWORDS">
- <doc xml:space="preserve">comma separated keywords describing the content (string).</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_LANGUAGE_CODE"
- value="language-code"
- c:type="GST_TAG_LANGUAGE_CODE">
- <doc xml:space="preserve">ISO-639-2 or ISO-639-1 code for the language the content is in (string)
- There is utility API in libgsttag in gst-plugins-base to obtain a translated
- language name from the language code: gst_tag_get_language_name()</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_LANGUAGE_NAME"
- value="language-name"
- c:type="GST_TAG_LANGUAGE_NAME">
- <doc xml:space="preserve">Name of the language the content is in (string)
- Free-form name of the language the content is in, if a language code
- is not available. This tag should not be set in addition to a language
- code. It is undefined what language or locale the language name is in.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_LICENSE" value="license" c:type="GST_TAG_LICENSE">
- <doc xml:space="preserve">license of data (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_LICENSE_URI"
- value="license-uri"
- c:type="GST_TAG_LICENSE_URI">
- <doc xml:space="preserve">URI to location where license details can be found (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_LOCATION" value="location" c:type="GST_TAG_LOCATION">
- <doc xml:space="preserve">Origin of media as a URI (location, where the original of the file or stream
- is hosted) (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_LYRICS" value="lyrics" c:type="GST_TAG_LYRICS">
- <doc xml:space="preserve">The lyrics of the media (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_MAXIMUM_BITRATE"
- value="maximum-bitrate"
- c:type="GST_TAG_MAXIMUM_BITRATE">
- <doc xml:space="preserve">maximum bitrate in bits/s (unsigned integer)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_MIDI_BASE_NOTE"
- value="midi-base-note"
- c:type="GST_TAG_MIDI_BASE_NOTE"
- version="1.4">
- <doc xml:space="preserve"><ulink url="http://en.wikipedia.org/wiki/Note#Note_designation_in_accordance_with_octave_name">Midi note number</ulink>
- of the audio track. This is useful for sample instruments and in particular
- for multi-samples.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_MINIMUM_BITRATE"
- value="minimum-bitrate"
- c:type="GST_TAG_MINIMUM_BITRATE">
- <doc xml:space="preserve">minimum bitrate in bits/s (unsigned integer)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_NOMINAL_BITRATE"
- value="nominal-bitrate"
- c:type="GST_TAG_NOMINAL_BITRATE">
- <doc xml:space="preserve">nominal bitrate in bits/s (unsigned integer). The actual bitrate might be
- different from this target bitrate.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_ORGANIZATION"
- value="organization"
- c:type="GST_TAG_ORGANIZATION">
- <doc xml:space="preserve">organization (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_PERFORMER"
- value="performer"
- c:type="GST_TAG_PERFORMER">
- <doc xml:space="preserve">person(s) performing (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_PREVIEW_IMAGE"
- value="preview-image"
- c:type="GST_TAG_PREVIEW_IMAGE">
- <doc xml:space="preserve">image that is meant for preview purposes, e.g. small icon-sized version
- (sample) (sample taglist should specify the content type)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_PRIVATE_DATA"
- value="private-data"
- c:type="GST_TAG_PRIVATE_DATA"
- version="1.8">
- <doc xml:space="preserve">Any private data that may be contained in tags (sample).
- It is represented by #GstSample in which #GstBuffer contains the
- binary data and the sample's info #GstStructure may contain any
- extra information that identifies the origin or meaning of the data.
- Private frames in ID3v2 tags ('PRIV' frames) will be represented
- using this tag, in which case the GstStructure will be named
- "ID3PrivateFrame" and contain a field named "owner" of type string
- which contains the owner-identification string from the tag.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_PUBLISHER"
- value="publisher"
- c:type="GST_TAG_PUBLISHER"
- version="1.2">
- <doc xml:space="preserve">Name of the label or publisher (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_REFERENCE_LEVEL"
- value="replaygain-reference-level"
- c:type="GST_TAG_REFERENCE_LEVEL">
- <doc xml:space="preserve">reference level of track and album gain values (double)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_SERIAL" value="serial" c:type="GST_TAG_SERIAL">
- <doc xml:space="preserve">serial number of track (unsigned integer)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_SHOW_EPISODE_NUMBER"
- value="show-episode-number"
- c:type="GST_TAG_SHOW_EPISODE_NUMBER">
- <doc xml:space="preserve">Number of the episode within a season/show (unsigned integer)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_SHOW_NAME"
- value="show-name"
- c:type="GST_TAG_SHOW_NAME">
- <doc xml:space="preserve">Name of the show, used for displaying (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_SHOW_SEASON_NUMBER"
- value="show-season-number"
- c:type="GST_TAG_SHOW_SEASON_NUMBER">
- <doc xml:space="preserve">Number of the season of a show/series (unsigned integer)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_SHOW_SORTNAME"
- value="show-sortname"
- c:type="GST_TAG_SHOW_SORTNAME">
- <doc xml:space="preserve">Name of the show, used for sorting (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_SUBTITLE_CODEC"
- value="subtitle-codec"
- c:type="GST_TAG_SUBTITLE_CODEC">
- <doc xml:space="preserve">codec/format the subtitle data is stored in (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_TITLE" value="title" c:type="GST_TAG_TITLE">
- <doc xml:space="preserve">commonly used title (string)
- The title as it should be displayed, e.g. 'The Doll House'</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_TITLE_SORTNAME"
- value="title-sortname"
- c:type="GST_TAG_TITLE_SORTNAME">
- <doc xml:space="preserve">commonly used title, as used for sorting (string)
- The title as it should be sorted, e.g. 'Doll House, The'</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_TRACK_COUNT"
- value="track-count"
- c:type="GST_TAG_TRACK_COUNT">
- <doc xml:space="preserve">count of tracks inside collection this track belongs to (unsigned integer)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_TRACK_GAIN"
- value="replaygain-track-gain"
- c:type="GST_TAG_TRACK_GAIN">
- <doc xml:space="preserve">track gain in db (double)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_TRACK_NUMBER"
- value="track-number"
- c:type="GST_TAG_TRACK_NUMBER">
- <doc xml:space="preserve">track number inside a collection (unsigned integer)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_TRACK_PEAK"
- value="replaygain-track-peak"
- c:type="GST_TAG_TRACK_PEAK">
- <doc xml:space="preserve">peak of the track (double)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_USER_RATING"
- value="user-rating"
- c:type="GST_TAG_USER_RATING">
- <doc xml:space="preserve">Rating attributed by a person (likely the application user).
- The higher the value, the more the user likes this media
- (unsigned int from 0 to 100)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_VERSION" value="version" c:type="GST_TAG_VERSION">
- <doc xml:space="preserve">version of this data (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TAG_VIDEO_CODEC"
- value="video-codec"
- c:type="GST_TAG_VIDEO_CODEC">
- <doc xml:space="preserve">codec the video data is stored in (string)</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TIME_FORMAT"
- value="u:%02u:%02u.%09u"
- c:type="GST_TIME_FORMAT">
- <doc xml:space="preserve">A string that can be used in printf-like format strings to display a
- #GstClockTime value in h:m:s format. Use GST_TIME_ARGS() to construct
- the matching arguments.
- Example:
- |[<!-- language="C" -->
- printf("%" GST_TIME_FORMAT "\n", GST_TIME_ARGS(ts));
- ]|</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TOC_REPEAT_COUNT_INFINITE"
- value="-1"
- c:type="GST_TOC_REPEAT_COUNT_INFINITE"
- version="1.4">
- <doc xml:space="preserve">Special value for the repeat_count set in gst_toc_entry_set_loop() or
- returned by gst_toc_entry_set_loop() to indicate infinite looping.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <enumeration name="TagFlag"
- glib:type-name="GstTagFlag"
- glib:get-type="gst_tag_flag_get_type"
- c:type="GstTagFlag">
- <doc xml:space="preserve">Extra tag flags used when registering tags.</doc>
- <member name="undefined"
- value="0"
- c:identifier="GST_TAG_FLAG_UNDEFINED"
- glib:nick="undefined">
- <doc xml:space="preserve">undefined flag</doc>
- </member>
- <member name="meta"
- value="1"
- c:identifier="GST_TAG_FLAG_META"
- glib:nick="meta">
- <doc xml:space="preserve">tag is meta data</doc>
- </member>
- <member name="encoded"
- value="2"
- c:identifier="GST_TAG_FLAG_ENCODED"
- glib:nick="encoded">
- <doc xml:space="preserve">tag is encoded</doc>
- </member>
- <member name="decoded"
- value="3"
- c:identifier="GST_TAG_FLAG_DECODED"
- glib:nick="decoded">
- <doc xml:space="preserve">tag is decoded</doc>
- </member>
- <member name="count"
- value="4"
- c:identifier="GST_TAG_FLAG_COUNT"
- glib:nick="count">
- <doc xml:space="preserve">number of tag flags</doc>
- </member>
- </enumeration>
- <callback name="TagForeachFunc" c:type="GstTagForeachFunc">
- <doc xml:space="preserve">A function that will be called in gst_tag_list_foreach(). The function may
- not modify the tag list.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">the #GstTagList</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">a name of a tag in @list</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <record name="TagList"
- c:type="GstTagList"
- glib:type-name="GstTagList"
- glib:get-type="gst_tag_list_get_type"
- c:symbol-prefix="tag_list">
- <doc xml:space="preserve">List of tags and values used to describe media metadata.
- Strings in structures must be ASCII or UTF-8 encoded. Other encodings are
- not allowed. Strings must not be empty or %NULL.</doc>
- <field name="mini_object" writable="1">
- <doc xml:space="preserve">the parent type</doc>
- <type name="MiniObject" c:type="GstMiniObject"/>
- </field>
- <constructor name="new"
- c:identifier="gst_tag_list_new"
- introspectable="0">
- <doc xml:space="preserve">Creates a new taglist and appends the values for the given tags. It expects
- tag-value pairs like gst_tag_list_add(), and a %NULL terminator after the
- last pair. The type of the values is implicit and is documented in the API
- reference, but can also be queried at runtime with gst_tag_get_type(). It
- is an error to pass a value of a type not matching the tag type into this
- function. The tag list will make copies of any arguments passed
- (e.g. strings, buffers).
- After creation you might also want to set a #GstTagScope on the returned
- taglist to signal if the contained tags are global or stream tags. By
- default stream scope is assumes. See gst_tag_list_set_scope().
- Free-function: gst_tag_list_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstTagList. Free with gst_tag_list_unref()
- when no longer needed.</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">%NULL-terminated list of values to set</doc>
- <varargs/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_empty" c:identifier="gst_tag_list_new_empty">
- <doc xml:space="preserve">Creates a new empty GstTagList.
- Free-function: gst_tag_list_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">An empty tag list</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </return-value>
- </constructor>
- <constructor name="new_from_string"
- c:identifier="gst_tag_list_new_from_string">
- <doc xml:space="preserve">Deserializes a tag list.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a new #GstTagList, or %NULL in case of an
- error.</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </return-value>
- <parameters>
- <parameter name="str" transfer-ownership="none">
- <doc xml:space="preserve">a string created with gst_tag_list_to_string()</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_valist"
- c:identifier="gst_tag_list_new_valist"
- introspectable="0">
- <doc xml:space="preserve">Just like gst_tag_list_new(), only that it takes a va_list argument.
- Useful mostly for language bindings.
- Free-function: gst_tag_list_unref</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstTagList. Free with gst_tag_list_unref()
- when no longer needed.</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </return-value>
- <parameters>
- <parameter name="var_args" transfer-ownership="none">
- <doc xml:space="preserve">tag / value pairs to set</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="add" c:identifier="gst_tag_list_add" introspectable="0">
- <doc xml:space="preserve">Sets the values for the given tags using the specified mode.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">list to set tags in</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the mode to use</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">%NULL-terminated list of values to set</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="add_valist"
- c:identifier="gst_tag_list_add_valist"
- introspectable="0">
- <doc xml:space="preserve">Sets the values for the given tags using the specified mode.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">list to set tags in</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the mode to use</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="var_args" transfer-ownership="none">
- <doc xml:space="preserve">tag / value pairs to set</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_valist_values"
- c:identifier="gst_tag_list_add_valist_values"
- introspectable="0">
- <doc xml:space="preserve">Sets the GValues for the given tags using the specified mode.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">list to set tags in</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the mode to use</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="var_args" transfer-ownership="none">
- <doc xml:space="preserve">tag / GValue pairs to set</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_value" c:identifier="gst_tag_list_add_value">
- <doc xml:space="preserve">Sets the GValue for a given tag using the specified mode.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">list to set tags in</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the mode to use</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">GValue for this tag</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_values"
- c:identifier="gst_tag_list_add_values"
- introspectable="0">
- <doc xml:space="preserve">Sets the GValues for the given tags using the specified mode.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">list to set tags in</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the mode to use</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">GValues to set</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="foreach" c:identifier="gst_tag_list_foreach">
- <doc xml:space="preserve">Calls the given function for each tag inside the tag list. Note that if there
- is no tag, the function won't be called at all.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">list to iterate over</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="1">
- <doc xml:space="preserve">function to be called for each tag</doc>
- <type name="TagForeachFunc" c:type="GstTagForeachFunc"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user specified data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_boolean" c:identifier="gst_tag_list_get_boolean">
- <doc xml:space="preserve">Copies the contents for the given tag into the value, merging multiple values
- into one if multiple values are associated with the tag.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_boolean_index"
- c:identifier="gst_tag_list_get_boolean_index">
- <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
- list.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">number of entry to read out</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_date" c:identifier="gst_tag_list_get_date">
- <doc xml:space="preserve">Copies the first date for the given tag in the taglist into the variable
- pointed to by @value. Free the date with g_date_free() when it is no longer
- needed.
- Free-function: g_date_free</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a date was copied, %FALSE if the tag didn't exist in the
- given list or if it was %NULL.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">address of a GDate pointer
- variable to store the result into</doc>
- <type name="GLib.Date" c:type="GDate**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_date_index" c:identifier="gst_tag_list_get_date_index">
- <doc xml:space="preserve">Gets the date that is at the given index for the given tag in the given
- list and copies it into the variable pointed to by @value. Free the date
- with g_date_free() when it is no longer needed.
- Free-function: g_date_free</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list or if it was %NULL.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">number of entry to read out</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="GLib.Date" c:type="GDate**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_date_time" c:identifier="gst_tag_list_get_date_time">
- <doc xml:space="preserve">Copies the first datetime for the given tag in the taglist into the variable
- pointed to by @value. Unref the date with gst_date_time_unref() when
- it is no longer needed.
- Free-function: gst_date_time_unref</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a datetime was copied, %FALSE if the tag didn't exist in
- the given list or if it was %NULL.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">address of a #GstDateTime
- pointer variable to store the result into</doc>
- <type name="DateTime" c:type="GstDateTime**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_date_time_index"
- c:identifier="gst_tag_list_get_date_time_index">
- <doc xml:space="preserve">Gets the datetime that is at the given index for the given tag in the given
- list and copies it into the variable pointed to by @value. Unref the datetime
- with gst_date_time_unref() when it is no longer needed.
- Free-function: gst_date_time_unref</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list or if it was %NULL.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">number of entry to read out</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="DateTime" c:type="GstDateTime**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_double" c:identifier="gst_tag_list_get_double">
- <doc xml:space="preserve">Copies the contents for the given tag into the value, merging multiple values
- into one if multiple values are associated with the tag.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_double_index"
- c:identifier="gst_tag_list_get_double_index">
- <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
- list.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">number of entry to read out</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_float" c:identifier="gst_tag_list_get_float">
- <doc xml:space="preserve">Copies the contents for the given tag into the value, merging multiple values
- into one if multiple values are associated with the tag.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="gfloat" c:type="gfloat*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_float_index"
- c:identifier="gst_tag_list_get_float_index">
- <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
- list.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">number of entry to read out</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="gfloat" c:type="gfloat*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_int" c:identifier="gst_tag_list_get_int">
- <doc xml:space="preserve">Copies the contents for the given tag into the value, merging multiple values
- into one if multiple values are associated with the tag.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_int64" c:identifier="gst_tag_list_get_int64">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_int64_index"
- c:identifier="gst_tag_list_get_int64_index">
- <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
- list.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">number of entry to read out</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_int_index" c:identifier="gst_tag_list_get_int_index">
- <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
- list.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">number of entry to read out</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_pointer" c:identifier="gst_tag_list_get_pointer">
- <doc xml:space="preserve">Copies the contents for the given tag into the value, merging multiple values
- into one if multiple values are associated with the tag.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- nullable="1">
- <doc xml:space="preserve">location for the result</doc>
- <type name="gpointer" c:type="gpointer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_pointer_index"
- c:identifier="gst_tag_list_get_pointer_index">
- <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
- list.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">number of entry to read out</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- nullable="1">
- <doc xml:space="preserve">location for the result</doc>
- <type name="gpointer" c:type="gpointer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_sample" c:identifier="gst_tag_list_get_sample">
- <doc xml:space="preserve">Copies the first sample for the given tag in the taglist into the variable
- pointed to by @sample. Free the sample with gst_sample_unref() when it is
- no longer needed. You can retrieve the buffer from the sample using
- gst_sample_get_buffer() and the associated caps (if any) with
- gst_sample_get_caps().
- Free-function: gst_sample_unref</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a sample was returned, %FALSE if the tag didn't exist in
- the given list or if it was %NULL.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="sample"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">address of a GstSample
- pointer variable to store the result into</doc>
- <type name="Sample" c:type="GstSample**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_sample_index"
- c:identifier="gst_tag_list_get_sample_index">
- <doc xml:space="preserve">Gets the sample that is at the given index for the given tag in the given
- list and copies it into the variable pointed to by @sample. Free the sample
- with gst_sample_unref() when it is no longer needed. You can retrieve the
- buffer from the sample using gst_sample_get_buffer() and the associated
- caps (if any) with gst_sample_get_caps().
- Free-function: gst_sample_unref</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a sample was copied, %FALSE if the tag didn't exist in the
- given list or if it was %NULL.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">number of entry to read out</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="sample"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">address of a GstSample
- pointer variable to store the result into</doc>
- <type name="Sample" c:type="GstSample**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_scope" c:identifier="gst_tag_list_get_scope">
- <doc xml:space="preserve">Gets the scope of @list.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The scope of @list</doc>
- <type name="TagScope" c:type="GstTagScope"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_string" c:identifier="gst_tag_list_get_string">
- <doc xml:space="preserve">Copies the contents for the given tag into the value, possibly merging
- multiple values into one if multiple values are associated with the tag.
- Use gst_tag_list_get_string_index (list, tag, 0, value) if you want
- to retrieve the first string associated with this tag unmodified.
- The resulting string in @value will be in UTF-8 encoding and should be
- freed by the caller using g_free when no longer needed. The
- returned string is also guaranteed to be non-%NULL and non-empty.
- Free-function: g_free</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_string_index"
- c:identifier="gst_tag_list_get_string_index">
- <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
- list.
- The resulting string in @value will be in UTF-8 encoding and should be
- freed by the caller using g_free when no longer needed. The
- returned string is also guaranteed to be non-%NULL and non-empty.
- Free-function: g_free</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">number of entry to read out</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_tag_size" c:identifier="gst_tag_list_get_tag_size">
- <doc xml:space="preserve">Checks how many value are stored in this tag list for the given tag.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The number of tags stored</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a taglist</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">the tag to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_uint" c:identifier="gst_tag_list_get_uint">
- <doc xml:space="preserve">Copies the contents for the given tag into the value, merging multiple values
- into one if multiple values are associated with the tag.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_uint64" c:identifier="gst_tag_list_get_uint64">
- <doc xml:space="preserve">Copies the contents for the given tag into the value, merging multiple values
- into one if multiple values are associated with the tag.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_uint64_index"
- c:identifier="gst_tag_list_get_uint64_index">
- <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
- list.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">number of entry to read out</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_uint_index" c:identifier="gst_tag_list_get_uint_index">
- <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
- list.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">number of entry to read out</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location for the result</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_value_index"
- c:identifier="gst_tag_list_get_value_index">
- <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
- list.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">The GValue for the specified
- entry or %NULL if the tag wasn't available or the tag
- doesn't have as many entries</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">number of entry to read out</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="insert" c:identifier="gst_tag_list_insert">
- <doc xml:space="preserve">Inserts the tags of the @from list into the first list using the given mode.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="into" transfer-ownership="none">
- <doc xml:space="preserve">list to merge into</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </instance-parameter>
- <parameter name="from" transfer-ownership="none">
- <doc xml:space="preserve">list to merge from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the mode to use</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_empty" c:identifier="gst_tag_list_is_empty">
- <doc xml:space="preserve">Checks if the given taglist is empty.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the taglist is empty, otherwise %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTagList.</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_equal" c:identifier="gst_tag_list_is_equal">
- <doc xml:space="preserve">Checks if the two given taglists are equal.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the taglists are equal, otherwise %FALSE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list1" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList.</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="list2" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList.</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </parameter>
- </parameters>
- </method>
- <method name="merge" c:identifier="gst_tag_list_merge">
- <doc xml:space="preserve">Merges the two given lists into a new list. If one of the lists is %NULL, a
- copy of the other is returned. If both lists are %NULL, %NULL is returned.
- Free-function: gst_tag_list_unref</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the new list</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </return-value>
- <parameters>
- <instance-parameter name="list1"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">first list to merge</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="list2"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">second list to merge</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the mode to use</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- </parameters>
- </method>
- <method name="n_tags" c:identifier="gst_tag_list_n_tags">
- <doc xml:space="preserve">Get the number of tags in @list.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The number of tags in @list.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTagList.</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="nth_tag_name" c:identifier="gst_tag_list_nth_tag_name">
- <doc xml:space="preserve">Get the name of the tag in @list at @index.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The name of the tag at @index.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTagList.</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">the index</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="peek_string_index"
- c:identifier="gst_tag_list_peek_string_index">
- <doc xml:space="preserve">Peeks at the value that is at the given index for the given tag in the given
- list.
- The resulting string in @value will be in UTF-8 encoding and doesn't need
- to be freed by the caller. The returned string is also guaranteed to
- be non-%NULL and non-empty.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was set, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">number of entry to read out</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none">
- <doc xml:space="preserve">location for the result</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_tag" c:identifier="gst_tag_list_remove_tag">
- <doc xml:space="preserve">Removes the given tag from the taglist.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">list to remove tag from</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </instance-parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to remove</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_scope" c:identifier="gst_tag_list_set_scope">
- <doc xml:space="preserve">Sets the scope of @list to @scope. By default the scope
- of a taglist is stream scope.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </instance-parameter>
- <parameter name="scope" transfer-ownership="none">
- <doc xml:space="preserve">new scope for @list</doc>
- <type name="TagScope" c:type="GstTagScope"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_string" c:identifier="gst_tag_list_to_string">
- <doc xml:space="preserve">Serializes a tag list to a string.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a newly-allocated string, or %NULL in case of
- an error. The string must be freed with g_free() when no longer
- needed.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagList</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </instance-parameter>
- </parameters>
- </method>
- <function name="copy_value" c:identifier="gst_tag_list_copy_value">
- <doc xml:space="preserve">Copies the contents for the given tag into the value,
- merging multiple values into one if multiple values are associated
- with the tag.
- You must g_value_unset() the value after use.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">uninitialized #GValue to copy into</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">list to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <callback name="TagMergeFunc" c:type="GstTagMergeFunc">
- <doc xml:space="preserve">A function for merging multiple values of a tag used when registering
- tags.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">the destination #GValue</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">the source #GValue</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="TagMergeMode"
- glib:type-name="GstTagMergeMode"
- glib:get-type="gst_tag_merge_mode_get_type"
- c:type="GstTagMergeMode">
- <doc xml:space="preserve">The different tag merging modes are basically replace, overwrite and append,
- but they can be seen from two directions. Given two taglists: (A) the tags
- already in the element and (B) the ones that are supplied to the element (
- e.g. via gst_tag_setter_merge_tags() / gst_tag_setter_add_tags() or a
- %GST_EVENT_TAG), how are these tags merged?
- In the table below this is shown for the cases that a tag exists in the list
- (A) or does not exists (!A) and combinations thereof.
- <table frame="all" colsep="1" rowsep="1">
- <title>merge mode</title>
- <tgroup cols='5' align='left'>
- <thead>
- <row>
- <entry>merge mode</entry>
- <entry>A + B</entry>
- <entry>A + !B</entry>
- <entry>!A + B</entry>
- <entry>!A + !B</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>REPLACE_ALL</entry>
- <entry>B</entry>
- <entry>-</entry>
- <entry>B</entry>
- <entry>-</entry>
- </row>
- <row>
- <entry>REPLACE</entry>
- <entry>B</entry>
- <entry>A</entry>
- <entry>B</entry>
- <entry>-</entry>
- </row>
- <row>
- <entry>APPEND</entry>
- <entry>A, B</entry>
- <entry>A</entry>
- <entry>B</entry>
- <entry>-</entry>
- </row>
- <row>
- <entry>PREPEND</entry>
- <entry>B, A</entry>
- <entry>A</entry>
- <entry>B</entry>
- <entry>-</entry>
- </row>
- <row>
- <entry>KEEP</entry>
- <entry>A</entry>
- <entry>A</entry>
- <entry>B</entry>
- <entry>-</entry>
- </row>
- <row>
- <entry>KEEP_ALL</entry>
- <entry>A</entry>
- <entry>A</entry>
- <entry>-</entry>
- <entry>-</entry>
- </row>
- </tbody>
- </tgroup>
- </table></doc>
- <member name="undefined"
- value="0"
- c:identifier="GST_TAG_MERGE_UNDEFINED"
- glib:nick="undefined">
- <doc xml:space="preserve">undefined merge mode</doc>
- </member>
- <member name="replace_all"
- value="1"
- c:identifier="GST_TAG_MERGE_REPLACE_ALL"
- glib:nick="replace-all">
- <doc xml:space="preserve">replace all tags (clear list and append)</doc>
- </member>
- <member name="replace"
- value="2"
- c:identifier="GST_TAG_MERGE_REPLACE"
- glib:nick="replace">
- <doc xml:space="preserve">replace tags</doc>
- </member>
- <member name="append"
- value="3"
- c:identifier="GST_TAG_MERGE_APPEND"
- glib:nick="append">
- <doc xml:space="preserve">append tags</doc>
- </member>
- <member name="prepend"
- value="4"
- c:identifier="GST_TAG_MERGE_PREPEND"
- glib:nick="prepend">
- <doc xml:space="preserve">prepend tags</doc>
- </member>
- <member name="keep"
- value="5"
- c:identifier="GST_TAG_MERGE_KEEP"
- glib:nick="keep">
- <doc xml:space="preserve">keep existing tags</doc>
- </member>
- <member name="keep_all"
- value="6"
- c:identifier="GST_TAG_MERGE_KEEP_ALL"
- glib:nick="keep-all">
- <doc xml:space="preserve">keep all existing tags</doc>
- </member>
- <member name="count"
- value="7"
- c:identifier="GST_TAG_MERGE_COUNT"
- glib:nick="count">
- <doc xml:space="preserve">the number of merge modes</doc>
- </member>
- </enumeration>
- <enumeration name="TagScope"
- glib:type-name="GstTagScope"
- glib:get-type="gst_tag_scope_get_type"
- c:type="GstTagScope">
- <doc xml:space="preserve">GstTagScope specifies if a taglist applies to the complete
- medium or only to one single stream.</doc>
- <member name="stream"
- value="0"
- c:identifier="GST_TAG_SCOPE_STREAM"
- glib:nick="stream">
- <doc xml:space="preserve">tags specific to this single stream</doc>
- </member>
- <member name="global"
- value="1"
- c:identifier="GST_TAG_SCOPE_GLOBAL"
- glib:nick="global">
- <doc xml:space="preserve">global tags for the complete medium</doc>
- </member>
- </enumeration>
- <interface name="TagSetter"
- c:symbol-prefix="tag_setter"
- c:type="GstTagSetter"
- glib:type-name="GstTagSetter"
- glib:get-type="gst_tag_setter_get_type"
- glib:type-struct="TagSetterInterface">
- <doc xml:space="preserve">Element interface that allows setting of media metadata.
- Elements that support changing a stream's metadata will implement this
- interface. Examples of such elements are 'vorbisenc', 'theoraenc' and
- 'id3v2mux'.
- If you just want to retrieve metadata in your application then all you
- need to do is watch for tag messages on your pipeline's bus. This
- interface is only for setting metadata, not for extracting it. To set tags
- from the application, find tagsetter elements and set tags using e.g.
- gst_tag_setter_merge_tags() or gst_tag_setter_add_tags(). Also consider
- setting the #GstTagMergeMode that is used for tag events that arrive at the
- tagsetter element (default mode is to keep existing tags).
- The application should do that before the element goes to %GST_STATE_PAUSED.
- Elements implementing the #GstTagSetter interface often have to merge
- any tags received from upstream and the tags set by the application via
- the interface. This can be done like this:
- |[<!-- language="C" -->
- GstTagMergeMode merge_mode;
- const GstTagList *application_tags;
- const GstTagList *event_tags;
- GstTagSetter *tagsetter;
- GstTagList *result;
-
- tagsetter = GST_TAG_SETTER (element);
-
- merge_mode = gst_tag_setter_get_tag_merge_mode (tagsetter);
- application_tags = gst_tag_setter_get_tag_list (tagsetter);
- event_tags = (const GstTagList *) element->event_tags;
-
- GST_LOG_OBJECT (tagsetter, "merging tags, merge mode = %d", merge_mode);
- GST_LOG_OBJECT (tagsetter, "event tags: %" GST_PTR_FORMAT, event_tags);
- GST_LOG_OBJECT (tagsetter, "set tags: %" GST_PTR_FORMAT, application_tags);
-
- result = gst_tag_list_merge (application_tags, event_tags, merge_mode);
-
- GST_LOG_OBJECT (tagsetter, "final tags: %" GST_PTR_FORMAT, result);
- ]|</doc>
- <prerequisite name="Element"/>
- <method name="add_tag_valist"
- c:identifier="gst_tag_setter_add_tag_valist"
- introspectable="0">
- <doc xml:space="preserve">Adds the given tag / value pairs on the setter using the given merge mode.
- The list must be terminated with %NULL.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="setter" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagSetter</doc>
- <type name="TagSetter" c:type="GstTagSetter*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the mode to use</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="var_args" transfer-ownership="none">
- <doc xml:space="preserve">tag / value pairs to set</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_tag_valist_values"
- c:identifier="gst_tag_setter_add_tag_valist_values"
- introspectable="0">
- <doc xml:space="preserve">Adds the given tag / GValue pairs on the setter using the given merge mode.
- The list must be terminated with %NULL.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="setter" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagSetter</doc>
- <type name="TagSetter" c:type="GstTagSetter*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the mode to use</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="var_args" transfer-ownership="none">
- <doc xml:space="preserve">tag / GValue pairs to set</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_tag_value" c:identifier="gst_tag_setter_add_tag_value">
- <doc xml:space="preserve">Adds the given tag / GValue pair on the setter using the given merge mode.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="setter" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagSetter</doc>
- <type name="TagSetter" c:type="GstTagSetter*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the mode to use</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">GValue to set for the tag</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_tag_values"
- c:identifier="gst_tag_setter_add_tag_values"
- introspectable="0">
- <doc xml:space="preserve">Adds the given tag / GValue pairs on the setter using the given merge mode.
- The list must be terminated with %NULL.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="setter" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagSetter</doc>
- <type name="TagSetter" c:type="GstTagSetter*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the mode to use</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">more tag / GValue pairs to set</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="add_tags"
- c:identifier="gst_tag_setter_add_tags"
- introspectable="0">
- <doc xml:space="preserve">Adds the given tag / value pairs on the setter using the given merge mode.
- The list must be terminated with %NULL.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="setter" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagSetter</doc>
- <type name="TagSetter" c:type="GstTagSetter*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the mode to use</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">more tag / value pairs to set</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="get_tag_list" c:identifier="gst_tag_setter_get_tag_list">
- <doc xml:space="preserve">Returns the current list of tags the setter uses. The list should not be
- modified or freed.
- This function is not thread-safe.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a current snapshot of the
- taglist used in the setter or %NULL if none is used.</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </return-value>
- <parameters>
- <instance-parameter name="setter" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagSetter</doc>
- <type name="TagSetter" c:type="GstTagSetter*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_tag_merge_mode"
- c:identifier="gst_tag_setter_get_tag_merge_mode">
- <doc xml:space="preserve">Queries the mode by which tags inside the setter are overwritten by tags
- from events</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the merge mode used inside the element.</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </return-value>
- <parameters>
- <instance-parameter name="setter" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagSetter</doc>
- <type name="TagSetter" c:type="GstTagSetter*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="merge_tags" c:identifier="gst_tag_setter_merge_tags">
- <doc xml:space="preserve">Merges the given list into the setter's list using the given mode.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="setter" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagSetter</doc>
- <type name="TagSetter" c:type="GstTagSetter*"/>
- </instance-parameter>
- <parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a tag list to merge from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the mode to merge with</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- </parameters>
- </method>
- <method name="reset_tags" c:identifier="gst_tag_setter_reset_tags">
- <doc xml:space="preserve">Reset the internal taglist. Elements should call this from within the
- state-change handler.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="setter" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagSetter</doc>
- <type name="TagSetter" c:type="GstTagSetter*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_tag_merge_mode"
- c:identifier="gst_tag_setter_set_tag_merge_mode">
- <doc xml:space="preserve">Sets the given merge mode that is used for adding tags from events to tags
- specified by this interface. The default is #GST_TAG_MERGE_KEEP, which keeps
- the tags set with this interface and discards tags from events.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="setter" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTagSetter</doc>
- <type name="TagSetter" c:type="GstTagSetter*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">The mode with which tags are added</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="TagSetterInterface"
- c:type="GstTagSetterInterface"
- glib:is-gtype-struct-for="TagSetter">
- <doc xml:space="preserve">#GstTagSetterInterface interface.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">parent interface type.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- </record>
- <class name="Task"
- c:symbol-prefix="task"
- c:type="GstTask"
- parent="Object"
- glib:type-name="GstTask"
- glib:get-type="gst_task_get_type"
- glib:type-struct="TaskClass">
- <doc xml:space="preserve">#GstTask is used by #GstElement and #GstPad to provide the data passing
- threads in a #GstPipeline.
- A #GstPad will typically start a #GstTask to push or pull data to/from the
- peer pads. Most source elements start a #GstTask to push data. In some cases
- a demuxer element can start a #GstTask to pull data from a peer element. This
- is typically done when the demuxer can perform random access on the upstream
- peer element for improved performance.
- Although convenience functions exist on #GstPad to start/pause/stop tasks, it
- might sometimes be needed to create a #GstTask manually if it is not related to
- a #GstPad.
- Before the #GstTask can be run, it needs a #GRecMutex that can be set with
- gst_task_set_lock().
- The task can be started, paused and stopped with gst_task_start(), gst_task_pause()
- and gst_task_stop() respectively or with the gst_task_set_state() function.
- A #GstTask will repeatedly call the #GstTaskFunction with the user data
- that was provided when creating the task with gst_task_new(). While calling
- the function it will acquire the provided lock. The provided lock is released
- when the task pauses or stops.
- Stopping a task with gst_task_stop() will not immediately make sure the task is
- not running anymore. Use gst_task_join() to make sure the task is completely
- stopped and the thread is stopped.
- After creating a #GstTask, use gst_object_unref() to free its resources. This can
- only be done when the task is not running anymore.
- Task functions can send a #GstMessage to send out-of-band data to the
- application. The application can receive messages from the #GstBus in its
- mainloop.
- For debugging purposes, the task will configure its object name as the thread
- name on Linux. Please note that the object name should be configured before the
- task is started; changing the object name after the task has been started, has
- no effect on the thread name.</doc>
- <constructor name="new" c:identifier="gst_task_new">
- <doc xml:space="preserve">Create a new Task that will repeatedly call the provided @func
- with @user_data as a parameter. Typically the task will run in
- a new thread.
- The function cannot be changed after the task has been created. You
- must create a new #GstTask to change the function.
- This function will not yet create and start a thread. Use gst_task_start() or
- gst_task_pause() to create and start the GThread.
- Before the task can be used, a #GRecMutex must be configured using the
- gst_task_set_lock() function. This lock will always be acquired while
- @func is called.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A new #GstTask.
- MT safe.</doc>
- <type name="Task" c:type="GstTask*"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">The #GstTaskFunction to use</doc>
- <type name="TaskFunction" c:type="GstTaskFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">User data to pass to @func</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">the function to call when @user_data is no longer needed.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="cleanup_all" c:identifier="gst_task_cleanup_all">
- <doc xml:space="preserve">Wait for all tasks to be stopped. This is mainly used internally
- to ensure proper cleanup of internal data structures in test suites.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </function>
- <method name="get_pool" c:identifier="gst_task_get_pool">
- <doc xml:space="preserve">Get the #GstTaskPool that this task will use for its streaming
- threads.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the #GstTaskPool used by @task. gst_object_unref()
- after usage.</doc>
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTask</doc>
- <type name="Task" c:type="GstTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_state" c:identifier="gst_task_get_state">
- <doc xml:space="preserve">Get the current state of the task.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The #GstTaskState of the task
- MT safe.</doc>
- <type name="TaskState" c:type="GstTaskState"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">The #GstTask to query</doc>
- <type name="Task" c:type="GstTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="join" c:identifier="gst_task_join">
- <doc xml:space="preserve">Joins @task. After this call, it is safe to unref the task
- and clean up the lock set with gst_task_set_lock().
- The task will automatically be stopped with this call.
- This function cannot be called from within a task function as this
- would cause a deadlock. The function will detect this and print a
- g_warning.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the task could be joined.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">The #GstTask to join</doc>
- <type name="Task" c:type="GstTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="pause" c:identifier="gst_task_pause">
- <doc xml:space="preserve">Pauses @task. This method can also be called on a task in the
- stopped state, in which case a thread will be started and will remain
- in the paused state. This function does not wait for the task to complete
- the paused state.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the task could be paused.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">The #GstTask to pause</doc>
- <type name="Task" c:type="GstTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_enter_callback"
- c:identifier="gst_task_set_enter_callback">
- <doc xml:space="preserve">Call @enter_func when the task function of @task is entered. @user_data will
- be passed to @enter_func and @notify will be called when @user_data is no
- longer referenced.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">The #GstTask to use</doc>
- <type name="Task" c:type="GstTask*"/>
- </instance-parameter>
- <parameter name="enter_func"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">a #GstTaskThreadFunc</doc>
- <type name="TaskThreadFunc" c:type="GstTaskThreadFunc"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @enter_func</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">called when @user_data is no longer referenced</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_leave_callback"
- c:identifier="gst_task_set_leave_callback">
- <doc xml:space="preserve">Call @leave_func when the task function of @task is left. @user_data will
- be passed to @leave_func and @notify will be called when @user_data is no
- longer referenced.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">The #GstTask to use</doc>
- <type name="Task" c:type="GstTask*"/>
- </instance-parameter>
- <parameter name="leave_func"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">a #GstTaskThreadFunc</doc>
- <type name="TaskThreadFunc" c:type="GstTaskThreadFunc"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @leave_func</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">called when @user_data is no longer referenced</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_lock" c:identifier="gst_task_set_lock">
- <doc xml:space="preserve">Set the mutex used by the task. The mutex will be acquired before
- calling the #GstTaskFunction.
- This function has to be called before calling gst_task_pause() or
- gst_task_start().
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">The #GstTask to use</doc>
- <type name="Task" c:type="GstTask*"/>
- </instance-parameter>
- <parameter name="mutex" transfer-ownership="none">
- <doc xml:space="preserve">The #GRecMutex to use</doc>
- <type name="GLib.RecMutex" c:type="GRecMutex*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_pool" c:identifier="gst_task_set_pool">
- <doc xml:space="preserve">Set @pool as the new GstTaskPool for @task. Any new streaming threads that
- will be created by @task will now use @pool.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTask</doc>
- <type name="Task" c:type="GstTask*"/>
- </instance-parameter>
- <parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTaskPool</doc>
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_state" c:identifier="gst_task_set_state">
- <doc xml:space="preserve">Sets the state of @task to @state.
- The @task must have a lock associated with it using
- gst_task_set_lock() when going to GST_TASK_STARTED or GST_TASK_PAUSED or
- this function will return %FALSE.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the state could be changed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTask</doc>
- <type name="Task" c:type="GstTask*"/>
- </instance-parameter>
- <parameter name="state" transfer-ownership="none">
- <doc xml:space="preserve">the new task state</doc>
- <type name="TaskState" c:type="GstTaskState"/>
- </parameter>
- </parameters>
- </method>
- <method name="start" c:identifier="gst_task_start">
- <doc xml:space="preserve">Starts @task. The @task must have a lock associated with it using
- gst_task_set_lock() or this function will return %FALSE.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the task could be started.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">The #GstTask to start</doc>
- <type name="Task" c:type="GstTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="stop" c:identifier="gst_task_stop">
- <doc xml:space="preserve">Stops @task. This method merely schedules the task to stop and
- will not wait for the task to have completely stopped. Use
- gst_task_join() to stop and wait for completion.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the task could be stopped.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">The #GstTask to stop</doc>
- <type name="Task" c:type="GstTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="state">
- <doc xml:space="preserve">the state of the task</doc>
- <type name="TaskState" c:type="GstTaskState"/>
- </field>
- <field name="cond">
- <doc xml:space="preserve">used to pause/resume the task</doc>
- <type name="GLib.Cond" c:type="GCond"/>
- </field>
- <field name="lock">
- <doc xml:space="preserve">The lock taken when iterating the task function</doc>
- <type name="GLib.RecMutex" c:type="GRecMutex*"/>
- </field>
- <field name="func">
- <doc xml:space="preserve">the function executed by this task</doc>
- <type name="TaskFunction" c:type="GstTaskFunction"/>
- </field>
- <field name="user_data">
- <doc xml:space="preserve">user_data passed to the task function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="notify">
- <doc xml:space="preserve">GDestroyNotify for @user_data</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <field name="running">
- <doc xml:space="preserve">a flag indicating that the task is running</doc>
- <type name="gboolean" c:type="gboolean"/>
- </field>
- <field name="thread" readable="0" private="1">
- <type name="GLib.Thread" c:type="GThread*"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="TaskPrivate" c:type="GstTaskPrivate*"/>
- </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="TaskClass"
- c:type="GstTaskClass"
- glib:is-gtype-struct-for="Task">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="pool" readable="0" private="1">
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </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="TaskFunction" c:type="GstTaskFunction">
- <doc xml:space="preserve">A function that will repeatedly be called in the thread created by
- a #GstTask.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="0">
- <doc xml:space="preserve">user data passed to the function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <class name="TaskPool"
- c:symbol-prefix="task_pool"
- c:type="GstTaskPool"
- parent="Object"
- glib:type-name="GstTaskPool"
- glib:get-type="gst_task_pool_get_type"
- glib:type-struct="TaskPoolClass">
- <doc xml:space="preserve">This object provides an abstraction for creating threads. The default
- implementation uses a regular GThreadPool to start tasks.
- Subclasses can be made to create custom threads.</doc>
- <constructor name="new" c:identifier="gst_task_pool_new">
- <doc xml:space="preserve">Create a new default task pool. The default task pool will use a regular
- GThreadPool for threads.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstTaskPool. gst_object_unref() after usage.</doc>
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </return-value>
- </constructor>
- <virtual-method name="cleanup" invoker="cleanup">
- <doc xml:space="preserve">Wait for all tasks to be stopped. This is mainly used internally
- to ensure proper cleanup of internal data structures in test suites.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTaskPool</doc>
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="join" invoker="join">
- <doc xml:space="preserve">Join a task and/or return it to the pool. @id is the id obtained from
- gst_task_pool_push().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTaskPool</doc>
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </instance-parameter>
- <parameter name="id"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the id</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="prepare" invoker="prepare" throws="1">
- <doc xml:space="preserve">Prepare the taskpool for accepting gst_task_pool_push() operations.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTaskPool</doc>
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="push" invoker="push" throws="1">
- <doc xml:space="preserve">Start the execution of a new thread from @pool.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a pointer that should be used
- for the gst_task_pool_join function. This pointer can be %NULL, you
- must check @error to detect errors.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTaskPool</doc>
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="async"
- closure="1">
- <doc xml:space="preserve">the function to call</doc>
- <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="1">
- <doc xml:space="preserve">data to pass to @func</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="cleanup" c:identifier="gst_task_pool_cleanup">
- <doc xml:space="preserve">Wait for all tasks to be stopped. This is mainly used internally
- to ensure proper cleanup of internal data structures in test suites.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTaskPool</doc>
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="join" c:identifier="gst_task_pool_join">
- <doc xml:space="preserve">Join a task and/or return it to the pool. @id is the id obtained from
- gst_task_pool_push().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTaskPool</doc>
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </instance-parameter>
- <parameter name="id"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the id</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="prepare" c:identifier="gst_task_pool_prepare" throws="1">
- <doc xml:space="preserve">Prepare the taskpool for accepting gst_task_pool_push() operations.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTaskPool</doc>
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="push" c:identifier="gst_task_pool_push" throws="1">
- <doc xml:space="preserve">Start the execution of a new thread from @pool.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a pointer that should be used
- for the gst_task_pool_join function. This pointer can be %NULL, you
- must check @error to detect errors.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTaskPool</doc>
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="async"
- closure="1">
- <doc xml:space="preserve">the function to call</doc>
- <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data to pass to @func</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="pool" readable="0" private="1">
- <type name="GLib.ThreadPool" c:type="GThreadPool*"/>
- </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="TaskPoolClass"
- c:type="GstTaskPoolClass"
- glib:is-gtype-struct-for="TaskPool">
- <doc xml:space="preserve">The #GstTaskPoolClass object.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">the parent class structure</doc>
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="prepare">
- <callback name="prepare" throws="1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTaskPool</doc>
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="cleanup">
- <callback name="cleanup">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTaskPool</doc>
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="push">
- <callback name="push" throws="1">
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a pointer that should be used
- for the gst_task_pool_join function. This pointer can be %NULL, you
- must check @error to detect errors.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTaskPool</doc>
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="async"
- closure="2">
- <doc xml:space="preserve">the function to call</doc>
- <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">data to pass to @func</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="join">
- <callback name="join">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTaskPool</doc>
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </parameter>
- <parameter name="id"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the id</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <callback name="TaskPoolFunction" c:type="GstTaskPoolFunction">
- <doc xml:space="preserve">Task function, see gst_task_pool_push().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="0">
- <doc xml:space="preserve">user data for the task function</doc>
- <type name="gpointer" c:type="void*"/>
- </parameter>
- </parameters>
- </callback>
- <record name="TaskPrivate" c:type="GstTaskPrivate" disguised="1">
- </record>
- <enumeration name="TaskState"
- glib:type-name="GstTaskState"
- glib:get-type="gst_task_state_get_type"
- c:type="GstTaskState">
- <doc xml:space="preserve">The different states a task can be in</doc>
- <member name="started"
- value="0"
- c:identifier="GST_TASK_STARTED"
- glib:nick="started">
- <doc xml:space="preserve">the task is started and running</doc>
- </member>
- <member name="stopped"
- value="1"
- c:identifier="GST_TASK_STOPPED"
- glib:nick="stopped">
- <doc xml:space="preserve">the task is stopped</doc>
- </member>
- <member name="paused"
- value="2"
- c:identifier="GST_TASK_PAUSED"
- glib:nick="paused">
- <doc xml:space="preserve">the task is paused</doc>
- </member>
- </enumeration>
- <callback name="TaskThreadFunc" c:type="GstTaskThreadFunc">
- <doc xml:space="preserve">Custom GstTask thread callback functions that can be installed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">The #GstTask</doc>
- <type name="Task" c:type="GstTask*"/>
- </parameter>
- <parameter name="thread" transfer-ownership="none">
- <doc xml:space="preserve">The #GThread</doc>
- <type name="GLib.Thread" c:type="GThread*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <record name="TimedValue" c:type="GstTimedValue">
- <doc xml:space="preserve">Structure for saving a timestamp and a value.</doc>
- <field name="timestamp" writable="1">
- <doc xml:space="preserve">timestamp of the value change</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="value" writable="1">
- <doc xml:space="preserve">the corresponding value</doc>
- <type name="gdouble" c:type="gdouble"/>
- </field>
- </record>
- <record name="Toc"
- c:type="GstToc"
- glib:type-name="GstToc"
- glib:get-type="gst_toc_get_type"
- c:symbol-prefix="toc">
- <doc xml:space="preserve">#GstToc functions are used to create/free #GstToc and #GstTocEntry structures.
- Also they are used to convert #GstToc into #GstStructure and vice versa.
- #GstToc lets you to inform other elements in pipeline or application that playing
- source has some kind of table of contents (TOC). These may be chapters, editions,
- angles or other types. For example: DVD chapters, Matroska chapters or cue sheet
- TOC. Such TOC will be useful for applications to display instead of just a
- playlist.
- Using TOC is very easy. Firstly, create #GstToc structure which represents root
- contents of the source. You can also attach TOC-specific tags to it. Then fill
- it with #GstTocEntry entries by appending them to the #GstToc using
- gst_toc_append_entry(), and appending subentries to a #GstTocEntry using
- gst_toc_entry_append_sub_entry().
- Note that root level of the TOC can contain only either editions or chapters. You
- should not mix them together at the same level. Otherwise you will get serialization
- /deserialization errors. Make sure that no one of the entries has negative start and
- stop values.
- Use gst_event_new_toc() to create a new TOC #GstEvent, and gst_event_parse_toc() to
- parse received TOC event. Use gst_event_new_toc_select() to create a new TOC select #GstEvent,
- and gst_event_parse_toc_select() to parse received TOC select event. The same rule for
- the #GstMessage: gst_message_new_toc() to create new TOC #GstMessage, and
- gst_message_parse_toc() to parse received TOC message.
- TOCs can have global scope or current scope. Global scope TOCs contain
- all entries that can possibly be selected using a toc select event, and
- are what an application is usually interested in. TOCs with current scope
- only contain the parts of the TOC relevant to the currently selected/playing
- stream; the current scope TOC is used by downstream elements such as muxers
- to write correct TOC entries when transcoding files, for example. When
- playing a DVD, the global TOC would contain a hierarchy of all titles,
- chapters and angles, for example, while the current TOC would only contain
- the chapters for the currently playing title if playback of a specific
- title was requested.
- Applications and plugins should not rely on TOCs having a certain kind of
- structure, but should allow for different alternatives. For example, a
- simple CUE sheet embedded in a file may be presented as a flat list of
- track entries, or could have a top-level edition node (or some other
- alternative type entry) with track entries underneath that node; or even
- multiple top-level edition nodes (or some other alternative type entries)
- each with track entries underneath, in case the source file has extracted
- a track listing from different sources).</doc>
- <constructor name="new" c:identifier="gst_toc_new">
- <doc xml:space="preserve">Create a new #GstToc structure.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">newly allocated #GstToc structure, free it
- with gst_toc_unref().</doc>
- <type name="Toc" c:type="GstToc*"/>
- </return-value>
- <parameters>
- <parameter name="scope" transfer-ownership="none">
- <doc xml:space="preserve">scope of this TOC</doc>
- <type name="TocScope" c:type="GstTocScope"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="append_entry" c:identifier="gst_toc_append_entry">
- <doc xml:space="preserve">Appends the #GstTocEntry @entry to @toc.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="toc" transfer-ownership="none">
- <doc xml:space="preserve">A #GstToc instance</doc>
- <type name="Toc" c:type="GstToc*"/>
- </instance-parameter>
- <parameter name="entry" transfer-ownership="full">
- <doc xml:space="preserve">A #GstTocEntry</doc>
- <type name="TocEntry" c:type="GstTocEntry*"/>
- </parameter>
- </parameters>
- </method>
- <method name="dump" c:identifier="gst_toc_dump">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="toc" transfer-ownership="none">
- <type name="Toc" c:type="GstToc*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="find_entry" c:identifier="gst_toc_find_entry">
- <doc xml:space="preserve">Find #GstTocEntry with given @uid in the @toc.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">#GstTocEntry with specified
- @uid from the @toc, or %NULL if not found.</doc>
- <type name="TocEntry" c:type="GstTocEntry*"/>
- </return-value>
- <parameters>
- <instance-parameter name="toc" transfer-ownership="none">
- <doc xml:space="preserve">#GstToc to search in.</doc>
- <type name="Toc" c:type="const GstToc*"/>
- </instance-parameter>
- <parameter name="uid" transfer-ownership="none">
- <doc xml:space="preserve">UID to find #GstTocEntry with.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_entries" c:identifier="gst_toc_get_entries">
- <doc xml:space="preserve">Gets the list of #GstTocEntry of @toc.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GList of #GstTocEntry for @entry</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="TocEntry"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="toc" transfer-ownership="none">
- <doc xml:space="preserve">A #GstToc instance</doc>
- <type name="Toc" c:type="const GstToc*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_scope" c:identifier="gst_toc_get_scope">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">scope of @toc</doc>
- <type name="TocScope" c:type="GstTocScope"/>
- </return-value>
- <parameters>
- <instance-parameter name="toc" transfer-ownership="none">
- <doc xml:space="preserve">a #GstToc instance</doc>
- <type name="Toc" c:type="const GstToc*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_tags" c:identifier="gst_toc_get_tags">
- <doc xml:space="preserve">Gets the tags for @toc.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GstTagList for @entry</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </return-value>
- <parameters>
- <instance-parameter name="toc" transfer-ownership="none">
- <doc xml:space="preserve">A #GstToc instance</doc>
- <type name="Toc" c:type="const GstToc*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="merge_tags" c:identifier="gst_toc_merge_tags">
- <doc xml:space="preserve">Merge @tags into the existing tags of @toc using @mode.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="toc" transfer-ownership="none">
- <doc xml:space="preserve">A #GstToc instance</doc>
- <type name="Toc" c:type="GstToc*"/>
- </instance-parameter>
- <parameter name="tags"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GstTagList or %NULL</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTagMergeMode</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_tags" c:identifier="gst_toc_set_tags">
- <doc xml:space="preserve">Set a #GstTagList with tags for the complete @toc.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="toc" transfer-ownership="none">
- <doc xml:space="preserve">A #GstToc instance</doc>
- <type name="Toc" c:type="GstToc*"/>
- </instance-parameter>
- <parameter name="tags"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GstTagList or %NULL</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <record name="TocEntry"
- c:type="GstTocEntry"
- glib:type-name="GstTocEntry"
- glib:get-type="gst_toc_entry_get_type"
- c:symbol-prefix="toc_entry">
- <constructor name="new" c:identifier="gst_toc_entry_new">
- <doc xml:space="preserve">Create new #GstTocEntry structure.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">newly allocated #GstTocEntry structure, free it with gst_toc_entry_unref().</doc>
- <type name="TocEntry" c:type="GstTocEntry*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">entry type.</doc>
- <type name="TocEntryType" c:type="GstTocEntryType"/>
- </parameter>
- <parameter name="uid" transfer-ownership="none">
- <doc xml:space="preserve">unique ID (UID) in the whole TOC.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="append_sub_entry"
- c:identifier="gst_toc_entry_append_sub_entry">
- <doc xml:space="preserve">Appends the #GstTocEntry @subentry to @entry.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="entry" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTocEntry instance</doc>
- <type name="TocEntry" c:type="GstTocEntry*"/>
- </instance-parameter>
- <parameter name="subentry" transfer-ownership="full">
- <doc xml:space="preserve">A #GstTocEntry</doc>
- <type name="TocEntry" c:type="GstTocEntry*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_entry_type"
- c:identifier="gst_toc_entry_get_entry_type">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@entry's entry type</doc>
- <type name="TocEntryType" c:type="GstTocEntryType"/>
- </return-value>
- <parameters>
- <instance-parameter name="entry" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTocEntry</doc>
- <type name="TocEntry" c:type="const GstTocEntry*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_loop"
- c:identifier="gst_toc_entry_get_loop"
- version="1.4">
- <doc xml:space="preserve">Get @loop_type and @repeat_count values from the @entry and write them into
- appropriate storages. Loops are e.g. used by sampled instruments. GStreamer
- is not automatically applying the loop. The application can process this
- meta data and use it e.g. to send a seek-event to loop a section.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if all non-%NULL storage pointers were filled with appropriate
- values, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="entry" transfer-ownership="none">
- <doc xml:space="preserve">#GstTocEntry to get values from.</doc>
- <type name="TocEntry" c:type="const GstTocEntry*"/>
- </instance-parameter>
- <parameter name="loop_type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the loop_type
- value, leave %NULL if not need.</doc>
- <type name="TocLoopType" c:type="GstTocLoopType*"/>
- </parameter>
- <parameter name="repeat_count"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the repeat_count
- value, leave %NULL if not need.</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_parent" c:identifier="gst_toc_entry_get_parent">
- <doc xml:space="preserve">Gets the parent #GstTocEntry of @entry.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The parent #GstTocEntry of @entry</doc>
- <type name="TocEntry" c:type="GstTocEntry*"/>
- </return-value>
- <parameters>
- <instance-parameter name="entry" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTocEntry instance</doc>
- <type name="TocEntry" c:type="GstTocEntry*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_start_stop_times"
- c:identifier="gst_toc_entry_get_start_stop_times">
- <doc xml:space="preserve">Get @start and @stop values from the @entry and write them into appropriate
- storages.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if all non-%NULL storage pointers were filled with appropriate
- values, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="entry" transfer-ownership="none">
- <doc xml:space="preserve">#GstTocEntry to get values from.</doc>
- <type name="TocEntry" c:type="const GstTocEntry*"/>
- </instance-parameter>
- <parameter name="start"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the start value, leave
- %NULL if not need.</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- <parameter name="stop"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the storage for the stop value, leave
- %NULL if not need.</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_sub_entries"
- c:identifier="gst_toc_entry_get_sub_entries">
- <doc xml:space="preserve">Gets the sub-entries of @entry.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GList of #GstTocEntry of @entry</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="TocEntry"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="entry" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTocEntry instance</doc>
- <type name="TocEntry" c:type="const GstTocEntry*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_tags" c:identifier="gst_toc_entry_get_tags">
- <doc xml:space="preserve">Gets the tags for @entry.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GstTagList for @entry</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </return-value>
- <parameters>
- <instance-parameter name="entry" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTocEntry instance</doc>
- <type name="TocEntry" c:type="const GstTocEntry*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_toc" c:identifier="gst_toc_entry_get_toc">
- <doc xml:space="preserve">Gets the parent #GstToc of @entry.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The parent #GstToc of @entry</doc>
- <type name="Toc" c:type="GstToc*"/>
- </return-value>
- <parameters>
- <instance-parameter name="entry" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTocEntry instance</doc>
- <type name="TocEntry" c:type="GstTocEntry*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_uid" c:identifier="gst_toc_entry_get_uid">
- <doc xml:space="preserve">Gets the UID of @entry.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The UID of @entry</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="entry" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTocEntry instance</doc>
- <type name="TocEntry" c:type="const GstTocEntry*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_alternative"
- c:identifier="gst_toc_entry_is_alternative">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @entry's type is an alternative type, otherwise %FALSE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="entry" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTocEntry</doc>
- <type name="TocEntry" c:type="const GstTocEntry*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_sequence" c:identifier="gst_toc_entry_is_sequence">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @entry's type is a sequence type, otherwise %FALSE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="entry" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTocEntry</doc>
- <type name="TocEntry" c:type="const GstTocEntry*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="merge_tags" c:identifier="gst_toc_entry_merge_tags">
- <doc xml:space="preserve">Merge @tags into the existing tags of @entry using @mode.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="entry" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTocEntry instance</doc>
- <type name="TocEntry" c:type="GstTocEntry*"/>
- </instance-parameter>
- <parameter name="tags"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GstTagList or %NULL</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTagMergeMode</doc>
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_loop"
- c:identifier="gst_toc_entry_set_loop"
- version="1.4">
- <doc xml:space="preserve">Set @loop_type and @repeat_count values for the @entry.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="entry" transfer-ownership="none">
- <doc xml:space="preserve">#GstTocEntry to set values.</doc>
- <type name="TocEntry" c:type="GstTocEntry*"/>
- </instance-parameter>
- <parameter name="loop_type" transfer-ownership="none">
- <doc xml:space="preserve">loop_type value to set.</doc>
- <type name="TocLoopType" c:type="GstTocLoopType"/>
- </parameter>
- <parameter name="repeat_count" transfer-ownership="none">
- <doc xml:space="preserve">repeat_count value to set.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_start_stop_times"
- c:identifier="gst_toc_entry_set_start_stop_times">
- <doc xml:space="preserve">Set @start and @stop values for the @entry.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="entry" transfer-ownership="none">
- <doc xml:space="preserve">#GstTocEntry to set values.</doc>
- <type name="TocEntry" c:type="GstTocEntry*"/>
- </instance-parameter>
- <parameter name="start" transfer-ownership="none">
- <doc xml:space="preserve">start value to set.</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="stop" transfer-ownership="none">
- <doc xml:space="preserve">stop value to set.</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_tags" c:identifier="gst_toc_entry_set_tags">
- <doc xml:space="preserve">Set a #GstTagList with tags for the complete @entry.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="entry" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTocEntry instance</doc>
- <type name="TocEntry" c:type="GstTocEntry*"/>
- </instance-parameter>
- <parameter name="tags"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GstTagList or %NULL</doc>
- <type name="TagList" c:type="GstTagList*"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <enumeration name="TocEntryType"
- glib:type-name="GstTocEntryType"
- glib:get-type="gst_toc_entry_type_get_type"
- c:type="GstTocEntryType">
- <doc xml:space="preserve">The different types of TOC entries (see #GstTocEntry).
- There are two types of TOC entries: alternatives or parts in a sequence.</doc>
- <member name="angle"
- value="-3"
- c:identifier="GST_TOC_ENTRY_TYPE_ANGLE"
- glib:nick="angle">
- <doc xml:space="preserve">entry is an angle (i.e. an alternative)</doc>
- </member>
- <member name="version"
- value="-2"
- c:identifier="GST_TOC_ENTRY_TYPE_VERSION"
- glib:nick="version">
- <doc xml:space="preserve">entry is a version (i.e. alternative)</doc>
- </member>
- <member name="edition"
- value="-1"
- c:identifier="GST_TOC_ENTRY_TYPE_EDITION"
- glib:nick="edition">
- <doc xml:space="preserve">entry is an edition (i.e. alternative)</doc>
- </member>
- <member name="invalid"
- value="0"
- c:identifier="GST_TOC_ENTRY_TYPE_INVALID"
- glib:nick="invalid">
- <doc xml:space="preserve">invalid entry type value</doc>
- </member>
- <member name="title"
- value="1"
- c:identifier="GST_TOC_ENTRY_TYPE_TITLE"
- glib:nick="title">
- <doc xml:space="preserve">entry is a title (i.e. a part of a sequence)</doc>
- </member>
- <member name="track"
- value="2"
- c:identifier="GST_TOC_ENTRY_TYPE_TRACK"
- glib:nick="track">
- <doc xml:space="preserve">entry is a track (i.e. a part of a sequence)</doc>
- </member>
- <member name="chapter"
- value="3"
- c:identifier="GST_TOC_ENTRY_TYPE_CHAPTER"
- glib:nick="chapter">
- <doc xml:space="preserve">entry is a chapter (i.e. a part of a sequence)</doc>
- </member>
- <function name="get_nick" c:identifier="gst_toc_entry_type_get_nick">
- <doc xml:space="preserve">Converts @type to a string representation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Returns a human-readable string for @type. This string is
- only for debugging purpose and should not be displayed in a user
- interface.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTocEntryType.</doc>
- <type name="TocEntryType" c:type="GstTocEntryType"/>
- </parameter>
- </parameters>
- </function>
- </enumeration>
- <enumeration name="TocLoopType"
- version="1.4"
- glib:type-name="GstTocLoopType"
- glib:get-type="gst_toc_loop_type_get_type"
- c:type="GstTocLoopType">
- <doc xml:space="preserve">How a #GstTocEntry should be repeated. By default, entries are played a
- single time.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_TOC_LOOP_NONE"
- glib:nick="none">
- <doc xml:space="preserve">single forward playback</doc>
- </member>
- <member name="forward"
- value="1"
- c:identifier="GST_TOC_LOOP_FORWARD"
- glib:nick="forward">
- <doc xml:space="preserve">repeat forward</doc>
- </member>
- <member name="reverse"
- value="2"
- c:identifier="GST_TOC_LOOP_REVERSE"
- glib:nick="reverse">
- <doc xml:space="preserve">repeat backward</doc>
- </member>
- <member name="ping_pong"
- value="3"
- c:identifier="GST_TOC_LOOP_PING_PONG"
- glib:nick="ping-pong">
- <doc xml:space="preserve">repeat forward and backward</doc>
- </member>
- </enumeration>
- <enumeration name="TocScope"
- glib:type-name="GstTocScope"
- glib:get-type="gst_toc_scope_get_type"
- c:type="GstTocScope">
- <doc xml:space="preserve">The scope of a TOC.</doc>
- <member name="global"
- value="1"
- c:identifier="GST_TOC_SCOPE_GLOBAL"
- glib:nick="global">
- <doc xml:space="preserve">global TOC representing all selectable options
- (this is what applications are usually interested in)</doc>
- </member>
- <member name="current"
- value="2"
- c:identifier="GST_TOC_SCOPE_CURRENT"
- glib:nick="current">
- <doc xml:space="preserve">TOC for the currently active/selected stream
- (this is a TOC representing the current stream from start to EOS,
- and is what a TOC writer / muxer is usually interested in; it will
- usually be a subset of the global TOC, e.g. just the chapters of
- the current title, or the chapters selected for playback from the
- current title)</doc>
- </member>
- </enumeration>
- <interface name="TocSetter"
- c:symbol-prefix="toc_setter"
- c:type="GstTocSetter"
- glib:type-name="GstTocSetter"
- glib:get-type="gst_toc_setter_get_type"
- glib:type-struct="TocSetterInterface">
- <doc xml:space="preserve">Element interface that allows setting of the TOC.
- Elements that support some kind of chapters or editions (or tracks like in
- the FLAC cue sheet) will implement this interface.
- If you just want to retrieve the TOC in your application then all you
- need to do is watch for TOC messages on your pipeline's bus (or you can
- perform TOC query). This interface is only for setting TOC data, not for
- extracting it. To set TOC from the application, find proper tocsetter element
- and set TOC using gst_toc_setter_set_toc().
- Elements implementing the #GstTocSetter interface can extend existing TOC
- by getting extend UID for that (you can use gst_toc_find_entry() to retrieve it)
- with any TOC entries received from downstream.</doc>
- <prerequisite name="Element"/>
- <method name="get_toc" c:identifier="gst_toc_setter_get_toc">
- <doc xml:space="preserve">Return current TOC the setter uses. The TOC should not be
- modified without making it writable first.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">TOC set, or %NULL. Unref with
- gst_toc_unref() when no longer needed</doc>
- <type name="Toc" c:type="GstToc*"/>
- </return-value>
- <parameters>
- <instance-parameter name="setter" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTocSetter.</doc>
- <type name="TocSetter" c:type="GstTocSetter*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="reset" c:identifier="gst_toc_setter_reset">
- <doc xml:space="preserve">Reset the internal TOC. Elements should call this from within the
- state-change handler.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="setter" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTocSetter.</doc>
- <type name="TocSetter" c:type="GstTocSetter*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_toc" c:identifier="gst_toc_setter_set_toc">
- <doc xml:space="preserve">Set the given TOC on the setter. Previously set TOC will be
- unreffed before setting a new one.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="setter" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTocSetter.</doc>
- <type name="TocSetter" c:type="GstTocSetter*"/>
- </instance-parameter>
- <parameter name="toc"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstToc to set.</doc>
- <type name="Toc" c:type="GstToc*"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="TocSetterInterface"
- c:type="GstTocSetterInterface"
- glib:is-gtype-struct-for="TocSetter">
- <doc xml:space="preserve">#GstTocSetterInterface interface.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">parent interface type.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- </record>
- <class name="Tracer"
- c:symbol-prefix="tracer"
- c:type="GstTracer"
- parent="Object"
- abstract="1"
- glib:type-name="GstTracer"
- glib:get-type="gst_tracer_get_type"
- glib:type-struct="TracerClass">
- <doc xml:space="preserve">Tracing modules will subclass #GstTracer and register through
- gst_tracing_register(). Modules can attach to various hook-types - see
- gst_tracing_register_hook(). When invoked they receive hook specific
- contextual data, which they must not modify.</doc>
- <property name="params"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <field name="parent">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="TracerPrivate" c:type="GstTracerPrivate*"/>
- </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="TracerClass"
- c:type="GstTracerClass"
- glib:is-gtype-struct-for="Tracer">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </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>
- <class name="TracerFactory"
- c:symbol-prefix="tracer_factory"
- c:type="GstTracerFactory"
- version="1.8"
- parent="PluginFeature"
- glib:type-name="GstTracerFactory"
- glib:get-type="gst_tracer_factory_get_type"
- glib:type-struct="TracerFactoryClass">
- <doc xml:space="preserve">Use gst_tracer_factory_get_list() to get a list of tracer factories known to
- GStreamer.</doc>
- <function name="get_list"
- c:identifier="gst_tracer_factory_get_list"
- version="1.8">
- <doc xml:space="preserve">Gets the list of all registered tracer factories. You must free the
- list using gst_plugin_feature_list_free().
- The returned factories are sorted by factory name.
- Free-function: gst_plugin_feature_list_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the list of all
- registered #GstTracerFactory.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="TracerFactory"/>
- </type>
- </return-value>
- </function>
- </class>
- <record name="TracerFactoryClass"
- c:type="GstTracerFactoryClass"
- disguised="1"
- glib:is-gtype-struct-for="TracerFactory">
- </record>
- <record name="TracerPrivate" c:type="GstTracerPrivate" disguised="1">
- </record>
- <class name="TracerRecord"
- c:symbol-prefix="tracer_record"
- c:type="GstTracerRecord"
- parent="Object"
- glib:type-name="GstTracerRecord"
- glib:get-type="gst_tracer_record_get_type"
- glib:type-struct="TracerRecordClass">
- <doc xml:space="preserve">Tracing modules will create instances of this class to announce the data they
- will log and create a log formatter.</doc>
- </class>
- <record name="TracerRecordClass"
- c:type="GstTracerRecordClass"
- disguised="1"
- glib:is-gtype-struct-for="TracerRecord">
- </record>
- <bitfield name="TracerValueFlags"
- glib:type-name="GstTracerValueFlags"
- glib:get-type="gst_tracer_value_flags_get_type"
- c:type="GstTracerValueFlags">
- <doc xml:space="preserve">Flag that describe the value. These flags help applications processing the
- logs to understand the values.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_TRACER_VALUE_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">no flags</doc>
- </member>
- <member name="optional"
- value="1"
- c:identifier="GST_TRACER_VALUE_FLAGS_OPTIONAL"
- glib:nick="optional">
- <doc xml:space="preserve">the value is optional. When using this flag
- one need to have an additional boolean arg before this value in the
- var-args list passed to gst_tracer_record_log().</doc>
- </member>
- <member name="aggregated"
- value="2"
- c:identifier="GST_TRACER_VALUE_FLAGS_AGGREGATED"
- glib:nick="aggregated">
- <doc xml:space="preserve">the value is combined since the start of
- tracing</doc>
- </member>
- </bitfield>
- <enumeration name="TracerValueScope"
- version="1.8"
- glib:type-name="GstTracerValueScope"
- glib:get-type="gst_tracer_value_scope_get_type"
- c:type="GstTracerValueScope">
- <doc xml:space="preserve">Tracing record will contain fields that contain a meassured value or extra
- meta-data. One such meta data are values that tell where a measurement was
- taken. This enumerating declares to which scope such a meta data field
- relates to. If it is e.g. %GST_TRACER_VALUE_SCOPE_PAD, then each of the log
- events may contain values for different #GstPads.</doc>
- <member name="process"
- value="0"
- c:identifier="GST_TRACER_VALUE_SCOPE_PROCESS"
- glib:nick="process">
- <doc xml:space="preserve">the value is related to the process</doc>
- </member>
- <member name="thread"
- value="1"
- c:identifier="GST_TRACER_VALUE_SCOPE_THREAD"
- glib:nick="thread">
- <doc xml:space="preserve">the value is related to a thread</doc>
- </member>
- <member name="element"
- value="2"
- c:identifier="GST_TRACER_VALUE_SCOPE_ELEMENT"
- glib:nick="element">
- <doc xml:space="preserve">the value is related to an #GstElement</doc>
- </member>
- <member name="pad"
- value="3"
- c:identifier="GST_TRACER_VALUE_SCOPE_PAD"
- glib:nick="pad">
- <doc xml:space="preserve">the value is related to a #GstPad</doc>
- </member>
- </enumeration>
- <record name="TypeFind" c:type="GstTypeFind">
- <doc xml:space="preserve">The following functions allow you to detect the media type of an unknown
- stream.</doc>
- <field name="peek">
- <callback name="peek">
- <return-value transfer-ownership="none">
- <type name="guint8" c:type="const guint8*"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="suggest">
- <callback name="suggest">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="probability" transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="data" writable="1">
- <doc xml:space="preserve">The data used by the caller of the typefinding function.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="get_length">
- <callback name="get_length">
- <return-value transfer-ownership="none">
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- <method name="get_length" c:identifier="gst_type_find_get_length">
- <doc xml:space="preserve">Get the length of the data stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The length of the data stream, or 0 if it is not available.</doc>
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <instance-parameter name="find" transfer-ownership="none">
- <doc xml:space="preserve">The #GstTypeFind the function was called with</doc>
- <type name="TypeFind" c:type="GstTypeFind*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="peek" c:identifier="gst_type_find_peek">
- <doc xml:space="preserve">Returns the @size bytes of the stream to identify beginning at offset. If
- offset is a positive number, the offset is relative to the beginning of the
- stream, if offset is a negative number the offset is relative to the end of
- the stream. The returned memory is valid until the typefinding function
- returns and must not be freed.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the
- requested data, or %NULL if that data is not available.</doc>
- <array length="1" zero-terminated="0" c:type="guint8*">
- <type name="guint8" c:type="guint8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="find" transfer-ownership="none">
- <doc xml:space="preserve">The #GstTypeFind object the function was called with</doc>
- <type name="TypeFind" c:type="GstTypeFind*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">The offset</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="size"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">The number of bytes to return</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="suggest" c:identifier="gst_type_find_suggest">
- <doc xml:space="preserve">If a #GstTypeFindFunction calls this function it suggests the caps with the
- given probability. A #GstTypeFindFunction may supply different suggestions
- in one call.
- It is up to the caller of the #GstTypeFindFunction to interpret these values.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="find" transfer-ownership="none">
- <doc xml:space="preserve">The #GstTypeFind object the function was called with</doc>
- <type name="TypeFind" c:type="GstTypeFind*"/>
- </instance-parameter>
- <parameter name="probability" transfer-ownership="none">
- <doc xml:space="preserve">The probability in percent that the suggestion is right</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">The fixed #GstCaps to suggest</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="suggest_simple"
- c:identifier="gst_type_find_suggest_simple"
- introspectable="0">
- <doc xml:space="preserve">If a #GstTypeFindFunction calls this function it suggests the caps with the
- given probability. A #GstTypeFindFunction may supply different suggestions
- in one call. It is up to the caller of the #GstTypeFindFunction to interpret
- these values.
- This function is similar to gst_type_find_suggest(), only that instead of
- passing a #GstCaps argument you can create the caps on the fly in the same
- way as you can with gst_caps_new_simple().
- Make sure you terminate the list of arguments with a %NULL argument and that
- the values passed have the correct type (in terms of width in bytes when
- passed to the vararg function - this applies particularly to gdouble and
- guint64 arguments).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="find" transfer-ownership="none">
- <doc xml:space="preserve">The #GstTypeFind object the function was called with</doc>
- <type name="TypeFind" c:type="GstTypeFind*"/>
- </instance-parameter>
- <parameter name="probability" transfer-ownership="none">
- <doc xml:space="preserve">The probability in percent that the suggestion is right</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="media_type" transfer-ownership="none">
- <doc xml:space="preserve">the media type of the suggested caps</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="fieldname"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">first field of the suggested caps, or %NULL</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">additional arguments to the suggested caps in the same format as the
- arguments passed to gst_structure_new() (ie. triplets of field name,
- field GType and field value)</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <function name="register" c:identifier="gst_type_find_register">
- <doc xml:space="preserve">Registers a new typefind function to be used for typefinding. After
- registering this function will be available for typefinding.
- This function is typically called during an element's plugin initialization.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="plugin"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GstPlugin, or %NULL for a static typefind function</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The name for registering</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="rank" transfer-ownership="none">
- <doc xml:space="preserve">The rank (or importance) of this typefind function</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="notified"
- closure="6"
- destroy="7">
- <doc xml:space="preserve">The #GstTypeFindFunction to use</doc>
- <type name="TypeFindFunction" c:type="GstTypeFindFunction"/>
- </parameter>
- <parameter name="extensions"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Optional comma-separated list of extensions
- that could belong to this type</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="possible_caps" transfer-ownership="none">
- <doc xml:space="preserve">Optionally the caps that could be returned when typefinding
- succeeds</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Optional user data. This user data must be available until the plugin
- is unloaded.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="data_notify"
- transfer-ownership="none"
- scope="async">
- <doc xml:space="preserve">a #GDestroyNotify that will be called on @data when the plugin
- is unloaded.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <class name="TypeFindFactory"
- c:symbol-prefix="type_find_factory"
- c:type="GstTypeFindFactory"
- parent="PluginFeature"
- glib:type-name="GstTypeFindFactory"
- glib:get-type="gst_type_find_factory_get_type"
- glib:type-struct="TypeFindFactoryClass">
- <doc xml:space="preserve">These functions allow querying informations about registered typefind
- functions. How to create and register these functions is described in
- the section <link linkend="gstreamer-Writing-typefind-functions">
- "Writing typefind functions"</link>.
- The following example shows how to write a very simple typefinder that
- identifies the given data. You can get quite a bit more complicated than
- that though.
- |[<!-- language="C" -->
- typedef struct {
- guint8 *data;
- guint size;
- guint probability;
- GstCaps *data;
- } MyTypeFind;
- static void
- my_peek (gpointer data, gint64 offset, guint size)
- {
- MyTypeFind *find = (MyTypeFind *) data;
- if (offset &gt;= 0 &amp;&amp; offset + size &lt;= find->size) {
- return find->data + offset;
- }
- return NULL;
- }
- static void
- my_suggest (gpointer data, guint probability, GstCaps *caps)
- {
- MyTypeFind *find = (MyTypeFind *) data;
- if (probability &gt; find->probability) {
- find->probability = probability;
- gst_caps_replace (&amp;find->caps, caps);
- }
- }
- static GstCaps *
- find_type (guint8 *data, guint size)
- {
- GList *walk, *type_list;
- MyTypeFind find = {data, size, 0, NULL};
- GstTypeFind gst_find = {my_peek, my_suggest, &amp;find, };
- walk = type_list = gst_type_find_factory_get_list ();
- while (walk) {
- GstTypeFindFactory *factory = GST_TYPE_FIND_FACTORY (walk->data);
- walk = g_list_next (walk)
- gst_type_find_factory_call_function (factory, &amp;gst_find);
- }
- g_list_free (type_list);
- return find.caps;
- };
- ]|</doc>
- <function name="get_list" c:identifier="gst_type_find_factory_get_list">
- <doc xml:space="preserve">Gets the list of all registered typefind factories. You must free the
- list using gst_plugin_feature_list_free().
- The returned factories are sorted by highest rank first, and then by
- factory name.
- Free-function: gst_plugin_feature_list_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the list of all
- registered #GstTypeFindFactory.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="TypeFindFactory"/>
- </type>
- </return-value>
- </function>
- <method name="call_function"
- c:identifier="gst_type_find_factory_call_function">
- <doc xml:space="preserve">Calls the #GstTypeFindFunction associated with this factory.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTypeFindFactory</doc>
- <type name="TypeFindFactory" c:type="GstTypeFindFactory*"/>
- </instance-parameter>
- <parameter name="find" transfer-ownership="none">
- <doc xml:space="preserve">a properly setup #GstTypeFind entry. The get_data
- and suggest_type members must be set.</doc>
- <type name="TypeFind" c:type="GstTypeFind*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_caps" c:identifier="gst_type_find_factory_get_caps">
- <doc xml:space="preserve">Gets the #GstCaps associated with a typefind factory.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps associated with this factory</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTypeFindFactory</doc>
- <type name="TypeFindFactory" c:type="GstTypeFindFactory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_extensions"
- c:identifier="gst_type_find_factory_get_extensions">
- <doc xml:space="preserve">Gets the extensions associated with a #GstTypeFindFactory. The returned
- array should not be changed. If you need to change stuff in it, you should
- copy it using g_strdupv(). This function may return %NULL to indicate
- a 0-length list.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">
- a %NULL-terminated array of extensions associated with this factory</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTypeFindFactory</doc>
- <type name="TypeFindFactory" c:type="GstTypeFindFactory*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_function"
- c:identifier="gst_type_find_factory_has_function">
- <doc xml:space="preserve">Check whether the factory has a typefind function. Typefind factories
- without typefind functions are a last-effort fallback mechanism to
- e.g. assume a certain media type based on the file extension.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the factory has a typefind functions set, otherwise %FALSE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTypeFindFactory</doc>
- <type name="TypeFindFactory" c:type="GstTypeFindFactory*"/>
- </instance-parameter>
- </parameters>
- </method>
- </class>
- <record name="TypeFindFactoryClass"
- c:type="GstTypeFindFactoryClass"
- disguised="1"
- glib:is-gtype-struct-for="TypeFindFactory">
- </record>
- <callback name="TypeFindFunction" c:type="GstTypeFindFunction">
- <doc xml:space="preserve">A function that will be called by typefinding.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="find" transfer-ownership="none">
- <doc xml:space="preserve">A #GstTypeFind structure</doc>
- <type name="TypeFind" c:type="GstTypeFind*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="1">
- <doc xml:space="preserve">optional data to pass to the function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="TypeFindProbability"
- glib:type-name="GstTypeFindProbability"
- glib:get-type="gst_type_find_probability_get_type"
- c:type="GstTypeFindProbability">
- <doc xml:space="preserve">The probability of the typefind function. Higher values have more certainty
- in doing a reliable typefind.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_TYPE_FIND_NONE"
- glib:nick="none">
- <doc xml:space="preserve">type undetected.</doc>
- </member>
- <member name="minimum"
- value="1"
- c:identifier="GST_TYPE_FIND_MINIMUM"
- glib:nick="minimum">
- <doc xml:space="preserve">unlikely typefind.</doc>
- </member>
- <member name="possible"
- value="50"
- c:identifier="GST_TYPE_FIND_POSSIBLE"
- glib:nick="possible">
- <doc xml:space="preserve">possible type detected.</doc>
- </member>
- <member name="likely"
- value="80"
- c:identifier="GST_TYPE_FIND_LIKELY"
- glib:nick="likely">
- <doc xml:space="preserve">likely a type was detected.</doc>
- </member>
- <member name="nearly_certain"
- value="99"
- c:identifier="GST_TYPE_FIND_NEARLY_CERTAIN"
- glib:nick="nearly-certain">
- <doc xml:space="preserve">nearly certain that a type was detected.</doc>
- </member>
- <member name="maximum"
- value="100"
- c:identifier="GST_TYPE_FIND_MAXIMUM"
- glib:nick="maximum">
- <doc xml:space="preserve">very certain a type was detected.</doc>
- </member>
- </enumeration>
- <enumeration name="URIError"
- glib:type-name="GstURIError"
- glib:get-type="gst_uri_error_get_type"
- c:type="GstURIError"
- glib:error-domain="gst-uri-error-quark">
- <doc xml:space="preserve">Different URI-related errors that can occur.</doc>
- <member name="unsupported_protocol"
- value="0"
- c:identifier="GST_URI_ERROR_UNSUPPORTED_PROTOCOL"
- glib:nick="unsupported-protocol">
- <doc xml:space="preserve">The protocol is not supported</doc>
- </member>
- <member name="bad_uri"
- value="1"
- c:identifier="GST_URI_ERROR_BAD_URI"
- glib:nick="bad-uri">
- <doc xml:space="preserve">There was a problem with the URI</doc>
- </member>
- <member name="bad_state"
- value="2"
- c:identifier="GST_URI_ERROR_BAD_STATE"
- glib:nick="bad-state">
- <doc xml:space="preserve">Could not set or change the URI because the
- URI handler was in a state where that is not possible or not permitted</doc>
- </member>
- <member name="bad_reference"
- value="3"
- c:identifier="GST_URI_ERROR_BAD_REFERENCE"
- glib:nick="bad-reference">
- <doc xml:space="preserve">There was a problem with the entity that
- the URI references</doc>
- </member>
- <function name="quark" c:identifier="gst_uri_error_quark">
- <return-value transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- </enumeration>
- <interface name="URIHandler"
- c:symbol-prefix="uri_handler"
- c:type="GstURIHandler"
- glib:type-name="GstURIHandler"
- glib:get-type="gst_uri_handler_get_type"
- glib:type-struct="URIHandlerInterface">
- <doc xml:space="preserve">The #GstURIHandler is an interface that is implemented by Source and Sink
- #GstElement to unify handling of URI.
- An application can use the following functions to quickly get an element
- that handles the given URI for reading or writing
- (gst_element_make_from_uri()).
- Source and Sink plugins should implement this interface when possible.</doc>
- <virtual-method name="get_uri" invoker="get_uri">
- <doc xml:space="preserve">Gets the currently handled URI.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the URI currently handled by
- the @handler. Returns %NULL if there are no URI currently
- handled. The returned string must be freed with g_free() when no
- longer needed.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="handler" transfer-ownership="none">
- <doc xml:space="preserve">A #GstURIHandler</doc>
- <type name="URIHandler" c:type="GstURIHandler*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_uri" invoker="set_uri" throws="1">
- <doc xml:space="preserve">Tries to set the URI of the given handler.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the URI was set successfully, else %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="handler" transfer-ownership="none">
- <doc xml:space="preserve">A #GstURIHandler</doc>
- <type name="URIHandler" c:type="GstURIHandler*"/>
- </instance-parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">URI to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_protocols"
- c:identifier="gst_uri_handler_get_protocols">
- <doc xml:space="preserve">Gets the list of protocols supported by @handler. This list may not be
- modified.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the
- supported protocols. Returns %NULL if the @handler isn't
- implemented properly, or the @handler doesn't support any
- protocols.</doc>
- <array c:type="const gchar* const*">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="handler" transfer-ownership="none">
- <doc xml:space="preserve">A #GstURIHandler.</doc>
- <type name="URIHandler" c:type="GstURIHandler*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_uri" c:identifier="gst_uri_handler_get_uri">
- <doc xml:space="preserve">Gets the currently handled URI.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the URI currently handled by
- the @handler. Returns %NULL if there are no URI currently
- handled. The returned string must be freed with g_free() when no
- longer needed.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="handler" transfer-ownership="none">
- <doc xml:space="preserve">A #GstURIHandler</doc>
- <type name="URIHandler" c:type="GstURIHandler*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_uri_type" c:identifier="gst_uri_handler_get_uri_type">
- <doc xml:space="preserve">Gets the type of the given URI handler</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstURIType of the URI handler.
- Returns #GST_URI_UNKNOWN if the @handler isn't implemented correctly.</doc>
- <type name="URIType" c:type="GstURIType"/>
- </return-value>
- <parameters>
- <instance-parameter name="handler" transfer-ownership="none">
- <doc xml:space="preserve">A #GstURIHandler.</doc>
- <type name="URIHandler" c:type="GstURIHandler*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_uri" c:identifier="gst_uri_handler_set_uri" throws="1">
- <doc xml:space="preserve">Tries to set the URI of the given handler.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the URI was set successfully, else %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="handler" transfer-ownership="none">
- <doc xml:space="preserve">A #GstURIHandler</doc>
- <type name="URIHandler" c:type="GstURIHandler*"/>
- </instance-parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">URI to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="URIHandlerInterface"
- c:type="GstURIHandlerInterface"
- glib:is-gtype-struct-for="URIHandler">
- <doc xml:space="preserve">Any #GstElement using this interface should implement these methods.</doc>
- <field name="parent">
- <doc xml:space="preserve">The parent interface type</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="get_type">
- <callback name="get_type">
- <return-value transfer-ownership="none">
- <type name="URIType" c:type="GstURIType"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_protocols">
- <callback name="get_protocols">
- <return-value transfer-ownership="none">
- <array c:type="const gchar* const*">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_uri">
- <callback name="get_uri">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the URI currently handled by
- the @handler. Returns %NULL if there are no URI currently
- handled. The returned string must be freed with g_free() when no
- longer needed.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="handler" transfer-ownership="none">
- <doc xml:space="preserve">A #GstURIHandler</doc>
- <type name="URIHandler" c:type="GstURIHandler*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_uri">
- <callback name="set_uri" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the URI was set successfully, else %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="handler" transfer-ownership="none">
- <doc xml:space="preserve">A #GstURIHandler</doc>
- <type name="URIHandler" c:type="GstURIHandler*"/>
- </parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">URI to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <enumeration name="URIType"
- glib:type-name="GstURIType"
- glib:get-type="gst_uri_type_get_type"
- c:type="GstURIType">
- <doc xml:space="preserve">The different types of URI direction.</doc>
- <member name="unknown"
- value="0"
- c:identifier="GST_URI_UNKNOWN"
- glib:nick="unknown">
- <doc xml:space="preserve">The URI direction is unknown</doc>
- </member>
- <member name="sink"
- value="1"
- c:identifier="GST_URI_SINK"
- glib:nick="sink">
- <doc xml:space="preserve">The URI is a consumer.</doc>
- </member>
- <member name="src" value="2" c:identifier="GST_URI_SRC" glib:nick="src">
- <doc xml:space="preserve">The URI is a producer.</doc>
- </member>
- </enumeration>
- <constant name="URI_NO_PORT" value="0" c:type="GST_URI_NO_PORT">
- <doc xml:space="preserve">Value for #GstUri<!-- -->.port to indicate no port number.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="USECOND" value="1000" c:type="GST_USECOND">
- <doc xml:space="preserve">Constant that defines one GStreamer microsecond.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <record name="Uri"
- c:type="GstUri"
- glib:type-name="GstUri"
- glib:get-type="gst_uri_get_type"
- c:symbol-prefix="uri">
- <doc xml:space="preserve">A #GstUri object can be used to parse and split a URI string into its
- constituant parts. Two #GstUri objects can be joined to make a new #GstUri
- using the algorithm described in RFC3986.</doc>
- <constructor name="new" c:identifier="gst_uri_new" version="1.6">
- <doc xml:space="preserve">Creates a new #GstUri object with the given URI parts. The path and query
- strings will be broken down into their elements. All strings should not be
- escaped except where indicated.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A new #GstUri object.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </return-value>
- <parameters>
- <parameter name="scheme"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The scheme for the new URI.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="userinfo"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The user-info for the new URI.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="host"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The host name for the new URI.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="port" transfer-ownership="none">
- <doc xml:space="preserve">The port number for the new URI or %GST_URI_NO_PORT.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="path"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The path for the new URI with '/' separating path
- elements.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="query"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The query string for the new URI with '&' separating
- query elements. Elements containing '&' characters
- should encode them as "&percnt;26".</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="fragment"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The fragment name for the new URI.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="append_path"
- c:identifier="gst_uri_append_path"
- version="1.6">
- <doc xml:space="preserve">Append a path onto the end of the path in the URI. The path is not
- normalized, call #gst_uri_normalize() to normalize the path.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the path was appended successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to modify.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="relative_path" transfer-ownership="none">
- <doc xml:space="preserve">Relative path to append to the end of the current path.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="append_path_segment"
- c:identifier="gst_uri_append_path_segment"
- version="1.6">
- <doc xml:space="preserve">Append a single path segment onto the end of the URI path.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the path was appended successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to modify.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="path_segment" transfer-ownership="none">
- <doc xml:space="preserve">The path segment string to append to the URI path.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="equal" c:identifier="gst_uri_equal" version="1.6">
- <doc xml:space="preserve">Compares two #GstUri objects to see if they represent the same normalized
- URI.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the normalized versions of the two URI's would be equal.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="first" transfer-ownership="none">
- <doc xml:space="preserve">First #GstUri to compare.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- <parameter name="second" transfer-ownership="none">
- <doc xml:space="preserve">Second #GstUri to compare.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </parameter>
- </parameters>
- </method>
- <method name="from_string_with_base"
- c:identifier="gst_uri_from_string_with_base"
- version="1.6">
- <doc xml:space="preserve">Like gst_uri_from_string() but also joins with a base URI.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A new #GstUri object.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </return-value>
- <parameters>
- <instance-parameter name="base"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The base URI to join the new URI with.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">The URI string to parse.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_fragment"
- c:identifier="gst_uri_get_fragment"
- version="1.6">
- <doc xml:space="preserve">Get the fragment name from the URI or %NULL if it doesn't exist.
- If @uri is %NULL then returns %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The host name from the #GstUri object or %NULL.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">This #GstUri object.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_host" c:identifier="gst_uri_get_host" version="1.6">
- <doc xml:space="preserve">Get the host name from the URI or %NULL if it doesn't exist.
- If @uri is %NULL then returns %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The host name from the #GstUri object or %NULL.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">This #GstUri object.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_path" c:identifier="gst_uri_get_path" version="1.6">
- <doc xml:space="preserve">Extract the path string from the URI object.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The path from the URI. Once finished with the
- string should be g_free()'d.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">The #GstUri to get the path from.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_path_segments"
- c:identifier="gst_uri_get_path_segments"
- version="1.6">
- <doc xml:space="preserve">Get a list of path segments from the URI.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GList of path segment
- strings or %NULL if no path segments are available. Free the list
- when no longer needed with g_list_free_full(list, g_free).</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="utf8"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to get the path from.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_path_string"
- c:identifier="gst_uri_get_path_string"
- version="1.6">
- <doc xml:space="preserve">Extract the path string from the URI object as a percent encoded URI path.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The path from the URI. Once finished with the
- string should be g_free()'d.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">The #GstUri to get the path from.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_port" c:identifier="gst_uri_get_port" version="1.6">
- <doc xml:space="preserve">Get the port number from the URI or %GST_URI_NO_PORT if it doesn't exist.
- If @uri is %NULL then returns %GST_URI_NO_PORT.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The port number from the #GstUri object or %GST_URI_NO_PORT.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">This #GstUri object.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_query_keys"
- c:identifier="gst_uri_get_query_keys"
- version="1.6">
- <doc xml:space="preserve">Get a list of the query keys from the URI.</doc>
- <return-value transfer-ownership="container">
- <doc xml:space="preserve">A list of keys from
- the URI query. Free the list with g_list_free().</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="utf8"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to examine.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_query_string"
- c:identifier="gst_uri_get_query_string"
- version="1.6">
- <doc xml:space="preserve">Get a percent encoded URI query string from the @uri.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A percent encoded query string. Use g_free() when
- no longer needed.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to get the query string from.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_query_table"
- c:identifier="gst_uri_get_query_table"
- version="1.6">
- <doc xml:space="preserve">Get the query table from the URI. Keys and values in the table are freed
- with g_free when they are deleted. A value may be %NULL to indicate that
- the key should appear in the query string in the URI, but does not have a
- value. Free the returned #GHashTable with #g_hash_table_unref() when it is
- no longer required. Modifying this hash table will modify the query in the
- URI.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The query hash table
- from the URI.</doc>
- <type name="GLib.HashTable" c:type="GHashTable*">
- <type name="utf8"/>
- <type name="utf8"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to get the query table from.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_query_value"
- c:identifier="gst_uri_get_query_value"
- version="1.6">
- <doc xml:space="preserve">Get the value associated with the @query_key key. Will return %NULL if the
- key has no value or if the key does not exist in the URI query table. Because
- %NULL is returned for both missing keys and keys with no value, you should
- use gst_uri_query_has_key() to determine if a key is present in the URI
- query.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The value for the given key, or %NULL if not found.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to examine.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- <parameter name="query_key" transfer-ownership="none">
- <doc xml:space="preserve">The key to lookup.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_scheme" c:identifier="gst_uri_get_scheme">
- <doc xml:space="preserve">Get the scheme name from the URI or %NULL if it doesn't exist.
- If @uri is %NULL then returns %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The scheme from the #GstUri object or %NULL.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">This #GstUri object.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_userinfo"
- c:identifier="gst_uri_get_userinfo"
- version="1.6">
- <doc xml:space="preserve">Get the userinfo (usually in the form "username:password") from the URI
- or %NULL if it doesn't exist. If @uri is %NULL then returns %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The userinfo from the #GstUri object or %NULL.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">This #GstUri object.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_normalized"
- c:identifier="gst_uri_is_normalized"
- version="1.6">
- <doc xml:space="preserve">Tests the @uri to see if it is normalized. A %NULL @uri is considered to be
- normalized.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if the URI is normalized or is %NULL.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">The #GstUri to test to see if it is normalized.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_writable"
- c:identifier="gst_uri_is_writable"
- version="1.6">
- <doc xml:space="preserve">Check if it is safe to write to this #GstUri.
- Check if the refcount of @uri is exactly 1, meaning that no other
- reference exists to the #GstUri and that the #GstUri is therefore writable.
- Modification of a #GstUri should only be done after verifying that it is
- writable.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if it is safe to write to the object.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">The #GstUri object to test.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="join" c:identifier="gst_uri_join" version="1.6">
- <doc xml:space="preserve">Join a reference URI onto a base URI using the method from RFC 3986.
- If either URI is %NULL then the other URI will be returned with the ref count
- increased.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GstUri which represents the base with the
- reference URI joined on.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </return-value>
- <parameters>
- <instance-parameter name="base_uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The base URI to join another to.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="ref_uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The reference URI to join onto the
- base URI.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </parameter>
- </parameters>
- </method>
- <method name="make_writable"
- c:identifier="gst_uri_make_writable"
- version="1.6">
- <doc xml:space="preserve">Make the #GstUri writable.
- Checks if @uri is writable, and if so the original object is returned. If
- not, then a writable copy is made and returned. This gives away the
- reference to @uri and returns a reference to the new #GstUri.
- If @uri is %NULL then %NULL is returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A writable version of @uri.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri" transfer-ownership="full">
- <doc xml:space="preserve">The #GstUri object to make writable.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="new_with_base"
- c:identifier="gst_uri_new_with_base"
- version="1.6">
- <doc xml:space="preserve">Like gst_uri_new(), but joins the new URI onto a base URI.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new URI joined onto @base.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </return-value>
- <parameters>
- <instance-parameter name="base"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The base URI to join the new URI to.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="scheme"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The scheme for the new URI.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="userinfo"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The user-info for the new URI.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="host"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The host name for the new URI.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="port" transfer-ownership="none">
- <doc xml:space="preserve">The port number for the new URI or %GST_URI_NO_PORT.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="path"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The path for the new URI with '/' separating path
- elements.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="query"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The query string for the new URI with '&' separating
- query elements. Elements containing '&' characters
- should encode them as "&percnt;26".</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="fragment"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The fragment name for the new URI.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="normalize" c:identifier="gst_uri_normalize" version="1.6">
- <doc xml:space="preserve">Normalization will remove extra path segments ("." and "..") from the URI. It
- will also convert the scheme and host name to lower case and any
- percent-encoded values to uppercase.
- The #GstUri object must be writable. Check with gst_uri_is_writable() or use
- gst_uri_make_writable() first.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if the URI was modified.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">The #GstUri to normalize.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="query_has_key"
- c:identifier="gst_uri_query_has_key"
- version="1.6">
- <doc xml:space="preserve">Check if there is a query table entry for the @query_key key.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @query_key exists in the URI query table.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to examine.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- <parameter name="query_key" transfer-ownership="none">
- <doc xml:space="preserve">The key to lookup.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_query_key"
- c:identifier="gst_uri_remove_query_key"
- version="1.6">
- <doc xml:space="preserve">Remove an entry from the query table by key.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the key existed in the table and was removed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to modify.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="query_key" transfer-ownership="none">
- <doc xml:space="preserve">The key to remove.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_fragment"
- c:identifier="gst_uri_set_fragment"
- version="1.6">
- <doc xml:space="preserve">Sets the fragment string in the URI. Use a value of %NULL in @fragment to
- unset the fragment string.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the fragment was set/unset successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to modify.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="fragment"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The fragment string to set.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_host" c:identifier="gst_uri_set_host" version="1.6">
- <doc xml:space="preserve">Set or unset the host for the URI.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the host was set/unset successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to modify.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="host" transfer-ownership="none">
- <doc xml:space="preserve">The new host string to set or %NULL to unset.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_path" c:identifier="gst_uri_set_path" version="1.6">
- <doc xml:space="preserve">Sets or unsets the path in the URI.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the path was set successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to modify.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">The new path to set with path segments separated by '/', or use %NULL
- to unset the path.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_path_segments"
- c:identifier="gst_uri_set_path_segments"
- version="1.6">
- <doc xml:space="preserve">Replace the path segments list in the URI.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the path segments were set successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to modify.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="path_segments"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The new
- path list to set.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="utf8"/>
- </type>
- </parameter>
- </parameters>
- </method>
- <method name="set_path_string"
- c:identifier="gst_uri_set_path_string"
- version="1.6">
- <doc xml:space="preserve">Sets or unsets the path in the URI.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the path was set successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to modify.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">The new percent encoded path to set with path segments separated by
- '/', or use %NULL to unset the path.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_port" c:identifier="gst_uri_set_port" version="1.6">
- <doc xml:space="preserve">Set or unset the port number for the URI.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the port number was set/unset successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to modify.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="port" transfer-ownership="none">
- <doc xml:space="preserve">The new port number to set or %GST_URI_NO_PORT to unset.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_query_string"
- c:identifier="gst_uri_set_query_string"
- version="1.6">
- <doc xml:space="preserve">Sets or unsets the query table in the URI.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query table was set successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to modify.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">The new percent encoded query string to use to populate the query
- table, or use %NULL to unset the query table.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_query_table"
- c:identifier="gst_uri_set_query_table"
- version="1.6">
- <doc xml:space="preserve">Set the query table to use in the URI. The old table is unreferenced and a
- reference to the new one is used instead. A value if %NULL for @query_table
- will remove the query string from the URI.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the new table was sucessfully used for the query table.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to modify.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="query_table"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The new
- query table to use.</doc>
- <type name="GLib.HashTable" c:type="GHashTable*">
- <type name="utf8"/>
- <type name="utf8"/>
- </type>
- </parameter>
- </parameters>
- </method>
- <method name="set_query_value"
- c:identifier="gst_uri_set_query_value"
- version="1.6">
- <doc xml:space="preserve">This inserts or replaces a key in the query table. A @query_value of %NULL
- indicates that the key has no associated value, but will still be present in
- the query string.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query table was sucessfully updated.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to modify.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="query_key" transfer-ownership="none">
- <doc xml:space="preserve">The key for the query entry.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="query_value"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The value for the key.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_scheme"
- c:identifier="gst_uri_set_scheme"
- version="1.6">
- <doc xml:space="preserve">Set or unset the scheme for the URI.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the scheme was set/unset successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to modify.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="scheme" transfer-ownership="none">
- <doc xml:space="preserve">The new scheme to set or %NULL to unset the scheme.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_userinfo"
- c:identifier="gst_uri_set_userinfo"
- version="1.6">
- <doc xml:space="preserve">Set or unset the user information for the URI.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the user information was set/unset successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GstUri to modify.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </instance-parameter>
- <parameter name="userinfo" transfer-ownership="none">
- <doc xml:space="preserve">The new user-information string to set or %NULL to unset.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_string" c:identifier="gst_uri_to_string" version="1.6">
- <doc xml:space="preserve">Convert the URI to a string.
- Returns the URI as held in this object as a #gchar* nul-terminated string.
- The caller should g_free() the string once they are finished with it.
- The string is put together as described in RFC 3986.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The string version of the URI.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">This #GstUri to convert to a string.</doc>
- <type name="Uri" c:type="const GstUri*"/>
- </instance-parameter>
- </parameters>
- </method>
- <function name="construct" c:identifier="gst_uri_construct">
- <doc xml:space="preserve">Constructs a URI for a given valid protocol and location.
- Free-function: g_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new string for this URI. Returns %NULL if the
- given URI protocol is not valid, or the given location is %NULL.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">Protocol for URI</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="location" transfer-ownership="none">
- <doc xml:space="preserve">Location for URI</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="from_string"
- c:identifier="gst_uri_from_string"
- version="1.6">
- <doc xml:space="preserve">Parses a URI string into a new #GstUri object. Will return NULL if the URI
- cannot be parsed.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">A new #GstUri object, or NULL.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">The URI string to parse.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_location" c:identifier="gst_uri_get_location">
- <doc xml:space="preserve">Extracts the location out of a given valid URI, ie. the protocol and "://"
- are stripped from the URI, which means that the location returned includes
- the hostname if one is specified. The returned string must be freed using
- g_free().
- Free-function: g_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the location for this URI. Returns %NULL if the
- URI isn't valid. If the URI does not contain a location, an empty
- string is returned.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">A URI string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_protocol" c:identifier="gst_uri_get_protocol">
- <doc xml:space="preserve">Extracts the protocol out of a given valid URI. The returned string must be
- freed using g_free().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The protocol for this URI.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">A URI string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="has_protocol" c:identifier="gst_uri_has_protocol">
- <doc xml:space="preserve">Checks if the protocol of a given valid URI matches @protocol.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the protocol matches.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">a URI string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">a protocol string (e.g. "http")</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="is_valid" c:identifier="gst_uri_is_valid">
- <doc xml:space="preserve">Tests if the given string is a valid URI identifier. URIs start with a valid
- scheme followed by ":" and maybe a string identifying the location.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the string is a valid URI</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">A URI string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="join_strings"
- c:identifier="gst_uri_join_strings"
- version="1.6">
- <doc xml:space="preserve">This is a convenience function to join two URI strings and return the result.
- The returned string should be g_free()'d after use.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A string representing the percent-encoded join of
- the two URIs.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="base_uri" transfer-ownership="none">
- <doc xml:space="preserve">The percent-encoded base URI.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="ref_uri" transfer-ownership="none">
- <doc xml:space="preserve">The percent-encoded reference URI to join to the @base_uri.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="protocol_is_supported"
- c:identifier="gst_uri_protocol_is_supported">
- <doc xml:space="preserve">Checks if an element exists that supports the given URI protocol. Note
- that a positive return value does not imply that a subsequent call to
- gst_element_make_from_uri() is guaranteed to work.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">Whether to check for a source or a sink</doc>
- <type name="URIType" c:type="const GstURIType"/>
- </parameter>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">Protocol that should be checked for (e.g. "http" or "smb")</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="protocol_is_valid"
- c:identifier="gst_uri_protocol_is_valid">
- <doc xml:space="preserve">Tests if the given string is a valid protocol identifier. Protocols
- must consist of alphanumeric characters, '+', '-' and '.' and must
- start with a alphabetic character. See RFC 3986 Section 3.1.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the string is a valid protocol identifier, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">A string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <constant name="VALUE_EQUAL" value="0" c:type="GST_VALUE_EQUAL">
- <doc xml:space="preserve">Indicates that the first value provided to a comparison function
- (gst_value_compare()) is equal to the second one.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VALUE_GREATER_THAN"
- value="1"
- c:type="GST_VALUE_GREATER_THAN">
- <doc xml:space="preserve">Indicates that the first value provided to a comparison function
- (gst_value_compare()) is greater than the second one.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VALUE_LESS_THAN" value="-1" c:type="GST_VALUE_LESS_THAN">
- <doc xml:space="preserve">Indicates that the first value provided to a comparison function
- (gst_value_compare()) is lesser than the second one.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VALUE_UNORDERED" value="2" c:type="GST_VALUE_UNORDERED">
- <doc xml:space="preserve">Indicates that the comparison function (gst_value_compare()) can not
- determine a order for the two provided values.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VERSION_MAJOR" value="1" c:type="GST_VERSION_MAJOR">
- <doc xml:space="preserve">The major version of GStreamer at compile time:</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VERSION_MICRO" value="3" c:type="GST_VERSION_MICRO">
- <doc xml:space="preserve">The micro version of GStreamer at compile time:</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VERSION_MINOR" value="8" c:type="GST_VERSION_MINOR">
- <doc xml:space="preserve">The minor version of GStreamer at compile time:</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VERSION_NANO" value="0" c:type="GST_VERSION_NANO">
- <doc xml:space="preserve">The nano version of GStreamer at compile time:
- Actual releases have 0, GIT versions have 1, prerelease versions have 2-...</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <class name="ValueArray"
- c:symbol-prefix="value_array"
- c:type="GstValueArray"
- glib:type-name="GstValueArray"
- glib:get-type="gst_value_array_get_type"
- glib:fundamental="1">
- <function name="append_and_take_value"
- c:identifier="gst_value_array_append_and_take_value"
- version="1.2">
- <doc xml:space="preserve">Appends @append_value to the GstValueArray in @value.</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">a #GValue of type #GST_TYPE_ARRAY</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="append_value" transfer-ownership="full">
- <doc xml:space="preserve">the value to append</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="append_value"
- c:identifier="gst_value_array_append_value">
- <doc xml:space="preserve">Appends @append_value to the GstValueArray in @value.</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">a #GValue of type #GST_TYPE_ARRAY</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="append_value" transfer-ownership="none">
- <doc xml:space="preserve">the value to append</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_size" c:identifier="gst_value_array_get_size">
- <doc xml:space="preserve">Gets the number of values contained in @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of values</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a #GValue of type #GST_TYPE_ARRAY</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_value" c:identifier="gst_value_array_get_value">
- <doc xml:space="preserve">Gets the value that is a member of the array contained in @value and
- has the index @index.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the value at the given index</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a #GValue of type #GST_TYPE_ARRAY</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">index of value to get from the array</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="prepend_value"
- c:identifier="gst_value_array_prepend_value">
- <doc xml:space="preserve">Prepends @prepend_value to the GstValueArray in @value.</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">a #GValue of type #GST_TYPE_ARRAY</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="prepend_value" transfer-ownership="none">
- <doc xml:space="preserve">the value to prepend</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- </class>
- <callback name="ValueCompareFunc" c:type="GstValueCompareFunc">
- <doc xml:space="preserve">Used together with gst_value_compare() to compare #GValue items.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">one of GST_VALUE_LESS_THAN, GST_VALUE_EQUAL, GST_VALUE_GREATER_THAN
- or GST_VALUE_UNORDERED</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="value1" transfer-ownership="none">
- <doc xml:space="preserve">first value for comparison</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <doc xml:space="preserve">second value for comparison</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="ValueDeserializeFunc" c:type="GstValueDeserializeFunc">
- <doc xml:space="preserve">Used by gst_value_deserialize() to parse a non-binary form into the #GValue.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">a #GValue</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="s" transfer-ownership="none">
- <doc xml:space="preserve">a string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- <class name="ValueList"
- c:symbol-prefix="value_list"
- glib:type-name="GstValueList"
- glib:get-type="gst_value_list_get_type"
- glib:fundamental="1">
- <function name="append_and_take_value"
- c:identifier="gst_value_list_append_and_take_value"
- version="1.2">
- <doc xml:space="preserve">Appends @append_value to the GstValueList in @value.</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">a #GValue of type #GST_TYPE_LIST</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="append_value" transfer-ownership="full">
- <doc xml:space="preserve">the value to append</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="append_value" c:identifier="gst_value_list_append_value">
- <doc xml:space="preserve">Appends @append_value to the GstValueList in @value.</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">a #GValue of type #GST_TYPE_LIST</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="append_value" transfer-ownership="none">
- <doc xml:space="preserve">the value to append</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="concat" c:identifier="gst_value_list_concat">
- <doc xml:space="preserve">Concatenates copies of @value1 and @value2 into a list. Values that are not
- of type #GST_TYPE_LIST are treated as if they were lists of length 1.
- @dest will be initialized to the type #GST_TYPE_LIST.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="dest"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">an uninitialized #GValue to take the result</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value1" transfer-ownership="none">
- <doc xml:space="preserve">a #GValue</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <doc xml:space="preserve">a #GValue</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_size" c:identifier="gst_value_list_get_size">
- <doc xml:space="preserve">Gets the number of values contained in @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of values</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a #GValue of type #GST_TYPE_LIST</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_value" c:identifier="gst_value_list_get_value">
- <doc xml:space="preserve">Gets the value that is a member of the list contained in @value and
- has the index @index.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the value at the given index</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a #GValue of type #GST_TYPE_LIST</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <doc xml:space="preserve">index of value to get from the list</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="merge" c:identifier="gst_value_list_merge">
- <doc xml:space="preserve">Merges copies of @value1 and @value2. Values that are not
- of type #GST_TYPE_LIST are treated as if they were lists of length 1.
- The result will be put into @dest and will either be a list that will not
- contain any duplicates, or a non-list type (if @value1 and @value2
- were equal).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="dest"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">an uninitialized #GValue to take the result</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value1" transfer-ownership="none">
- <doc xml:space="preserve">a #GValue</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <doc xml:space="preserve">a #GValue</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="prepend_value"
- c:identifier="gst_value_list_prepend_value">
- <doc xml:space="preserve">Prepends @prepend_value to the GstValueList in @value.</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">a #GValue of type #GST_TYPE_LIST</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="prepend_value" transfer-ownership="none">
- <doc xml:space="preserve">the value to prepend</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- </class>
- <callback name="ValueSerializeFunc" c:type="GstValueSerializeFunc">
- <doc xml:space="preserve">Used by gst_value_serialize() to obtain a non-binary form of the #GValue.
- Free-function: g_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the string representation of the value</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="value1" transfer-ownership="none">
- <doc xml:space="preserve">a #GValue</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </callback>
- <record name="ValueTable" c:type="GstValueTable">
- <doc xml:space="preserve">VTable for the #GValue @type.</doc>
- <field name="type" writable="1">
- <doc xml:space="preserve">a #GType</doc>
- <type name="GType" c:type="GType"/>
- </field>
- <field name="compare" writable="1">
- <doc xml:space="preserve">a #GstValueCompareFunc</doc>
- <type name="ValueCompareFunc" c:type="GstValueCompareFunc"/>
- </field>
- <field name="serialize" writable="1">
- <doc xml:space="preserve">a #GstValueSerializeFunc</doc>
- <type name="ValueSerializeFunc" c:type="GstValueSerializeFunc"/>
- </field>
- <field name="deserialize" writable="1">
- <doc xml:space="preserve">a #GstValueDeserializeFunc</doc>
- <type name="ValueDeserializeFunc" c:type="GstValueDeserializeFunc"/>
- </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>
- <function name="buffer_get_max_memory"
- c:identifier="gst_buffer_get_max_memory"
- moved-to="Buffer.get_max_memory"
- version="1.2">
- <doc xml:space="preserve">Get the maximum amount of memory blocks that a buffer can hold. This is a
- compile time constant that can be queried with the function.
- When more memory blocks are added, existing memory blocks will be merged
- together to make room for the new block.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the maximum amount of memory blocks that a buffer can hold.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- </function>
- <function name="caps_features_from_string"
- c:identifier="gst_caps_features_from_string"
- moved-to="CapsFeatures.from_string"
- version="1.2">
- <doc xml:space="preserve">Creates a #GstCapsFeatures from a string representation.
- Free-function: gst_caps_features_free</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a new #GstCapsFeatures or
- %NULL when the string could not be parsed. Free with
- gst_caps_features_free() after use.</doc>
- <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
- </return-value>
- <parameters>
- <parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">a string representation of a #GstCapsFeatures.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="caps_from_string"
- c:identifier="gst_caps_from_string"
- moved-to="Caps.from_string">
- <doc xml:space="preserve">Converts @caps from a string representation.
- The current implementation of serialization will lead to unexpected results
- when there are nested #GstCaps / #GstStructure deeper than one level.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated #GstCaps</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <doc xml:space="preserve">a string to convert to #GstCaps</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="core_error_quark"
- c:identifier="gst_core_error_quark"
- moved-to="CoreError.quark">
- <return-value transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- <function name="debug_add_log_function"
- c:identifier="gst_debug_add_log_function">
- <doc xml:space="preserve">Adds the logging function to the list of logging functions.
- Be sure to use #G_GNUC_NO_INSTRUMENT on that function, it is needed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">the function to use</doc>
- <type name="LogFunction" c:type="GstLogFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">called when @user_data is not used anymore</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_bin_to_dot_data"
- c:identifier="gst_debug_bin_to_dot_data">
- <return-value transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </parameter>
- <parameter name="details" transfer-ownership="none">
- <type name="DebugGraphDetails" c:type="GstDebugGraphDetails"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_bin_to_dot_file"
- c:identifier="gst_debug_bin_to_dot_file">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </parameter>
- <parameter name="details" transfer-ownership="none">
- <type name="DebugGraphDetails" c:type="GstDebugGraphDetails"/>
- </parameter>
- <parameter name="file_name" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_bin_to_dot_file_with_ts"
- c:identifier="gst_debug_bin_to_dot_file_with_ts">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </parameter>
- <parameter name="details" transfer-ownership="none">
- <type name="DebugGraphDetails" c:type="GstDebugGraphDetails"/>
- </parameter>
- <parameter name="file_name" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_construct_term_color"
- c:identifier="gst_debug_construct_term_color">
- <doc xml:space="preserve">Constructs a string that can be used for getting the desired color in color
- terminals.
- You need to free the string after use.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string containing the color
- definition</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="colorinfo" transfer-ownership="none">
- <doc xml:space="preserve">the color info</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_construct_win_color"
- c:identifier="gst_debug_construct_win_color">
- <doc xml:space="preserve">Constructs an integer that can be used for getting the desired color in
- windows' terminals (cmd.exe). As there is no mean to underline, we simply
- ignore this attribute.
- This function returns 0 on non-windows machines.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an integer containing the color definition</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="colorinfo" transfer-ownership="none">
- <doc xml:space="preserve">the color info</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_get_all_categories"
- c:identifier="gst_debug_get_all_categories">
- <doc xml:space="preserve">Returns a snapshot of a all categories that are currently in use . This list
- may change anytime.
- The caller has to free the list after use.</doc>
- <return-value transfer-ownership="container">
- <doc xml:space="preserve">the list of
- debug categories</doc>
- <type name="GLib.SList" c:type="GSList*">
- <type name="DebugCategory"/>
- </type>
- </return-value>
- </function>
- <function name="debug_get_color_mode"
- c:identifier="gst_debug_get_color_mode"
- version="1.2">
- <doc xml:space="preserve">Changes the coloring mode for debug output.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">see @GstDebugColorMode for possible values.</doc>
- <type name="DebugColorMode" c:type="GstDebugColorMode"/>
- </return-value>
- </function>
- <function name="debug_get_default_threshold"
- c:identifier="gst_debug_get_default_threshold">
- <doc xml:space="preserve">Returns the default threshold that is used for new categories.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the default threshold level</doc>
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </return-value>
- </function>
- <function name="debug_is_active" c:identifier="gst_debug_is_active">
- <doc xml:space="preserve">Checks if debugging output is activated.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if debugging is activated</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- </function>
- <function name="debug_is_colored" c:identifier="gst_debug_is_colored">
- <doc xml:space="preserve">Checks if the debugging output should be colored.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if the debug output should be colored.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- </function>
- <function name="debug_level_get_name"
- c:identifier="gst_debug_level_get_name"
- moved-to="DebugLevel.get_name">
- <doc xml:space="preserve">Get the string representation of a debugging level</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="level" transfer-ownership="none">
- <doc xml:space="preserve">the level to get the name for</doc>
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_log" c:identifier="gst_debug_log" introspectable="0">
- <doc xml:space="preserve">Logs the given message using the currently registered debugging handlers.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="category" transfer-ownership="none">
- <doc xml:space="preserve">category to log</doc>
- <type name="DebugCategory" c:type="GstDebugCategory*"/>
- </parameter>
- <parameter name="level" transfer-ownership="none">
- <doc xml:space="preserve">level of the message is in</doc>
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </parameter>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">the file that emitted the message, usually the __FILE__ identifier</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="function" transfer-ownership="none">
- <doc xml:space="preserve">the function that emitted the message</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="line" transfer-ownership="none">
- <doc xml:space="preserve">the line from that the message was emitted, usually __LINE__</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the object this message relates to,
- or %NULL if none</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a printf style format string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">optional arguments for the format</doc>
- <varargs/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_log_default" c:identifier="gst_debug_log_default">
- <doc xml:space="preserve">The default logging handler used by GStreamer. Logging functions get called
- whenever a macro like GST_DEBUG or similar is used. By default this function
- is setup to output the message and additional info to stderr (or the log file
- specified via the GST_DEBUG_FILE environment variable) as received via
- @user_data.
- You can add other handlers by using gst_debug_add_log_function().
- And you can remove this handler by calling
- gst_debug_remove_log_function(gst_debug_log_default);</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="category" transfer-ownership="none">
- <doc xml:space="preserve">category to log</doc>
- <type name="DebugCategory" c:type="GstDebugCategory*"/>
- </parameter>
- <parameter name="level" transfer-ownership="none">
- <doc xml:space="preserve">level of the message</doc>
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </parameter>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">the file that emitted the message, usually the __FILE__ identifier</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="function" transfer-ownership="none">
- <doc xml:space="preserve">the function that emitted the message</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="line" transfer-ownership="none">
- <doc xml:space="preserve">the line from that the message was emitted, usually __LINE__</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the object this message relates to,
- or %NULL if none</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">the actual message</doc>
- <type name="DebugMessage" c:type="GstDebugMessage*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the FILE* to log to</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_log_valist"
- c:identifier="gst_debug_log_valist"
- introspectable="0">
- <doc xml:space="preserve">Logs the given message using the currently registered debugging handlers.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="category" transfer-ownership="none">
- <doc xml:space="preserve">category to log</doc>
- <type name="DebugCategory" c:type="GstDebugCategory*"/>
- </parameter>
- <parameter name="level" transfer-ownership="none">
- <doc xml:space="preserve">level of the message is in</doc>
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </parameter>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">the file that emitted the message, usually the __FILE__ identifier</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="function" transfer-ownership="none">
- <doc xml:space="preserve">the function that emitted the message</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="line" transfer-ownership="none">
- <doc xml:space="preserve">the line from that the message was emitted, usually __LINE__</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the object this message relates to,
- or %NULL if none</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a printf style format string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="args" transfer-ownership="none">
- <doc xml:space="preserve">optional arguments for the format</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_print_stack_trace"
- c:identifier="gst_debug_print_stack_trace">
- <doc xml:space="preserve">If GST_ENABLE_FUNC_INSTRUMENTATION is defined a stacktrace is available for
- gstreamer code, which can be printed with this function.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </function>
- <function name="debug_remove_log_function"
- c:identifier="gst_debug_remove_log_function">
- <doc xml:space="preserve">Removes all registered instances of the given logging functions.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">How many instances of the function were removed</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="func" transfer-ownership="none" scope="call">
- <doc xml:space="preserve">the log function to remove</doc>
- <type name="LogFunction" c:type="GstLogFunction"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_remove_log_function_by_data"
- c:identifier="gst_debug_remove_log_function_by_data">
- <doc xml:space="preserve">Removes all registered instances of log functions with the given user data.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">How many instances of the function were removed</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data of the log function to remove</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_set_active" c:identifier="gst_debug_set_active">
- <doc xml:space="preserve">If activated, debugging messages are sent to the debugging
- handlers.
- It makes sense to deactivate it for speed issues.
- <note><para>This function is not threadsafe. It makes sense to only call it
- during initialization.</para></note></doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="active" transfer-ownership="none">
- <doc xml:space="preserve">Whether to use debugging output or not</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_set_color_mode"
- c:identifier="gst_debug_set_color_mode"
- version="1.2">
- <doc xml:space="preserve">Changes the coloring mode for debug output.
- This function may be called before gst_init().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">The coloring mode for debug output. See @GstDebugColorMode.</doc>
- <type name="DebugColorMode" c:type="GstDebugColorMode"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_set_color_mode_from_string"
- c:identifier="gst_debug_set_color_mode_from_string"
- version="1.2">
- <doc xml:space="preserve">Changes the coloring mode for debug output.
- This function may be called before gst_init().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">The coloring mode for debug output. One of the following:
- "on", "auto", "off", "disable", "unix".</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_set_colored" c:identifier="gst_debug_set_colored">
- <doc xml:space="preserve">Sets or unsets the use of coloured debugging output.
- Same as gst_debug_set_color_mode () with the argument being
- being GST_DEBUG_COLOR_MODE_ON or GST_DEBUG_COLOR_MODE_OFF.
- This function may be called before gst_init().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="colored" transfer-ownership="none">
- <doc xml:space="preserve">Whether to use colored output or not</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_set_default_threshold"
- c:identifier="gst_debug_set_default_threshold">
- <doc xml:space="preserve">Sets the default threshold to the given level and updates all categories to
- use this threshold.
- This function may be called before gst_init().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="level" transfer-ownership="none">
- <doc xml:space="preserve">level to set</doc>
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_set_threshold_for_name"
- c:identifier="gst_debug_set_threshold_for_name">
- <doc xml:space="preserve">Sets all categories which match the given glob style pattern to the given
- level.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name of the categories to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="level" transfer-ownership="none">
- <doc xml:space="preserve">level to set them to</doc>
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_set_threshold_from_string"
- c:identifier="gst_debug_set_threshold_from_string"
- version="1.2">
- <doc xml:space="preserve">Sets the debug logging wanted in the same form as with the GST_DEBUG
- environment variable. You can use wildcards such as '*', but note that
- the order matters when you use wild cards, e.g. "foosrc:6,*src:3,*:2" sets
- everything to log level 2.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">comma-separated list of "category:level" pairs to be used
- as debug logging levels</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="reset" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to clear all previously-set debug levels before setting
- new thresholds
- %FALSE if adding the threshold described by @list to the one already set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_unset_threshold_for_name"
- c:identifier="gst_debug_unset_threshold_for_name">
- <doc xml:space="preserve">Resets all categories with the given name back to the default level.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name of the categories to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="deinit" c:identifier="gst_deinit">
- <doc xml:space="preserve">Clean up any resources created by GStreamer in gst_init().
- It is normally not needed to call this function in a normal application
- as the resources will automatically be freed when the program terminates.
- This function is therefore mostly used by testsuites and other memory
- profiling tools.
- After this call GStreamer (including this method) should not be used anymore.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </function>
- <function name="error_get_message" c:identifier="gst_error_get_message">
- <doc xml:space="preserve">Get a string describing the error message in the current locale.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated string describing
- the error message (in UTF-8 encoding)</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">the GStreamer error domain this error belongs to.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="code" transfer-ownership="none">
- <doc xml:space="preserve">the error code belonging to the domain.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="event_type_get_flags"
- c:identifier="gst_event_type_get_flags"
- moved-to="EventType.get_flags">
- <doc xml:space="preserve">Gets the #GstEventTypeFlags associated with @type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstEventTypeFlags.</doc>
- <type name="EventTypeFlags" c:type="GstEventTypeFlags"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GstEventType</doc>
- <type name="EventType" c:type="GstEventType"/>
- </parameter>
- </parameters>
- </function>
- <function name="event_type_get_name"
- c:identifier="gst_event_type_get_name"
- moved-to="EventType.get_name">
- <doc xml:space="preserve">Get a printable name for the given event type. Do not modify or free.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a reference to the static name of the event.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the event type</doc>
- <type name="EventType" c:type="GstEventType"/>
- </parameter>
- </parameters>
- </function>
- <function name="event_type_to_quark"
- c:identifier="gst_event_type_to_quark"
- moved-to="EventType.to_quark">
- <doc xml:space="preserve">Get the unique quark for the given event type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the quark associated with the event type</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the event type</doc>
- <type name="EventType" c:type="GstEventType"/>
- </parameter>
- </parameters>
- </function>
- <function name="filename_to_uri"
- c:identifier="gst_filename_to_uri"
- throws="1">
- <doc xml:space="preserve">Similar to g_filename_to_uri(), but attempts to handle relative file paths
- as well. Before converting @filename into an URI, it will be prefixed by
- the current working directory if it is a relative path, and then the path
- will be canonicalised so that it doesn't contain any './' or '../' segments.
- On Windows #filename should be in UTF-8 encoding.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">newly-allocated URI string, or NULL on error. The caller must
- free the URI string with g_free() when no longer needed.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="filename" transfer-ownership="none">
- <doc xml:space="preserve">absolute or relative file name path</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="flow_get_name" c:identifier="gst_flow_get_name">
- <doc xml:space="preserve">Gets a string representing the given flow return.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a static string with the name of the flow return.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="ret" transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn to get the name of.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </parameter>
- </parameters>
- </function>
- <function name="flow_to_quark" c:identifier="gst_flow_to_quark">
- <doc xml:space="preserve">Get the unique quark for the given GstFlowReturn.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the quark associated with the flow return or 0 if an
- invalid return was specified.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- <parameters>
- <parameter name="ret" transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn to get the quark of.</doc>
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </parameter>
- </parameters>
- </function>
- <function name="format_get_by_nick"
- c:identifier="gst_format_get_by_nick"
- moved-to="Format.get_by_nick">
- <doc xml:space="preserve">Return the format registered with the given nick.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The format with @nick or GST_FORMAT_UNDEFINED
- if the format was not registered.</doc>
- <type name="Format" c:type="GstFormat"/>
- </return-value>
- <parameters>
- <parameter name="nick" transfer-ownership="none">
- <doc xml:space="preserve">The nick of the format</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="format_get_details"
- c:identifier="gst_format_get_details"
- moved-to="Format.get_details">
- <doc xml:space="preserve">Get details about the given format.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">The #GstFormatDefinition for @format or %NULL
- on failure.
- MT safe.</doc>
- <type name="FormatDefinition" c:type="const GstFormatDefinition*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">The format to get details of</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </function>
- <function name="format_get_name"
- c:identifier="gst_format_get_name"
- moved-to="Format.get_name">
- <doc xml:space="preserve">Get a printable name for the given format. Do not modify or free.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a reference to the static name of the format
- or %NULL if the format is unknown.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstFormat</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </function>
- <function name="format_iterate_definitions"
- c:identifier="gst_format_iterate_definitions"
- moved-to="Format.iterate_definitions">
- <doc xml:space="preserve">Iterate all the registered formats. The format definition is read
- only.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a GstIterator of #GstFormatDefinition.</doc>
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- </function>
- <function name="format_register"
- c:identifier="gst_format_register"
- moved-to="Format.register">
- <doc xml:space="preserve">Create a new GstFormat based on the nick or return an
- already registered format with that nick.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A new GstFormat or an already registered format
- with the same nick.
- MT safe.</doc>
- <type name="Format" c:type="GstFormat"/>
- </return-value>
- <parameters>
- <parameter name="nick" transfer-ownership="none">
- <doc xml:space="preserve">The nick of the new format</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="description" transfer-ownership="none">
- <doc xml:space="preserve">The description of the new format</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="format_to_quark"
- c:identifier="gst_format_to_quark"
- moved-to="Format.to_quark">
- <doc xml:space="preserve">Get the unique quark for the given format.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the quark associated with the format or 0 if the format
- is unknown.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstFormat</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </function>
- <function name="formats_contains" c:identifier="gst_formats_contains">
- <doc xml:space="preserve">See if the given format is inside the format array.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the format is found inside the array</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="formats" transfer-ownership="none">
- <doc xml:space="preserve">The format array to search</doc>
- <array c:type="GstFormat*">
- <type name="Format" c:type="GstFormat"/>
- </array>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format to find</doc>
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </function>
- <function name="info_strdup_printf"
- c:identifier="gst_info_strdup_printf"
- version="1.8"
- introspectable="0">
- <doc xml:space="preserve">Allocates, fills and returns a null terminated string from the printf style
- @format string and corresponding arguments.
- See gst_info_vasprintf() for when this function is required.
- Free with g_free().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated null terminated string or %NULL on any error</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a printf style format string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">the printf arguments for @format</doc>
- <varargs/>
- </parameter>
- </parameters>
- </function>
- <function name="info_strdup_vprintf"
- c:identifier="gst_info_strdup_vprintf"
- version="1.8"
- introspectable="0">
- <doc xml:space="preserve">Allocates, fills and returns a null terminated string from the printf style
- @format string and @args.
- See gst_info_vasprintf() for when this function is required.
- Free with g_free().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated null terminated string or %NULL on any error</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a printf style format string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="args" transfer-ownership="none">
- <doc xml:space="preserve">the va_list of printf arguments for @format</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </function>
- <function name="info_vasprintf"
- c:identifier="gst_info_vasprintf"
- version="1.8"
- introspectable="0">
- <doc xml:space="preserve">Allocates and fills a string large enough (including the terminating null
- byte) to hold the specified printf style @format and @args.
- This function deals with the GStreamer specific printf specifiers
- #GST_PTR_FORMAT and #GST_SEGMENT_FORMAT. If you do not have these specifiers
- in your @format string, you do not need to use this function and can use
- alternatives such as g_vasprintf().
- Free @result with g_free().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the length of the string allocated into @result or -1 on any error</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="result"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">the resulting string</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a printf style format string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="args" transfer-ownership="none">
- <doc xml:space="preserve">the va_list of printf arguments for @format</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </function>
- <function name="init" c:identifier="gst_init">
- <doc xml:space="preserve">Initializes the GStreamer library, setting up internal path lists,
- registering built-in elements, and loading standard plugins.
- Unless the plugin registry is disabled at compile time, the registry will be
- loaded. By default this will also check if the registry cache needs to be
- updated and rescan all plugins if needed. See gst_update_registry() for
- details and section
- <link linkend="gst-running">Running GStreamer Applications</link>
- for how to disable automatic registry updates.
- <note><para>
- This function will terminate your program if it was unable to initialize
- GStreamer for some reason. If you want your program to fall back,
- use gst_init_check() instead.
- </para></note>
- WARNING: This function does not work in the same way as corresponding
- functions in other glib-style libraries, such as gtk_init\(\). In
- particular, unknown command line options cause this function to
- abort program execution.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="argc"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to application's argc</doc>
- <type name="gint" c:type="int*"/>
- </parameter>
- <parameter name="argv"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to application's argv</doc>
- <array length="0" zero-terminated="0" c:type="char**">
- <type name="utf8" c:type="char*"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="init_check" c:identifier="gst_init_check" throws="1">
- <doc xml:space="preserve">Initializes the GStreamer library, setting up internal path lists,
- registering built-in elements, and loading standard plugins.
- This function will return %FALSE if GStreamer could not be initialized
- for some reason. If you want your program to fail fatally,
- use gst_init() instead.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if GStreamer could be initialized.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="argc"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to application's argc</doc>
- <type name="gint" c:type="int*"/>
- </parameter>
- <parameter name="argv"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to application's argv</doc>
- <array length="0" zero-terminated="0" c:type="char**">
- <type name="utf8" c:type="char*"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="init_get_option_group"
- c:identifier="gst_init_get_option_group"
- introspectable="0">
- <doc xml:space="preserve">Returns a #GOptionGroup with GStreamer's argument specifications. The
- group is set up to use standard GOption callbacks, so when using this
- group in combination with GOption parsing methods, all argument parsing
- and initialization is automated.
- This function is useful if you want to integrate GStreamer with other
- libraries that use GOption (see g_option_context_add_group() ).
- If you use this function, you should make sure you initialise the GLib
- threading system as one of the very first things in your program
- (see the example at the beginning of this section).</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a pointer to GStreamer's option group.</doc>
- <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
- </return-value>
- </function>
- <function name="is_caps_features" c:identifier="gst_is_caps_features">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="obj"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="gpointer" c:type="gconstpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="is_initialized" c:identifier="gst_is_initialized">
- <doc xml:space="preserve">Use this function to check if GStreamer has been initialized with gst_init()
- or gst_init_check().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if initialization has been done, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- </function>
- <function name="library_error_quark"
- c:identifier="gst_library_error_quark"
- moved-to="LibraryError.quark">
- <return-value transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- <function name="message_type_get_name"
- c:identifier="gst_message_type_get_name"
- moved-to="MessageType.get_name">
- <doc xml:space="preserve">Get a printable name for the given message type. Do not modify or free.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a reference to the static name of the message.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the message type</doc>
- <type name="MessageType" c:type="GstMessageType"/>
- </parameter>
- </parameters>
- </function>
- <function name="message_type_to_quark"
- c:identifier="gst_message_type_to_quark"
- moved-to="MessageType.to_quark">
- <doc xml:space="preserve">Get the unique quark for the given message type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the quark associated with the message type</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the message type</doc>
- <type name="MessageType" c:type="GstMessageType"/>
- </parameter>
- </parameters>
- </function>
- <function name="meta_api_type_get_tags"
- c:identifier="gst_meta_api_type_get_tags"
- moved-to="Meta.api_type_get_tags"
- version="1.2">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an array of tags as strings.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="api" transfer-ownership="none">
- <doc xml:space="preserve">an API</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </function>
- <function name="meta_api_type_has_tag"
- c:identifier="gst_meta_api_type_has_tag"
- moved-to="Meta.api_type_has_tag">
- <doc xml:space="preserve">Check if @api was registered with @tag.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @api was registered with @tag.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="api" transfer-ownership="none">
- <doc xml:space="preserve">an API</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">the tag to check</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- </parameters>
- </function>
- <function name="meta_api_type_register"
- c:identifier="gst_meta_api_type_register"
- moved-to="Meta.api_type_register">
- <doc xml:space="preserve">Register and return a GType for the @api and associate it with
- @tags.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a unique GType for @api.</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <parameter name="api" transfer-ownership="none">
- <doc xml:space="preserve">an API to register</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="tags" transfer-ownership="none">
- <doc xml:space="preserve">tags for @api</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- </parameters>
- </function>
- <function name="meta_get_info"
- c:identifier="gst_meta_get_info"
- moved-to="Meta.get_info">
- <doc xml:space="preserve">Lookup a previously registered meta info structure by its implementation name
- @impl.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a #GstMetaInfo with @impl, or
- %NULL when no such metainfo exists.</doc>
- <type name="MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- <parameters>
- <parameter name="impl" transfer-ownership="none">
- <doc xml:space="preserve">the name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="meta_register"
- c:identifier="gst_meta_register"
- moved-to="Meta.register">
- <doc xml:space="preserve">Register a new #GstMeta implementation.
- The same @info can be retrieved later with gst_meta_get_info() by using
- @impl as the key.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstMetaInfo that can be used to access metadata.</doc>
- <type name="MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- <parameters>
- <parameter name="api" transfer-ownership="none">
- <doc xml:space="preserve">the type of the #GstMeta API</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="impl" transfer-ownership="none">
- <doc xml:space="preserve">the name of the #GstMeta implementation</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size of the #GstMeta structure</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="init_func" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">a #GstMetaInitFunction</doc>
- <type name="MetaInitFunction" c:type="GstMetaInitFunction"/>
- </parameter>
- <parameter name="free_func" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">a #GstMetaFreeFunction</doc>
- <type name="MetaFreeFunction" c:type="GstMetaFreeFunction"/>
- </parameter>
- <parameter name="transform_func"
- transfer-ownership="none"
- scope="async">
- <doc xml:space="preserve">a #GstMetaTransformFunction</doc>
- <type name="MetaTransformFunction"
- c:type="GstMetaTransformFunction"/>
- </parameter>
- </parameters>
- </function>
- <function name="mini_object_replace"
- c:identifier="gst_mini_object_replace"
- moved-to="MiniObject.replace">
- <doc xml:space="preserve">Atomically modifies a pointer to point to a new mini-object.
- The reference count of @olddata is decreased and the reference count of
- @newdata is increased.
- Either @newdata and the value pointed to by @olddata may be %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @newdata was different from @olddata</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="olddata"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to a pointer to a
- mini-object to be replaced</doc>
- <type name="MiniObject" c:type="GstMiniObject**"/>
- </parameter>
- <parameter name="newdata"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to new mini-object</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </parameter>
- </parameters>
- </function>
- <function name="mini_object_steal"
- c:identifier="gst_mini_object_steal"
- moved-to="MiniObject.steal"
- introspectable="0">
- <doc xml:space="preserve">Replace the current #GstMiniObject pointer to by @olddata with %NULL and
- return the old value.</doc>
- <return-value>
- <doc xml:space="preserve">the #GstMiniObject at @oldata</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </return-value>
- <parameters>
- <parameter name="olddata"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">pointer to a pointer to a mini-object to
- be stolen</doc>
- <type name="MiniObject" c:type="GstMiniObject**"/>
- </parameter>
- </parameters>
- </function>
- <function name="mini_object_take"
- c:identifier="gst_mini_object_take"
- moved-to="MiniObject.take">
- <doc xml:space="preserve">Modifies a pointer to point to a new mini-object. The modification
- is done atomically. This version is similar to gst_mini_object_replace()
- except that it does not increase the refcount of @newdata and thus
- takes ownership of @newdata.
- Either @newdata and the value pointed to by @olddata may be %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @newdata was different from @olddata</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="olddata"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">pointer to a pointer to a mini-object to
- be replaced</doc>
- <type name="MiniObject" c:type="GstMiniObject**"/>
- </parameter>
- <parameter name="newdata" transfer-ownership="none">
- <doc xml:space="preserve">pointer to new mini-object</doc>
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </parameter>
- </parameters>
- </function>
- <function name="pad_mode_get_name"
- c:identifier="gst_pad_mode_get_name"
- moved-to="PadMode.get_name">
- <doc xml:space="preserve">Return the name of a pad mode, for use in debug messages mostly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">short mnemonic for pad mode @mode</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the pad mode</doc>
- <type name="PadMode" c:type="GstPadMode"/>
- </parameter>
- </parameters>
- </function>
- <function name="param_spec_fraction"
- c:identifier="gst_param_spec_fraction">
- <doc xml:space="preserve">This function creates a fraction GParamSpec for use by objects/elements
- that want to expose properties of fraction type. This function is typically
- used in connection with g_object_class_install_property() in a GObjects's
- instance_init function.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly created parameter specification</doc>
- <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">canonical name of the property specified</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="nick" transfer-ownership="none">
- <doc xml:space="preserve">nick name for the property specified</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="blurb" transfer-ownership="none">
- <doc xml:space="preserve">description of the property specified</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="min_num" transfer-ownership="none">
- <doc xml:space="preserve">minimum value (fraction numerator)</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="min_denom" transfer-ownership="none">
- <doc xml:space="preserve">minimum value (fraction denominator)</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="max_num" transfer-ownership="none">
- <doc xml:space="preserve">maximum value (fraction numerator)</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="max_denom" transfer-ownership="none">
- <doc xml:space="preserve">maximum value (fraction denominator)</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="default_num" transfer-ownership="none">
- <doc xml:space="preserve">default value (fraction numerator)</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="default_denom" transfer-ownership="none">
- <doc xml:space="preserve">default value (fraction denominator)</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags for the property specified</doc>
- <type name="GObject.ParamFlags" c:type="GParamFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="parent_buffer_meta_api_get_type"
- c:identifier="gst_parent_buffer_meta_api_get_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </function>
- <function name="parent_buffer_meta_get_info"
- c:identifier="gst_parent_buffer_meta_get_info"
- moved-to="ParentBufferMeta.get_info"
- version="1.6">
- <doc xml:space="preserve">Get the global #GstMetaInfo describing the #GstParentBufferMeta meta.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The #GstMetaInfo</doc>
- <type name="MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- </function>
- <function name="parse_bin_from_description"
- c:identifier="gst_parse_bin_from_description"
- throws="1">
- <doc xml:space="preserve">This is a convenience wrapper around gst_parse_launch() to create a
- #GstBin from a gst-launch-style pipeline description. See
- gst_parse_launch() and the gst-launch man page for details about the
- syntax. Ghost pads on the bin for unlinked source or sink pads
- within the bin can automatically be created (but only a maximum of
- one ghost pad for each direction will be created; if you expect
- multiple unlinked source pads or multiple unlinked sink pads
- and want them all ghosted, you will have to create the ghost pads
- yourself).</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a
- newly-created bin, or %NULL if an error occurred.</doc>
- <type name="Bin" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="bin_description" transfer-ownership="none">
- <doc xml:space="preserve">command line describing the bin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="ghost_unlinked_pads" transfer-ownership="none">
- <doc xml:space="preserve">whether to automatically create ghost pads
- for unlinked source or sink pads within the bin</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="parse_bin_from_description_full"
- c:identifier="gst_parse_bin_from_description_full"
- throws="1">
- <doc xml:space="preserve">This is a convenience wrapper around gst_parse_launch() to create a
- #GstBin from a gst-launch-style pipeline description. See
- gst_parse_launch() and the gst-launch man page for details about the
- syntax. Ghost pads on the bin for unlinked source or sink pads
- within the bin can automatically be created (but only a maximum of
- one ghost pad for each direction will be created; if you expect
- multiple unlinked source pads or multiple unlinked sink pads
- and want them all ghosted, you will have to create the ghost pads
- yourself).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a newly-created
- element, which is guaranteed to be a bin unless
- GST_FLAG_NO_SINGLE_ELEMENT_BINS was passed, or %NULL if an error
- occurred.</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="bin_description" transfer-ownership="none">
- <doc xml:space="preserve">command line describing the bin</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="ghost_unlinked_pads" transfer-ownership="none">
- <doc xml:space="preserve">whether to automatically create ghost pads
- for unlinked source or sink pads within the bin</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="context"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a parse context allocated with
- gst_parse_context_new(), or %NULL</doc>
- <type name="ParseContext" c:type="GstParseContext*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">parsing options, or #GST_PARSE_FLAG_NONE</doc>
- <type name="ParseFlags" c:type="GstParseFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="parse_error_quark"
- c:identifier="gst_parse_error_quark"
- moved-to="ParseError.quark">
- <doc xml:space="preserve">Get the error quark used by the parsing subsystem.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the quark of the parse errors.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- <function name="parse_launch" c:identifier="gst_parse_launch" throws="1">
- <doc xml:space="preserve">Create a new pipeline based on command line syntax.
- Please note that you might get a return value that is not %NULL even though
- the @error is set. In this case there was a recoverable parsing error and you
- can try to play the pipeline.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a new element on success, %NULL on failure. If
- more than one toplevel element is specified by the @pipeline_description,
- all elements are put into a #GstPipeline, which than is returned.</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="pipeline_description" transfer-ownership="none">
- <doc xml:space="preserve">the command line describing the pipeline</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="parse_launch_full"
- c:identifier="gst_parse_launch_full"
- throws="1">
- <doc xml:space="preserve">Create a new pipeline based on command line syntax.
- Please note that you might get a return value that is not %NULL even though
- the @error is set. In this case there was a recoverable parsing error and you
- can try to play the pipeline.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a new element on success, %NULL on failure. If
- more than one toplevel element is specified by the @pipeline_description,
- all elements are put into a #GstPipeline, which then is returned.</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="pipeline_description" transfer-ownership="none">
- <doc xml:space="preserve">the command line describing the pipeline</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="context"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a parse context allocated with
- gst_parse_context_new(), or %NULL</doc>
- <type name="ParseContext" c:type="GstParseContext*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">parsing options, or #GST_PARSE_FLAG_NONE</doc>
- <type name="ParseFlags" c:type="GstParseFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="parse_launchv" c:identifier="gst_parse_launchv" throws="1">
- <doc xml:space="preserve">Create a new element based on command line syntax.
- @error will contain an error message if an erroneous pipeline is specified.
- An error does not mean that the pipeline could not be constructed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a new element on success and %NULL on failure.</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="argv" transfer-ownership="none">
- <doc xml:space="preserve">null-terminated array of arguments</doc>
- <array c:type="gchar**">
- <type name="utf8" c:type="gchar*"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="parse_launchv_full"
- c:identifier="gst_parse_launchv_full"
- throws="1">
- <doc xml:space="preserve">Create a new element based on command line syntax.
- @error will contain an error message if an erroneous pipeline is specified.
- An error does not mean that the pipeline could not be constructed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a new element on success; on failure, either %NULL
- or a partially-constructed bin or element will be returned and @error will
- be set (unless you passed #GST_PARSE_FLAG_FATAL_ERRORS in @flags, then
- %NULL will always be returned on failure)</doc>
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="argv" transfer-ownership="none">
- <doc xml:space="preserve">null-terminated array of arguments</doc>
- <array c:type="gchar**">
- <type name="utf8" c:type="gchar*"/>
- </array>
- </parameter>
- <parameter name="context"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a parse context allocated with
- gst_parse_context_new(), or %NULL</doc>
- <type name="ParseContext" c:type="GstParseContext*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">parsing options, or #GST_PARSE_FLAG_NONE</doc>
- <type name="ParseFlags" c:type="GstParseFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="plugin_error_quark"
- c:identifier="gst_plugin_error_quark"
- moved-to="PluginError.quark">
- <doc xml:space="preserve">Get the error quark.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The error quark used in GError messages</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- <function name="poll_new"
- c:identifier="gst_poll_new"
- moved-to="Poll.new"
- introspectable="0">
- <doc xml:space="preserve">Create a new file descriptor set. If @controllable, it
- is possible to restart or flush a call to gst_poll_wait() with
- gst_poll_restart() and gst_poll_set_flushing() respectively.
- Free-function: gst_poll_free</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a new #GstPoll, or %NULL in
- case of an error. Free with gst_poll_free().</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </return-value>
- <parameters>
- <parameter name="controllable" transfer-ownership="none">
- <doc xml:space="preserve">whether it should be possible to control a wait.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="poll_new_timer"
- c:identifier="gst_poll_new_timer"
- moved-to="Poll.new_timer"
- introspectable="0">
- <doc xml:space="preserve">Create a new poll object that can be used for scheduling cancellable
- timeouts.
- A timeout is performed with gst_poll_wait(). Multiple timeouts can be
- performed from different threads.
- Free-function: gst_poll_free</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a new #GstPoll, or %NULL in
- case of an error. Free with gst_poll_free().</doc>
- <type name="Poll" c:type="GstPoll*"/>
- </return-value>
- </function>
- <function name="preset_get_app_dir"
- c:identifier="gst_preset_get_app_dir"
- moved-to="Preset.get_app_dir">
- <doc xml:space="preserve">Gets the directory for application specific presets if set by the
- application.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the directory or %NULL, don't free or modify
- the string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- </function>
- <function name="preset_set_app_dir"
- c:identifier="gst_preset_set_app_dir"
- moved-to="Preset.set_app_dir">
- <doc xml:space="preserve">Sets an extra directory as an absolute path that should be considered when
- looking for presets. Any presets in the application dir will shadow the
- system presets.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE for success, %FALSE if the dir already has been set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="app_dir" transfer-ownership="none">
- <doc xml:space="preserve">the application specific preset dir</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="protection_meta_api_get_type"
- c:identifier="gst_protection_meta_api_get_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </function>
- <function name="protection_meta_get_info"
- c:identifier="gst_protection_meta_get_info"
- moved-to="ProtectionMeta.get_info">
- <return-value transfer-ownership="none">
- <type name="MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- </function>
- <function name="protection_select_system"
- c:identifier="gst_protection_select_system"
- version="1.6">
- <doc xml:space="preserve">Iterates the supplied list of UUIDs and checks the GstRegistry for
- an element that supports one of the supplied UUIDs. If more than one
- element matches, the system ID of the highest ranked element is selected.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">One of the strings from @system_identifiers that
- indicates the highest ranked element that implements the protection system
- indicated by that system ID, or %NULL if no element has been found.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="system_identifiers" transfer-ownership="none">
- <doc xml:space="preserve">A null terminated array of strings
- that contains the UUID values of each protection system that is to be
- checked.</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- </parameters>
- </function>
- <function name="query_type_get_flags"
- c:identifier="gst_query_type_get_flags"
- moved-to="QueryType.get_flags">
- <doc xml:space="preserve">Gets the #GstQueryTypeFlags associated with @type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstQueryTypeFlags.</doc>
- <type name="QueryTypeFlags" c:type="GstQueryTypeFlags"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQueryType</doc>
- <type name="QueryType" c:type="GstQueryType"/>
- </parameter>
- </parameters>
- </function>
- <function name="query_type_get_name"
- c:identifier="gst_query_type_get_name"
- moved-to="QueryType.get_name">
- <doc xml:space="preserve">Get a printable name for the given query type. Do not modify or free.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a reference to the static name of the query.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the query type</doc>
- <type name="QueryType" c:type="GstQueryType"/>
- </parameter>
- </parameters>
- </function>
- <function name="query_type_to_quark"
- c:identifier="gst_query_type_to_quark"
- moved-to="QueryType.to_quark">
- <doc xml:space="preserve">Get the unique quark for the given query type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the quark associated with the query type</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the query type</doc>
- <type name="QueryType" c:type="GstQueryType"/>
- </parameter>
- </parameters>
- </function>
- <function name="resource_error_quark"
- c:identifier="gst_resource_error_quark"
- moved-to="ResourceError.quark">
- <return-value transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- <function name="segtrap_is_enabled" c:identifier="gst_segtrap_is_enabled">
- <doc xml:space="preserve">Some functions in the GStreamer core might install a custom SIGSEGV handler
- to better catch and report errors to the application. Currently this feature
- is enabled by default when loading plugins.
- Applications might want to disable this behaviour with the
- gst_segtrap_set_enabled() function. This is typically done if the application
- wants to install its own handler without GStreamer interfering.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if GStreamer is allowed to install a custom SIGSEGV handler.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- </function>
- <function name="segtrap_set_enabled"
- c:identifier="gst_segtrap_set_enabled">
- <doc xml:space="preserve">Applications might want to disable/enable the SIGSEGV handling of
- the GStreamer core. See gst_segtrap_is_enabled() for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="enabled" transfer-ownership="none">
- <doc xml:space="preserve">whether a custom SIGSEGV handler should be installed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="static_caps_get_type"
- c:identifier="gst_static_caps_get_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </function>
- <function name="static_pad_template_get_type"
- c:identifier="gst_static_pad_template_get_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </function>
- <function name="stream_error_quark"
- c:identifier="gst_stream_error_quark"
- moved-to="StreamError.quark">
- <return-value transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- <function name="structure_from_string"
- c:identifier="gst_structure_from_string"
- moved-to="Structure.from_string">
- <doc xml:space="preserve">Creates a #GstStructure from a string representation.
- If end is not %NULL, a pointer to the place inside the given string
- where parsing ended will be returned.
- Free-function: gst_structure_free</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a new #GstStructure or %NULL
- when the string could not be parsed. Free with
- gst_structure_free() after use.</doc>
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <doc xml:space="preserve">a string representation of a #GstStructure.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="end"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1"
- skip="1">
- <doc xml:space="preserve">pointer to store the end of the string in.</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_exists" c:identifier="gst_tag_exists">
- <doc xml:space="preserve">Checks if the given type is already registered.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the type is already registered</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">name of the tag</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_get_description"
- c:identifier="gst_tag_get_description">
- <doc xml:space="preserve">Returns the human-readable description of this tag, You must not change or
- free this string.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the human-readable description of this tag</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">the tag</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_get_flag" c:identifier="gst_tag_get_flag">
- <doc xml:space="preserve">Gets the flag of @tag.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the flag of this tag.</doc>
- <type name="TagFlag" c:type="GstTagFlag"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">the tag</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_get_nick" c:identifier="gst_tag_get_nick">
- <doc xml:space="preserve">Returns the human-readable name of this tag, You must not change or free
- this string.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the human-readable name of this tag</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">the tag</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_get_type" c:identifier="gst_tag_get_type">
- <doc xml:space="preserve">Gets the #GType used for this tag.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GType of this tag</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">the tag</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_is_fixed" c:identifier="gst_tag_is_fixed">
- <doc xml:space="preserve">Checks if the given tag is fixed. A fixed tag can only contain one value.
- Unfixed tags can contain lists of values.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if the given tag is fixed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to check</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_list_copy_value"
- c:identifier="gst_tag_list_copy_value"
- moved-to="TagList.copy_value">
- <doc xml:space="preserve">Copies the contents for the given tag into the value,
- merging multiple values into one if multiple values are associated
- with the tag.
- You must g_value_unset() the value after use.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
- given list.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">uninitialized #GValue to copy into</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">list to get the tag from</doc>
- <type name="TagList" c:type="const GstTagList*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <doc xml:space="preserve">tag to read out</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_merge_strings_with_comma"
- c:identifier="gst_tag_merge_strings_with_comma">
- <doc xml:space="preserve">This is a convenience function for the func argument of gst_tag_register().
- It concatenates all given strings using a comma. The tag must be registered
- as a G_TYPE_STRING or this function will fail.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="dest"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">uninitialized GValue to store result in</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">GValue to copy from</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_merge_use_first"
- c:identifier="gst_tag_merge_use_first">
- <doc xml:space="preserve">This is a convenience function for the func argument of gst_tag_register().
- It creates a copy of the first value from the list.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="dest"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">uninitialized GValue to store result in</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">GValue to copy from</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_register" c:identifier="gst_tag_register">
- <doc xml:space="preserve">Registers a new tag type for the use with GStreamer's type system. If a type
- with that name is already registered, that one is used.
- The old registration may have used a different type however. So don't rely
- on your supplied values.
- Important: if you do not supply a merge function the implication will be
- that there can only be one single value for this tag in a tag list and
- any additional values will silently be discarded when being added (unless
- #GST_TAG_MERGE_REPLACE, #GST_TAG_MERGE_REPLACE_ALL, or
- #GST_TAG_MERGE_PREPEND is used as merge mode, in which case the new
- value will replace the old one in the list).
- The merge function will be called from gst_tag_list_copy_value() when
- it is required that one or more values for a tag be condensed into
- one single value. This may happen from gst_tag_list_get_string(),
- gst_tag_list_get_int(), gst_tag_list_get_double() etc. What will happen
- exactly in that case depends on how the tag was registered and if a
- merge function was supplied and if so which one.
- Two default merge functions are provided: gst_tag_merge_use_first() and
- gst_tag_merge_strings_with_comma().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name or identifier string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flag" transfer-ownership="none">
- <doc xml:space="preserve">a flag describing the type of tag info</doc>
- <type name="TagFlag" c:type="GstTagFlag"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the type this data is in</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="nick" transfer-ownership="none">
- <doc xml:space="preserve">human-readable name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="blurb" transfer-ownership="none">
- <doc xml:space="preserve">a human-readable description about this tag</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="func"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="call">
- <doc xml:space="preserve">function for merging multiple values of this tag, or %NULL</doc>
- <type name="TagMergeFunc" c:type="GstTagMergeFunc"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_register_static"
- c:identifier="gst_tag_register_static">
- <doc xml:space="preserve">Registers a new tag type for the use with GStreamer's type system.
- Same as gst_tag_register(), but @name, @nick, and @blurb must be
- static strings or inlined strings, as they will not be copied. (GStreamer
- plugins will be made resident once loaded, so this function can be used
- even from dynamically loaded plugins.)</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name or identifier string (string constant)</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flag" transfer-ownership="none">
- <doc xml:space="preserve">a flag describing the type of tag info</doc>
- <type name="TagFlag" c:type="GstTagFlag"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the type this data is in</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="nick" transfer-ownership="none">
- <doc xml:space="preserve">human-readable name or short description (string constant)</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="blurb" transfer-ownership="none">
- <doc xml:space="preserve">a human-readable description for this tag (string constant)</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="func"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="call">
- <doc xml:space="preserve">function for merging multiple values of this tag, or %NULL</doc>
- <type name="TagMergeFunc" c:type="GstTagMergeFunc"/>
- </parameter>
- </parameters>
- </function>
- <function name="toc_entry_type_get_nick"
- c:identifier="gst_toc_entry_type_get_nick"
- moved-to="TocEntryType.get_nick">
- <doc xml:space="preserve">Converts @type to a string representation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Returns a human-readable string for @type. This string is
- only for debugging purpose and should not be displayed in a user
- interface.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTocEntryType.</doc>
- <type name="TocEntryType" c:type="GstTocEntryType"/>
- </parameter>
- </parameters>
- </function>
- <function name="type_find_get_type" c:identifier="gst_type_find_get_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </function>
- <function name="type_find_register"
- c:identifier="gst_type_find_register"
- moved-to="TypeFind.register">
- <doc xml:space="preserve">Registers a new typefind function to be used for typefinding. After
- registering this function will be available for typefinding.
- This function is typically called during an element's plugin initialization.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="plugin"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GstPlugin, or %NULL for a static typefind function</doc>
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The name for registering</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="rank" transfer-ownership="none">
- <doc xml:space="preserve">The rank (or importance) of this typefind function</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="notified"
- closure="6"
- destroy="7">
- <doc xml:space="preserve">The #GstTypeFindFunction to use</doc>
- <type name="TypeFindFunction" c:type="GstTypeFindFunction"/>
- </parameter>
- <parameter name="extensions"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Optional comma-separated list of extensions
- that could belong to this type</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="possible_caps" transfer-ownership="none">
- <doc xml:space="preserve">Optionally the caps that could be returned when typefinding
- succeeds</doc>
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Optional user data. This user data must be available until the plugin
- is unloaded.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="data_notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">a #GDestroyNotify that will be called on @data when the plugin
- is unloaded.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </function>
- <function name="update_registry" c:identifier="gst_update_registry">
- <doc xml:space="preserve">Forces GStreamer to re-scan its plugin paths and update the default
- plugin registry.
- Applications will almost never need to call this function, it is only
- useful if the application knows new plugins have been installed (or old
- ones removed) since the start of the application (or, to be precise, the
- first call to gst_init()) and the application wants to make use of any
- newly-installed plugins without restarting the application.
- Applications should assume that the registry update is neither atomic nor
- thread-safe and should therefore not have any dynamic pipelines running
- (including the playbin and decodebin elements) and should also not create
- any elements or access the GStreamer registry while the update is in
- progress.
- Note that this function may block for a significant amount of time.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the registry has been updated successfully (does not
- imply that there were changes), otherwise %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- </function>
- <function name="uri_construct"
- c:identifier="gst_uri_construct"
- moved-to="Uri.construct">
- <doc xml:space="preserve">Constructs a URI for a given valid protocol and location.
- Free-function: g_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new string for this URI. Returns %NULL if the
- given URI protocol is not valid, or the given location is %NULL.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">Protocol for URI</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="location" transfer-ownership="none">
- <doc xml:space="preserve">Location for URI</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="uri_error_quark"
- c:identifier="gst_uri_error_quark"
- moved-to="URIError.quark">
- <return-value transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- <function name="uri_from_string"
- c:identifier="gst_uri_from_string"
- moved-to="Uri.from_string"
- version="1.6">
- <doc xml:space="preserve">Parses a URI string into a new #GstUri object. Will return NULL if the URI
- cannot be parsed.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">A new #GstUri object, or NULL.</doc>
- <type name="Uri" c:type="GstUri*"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">The URI string to parse.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="uri_get_location"
- c:identifier="gst_uri_get_location"
- moved-to="Uri.get_location">
- <doc xml:space="preserve">Extracts the location out of a given valid URI, ie. the protocol and "://"
- are stripped from the URI, which means that the location returned includes
- the hostname if one is specified. The returned string must be freed using
- g_free().
- Free-function: g_free</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the location for this URI. Returns %NULL if the
- URI isn't valid. If the URI does not contain a location, an empty
- string is returned.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">A URI string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="uri_get_protocol"
- c:identifier="gst_uri_get_protocol"
- moved-to="Uri.get_protocol">
- <doc xml:space="preserve">Extracts the protocol out of a given valid URI. The returned string must be
- freed using g_free().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The protocol for this URI.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">A URI string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="uri_has_protocol"
- c:identifier="gst_uri_has_protocol"
- moved-to="Uri.has_protocol">
- <doc xml:space="preserve">Checks if the protocol of a given valid URI matches @protocol.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the protocol matches.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">a URI string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">a protocol string (e.g. "http")</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="uri_is_valid"
- c:identifier="gst_uri_is_valid"
- moved-to="Uri.is_valid">
- <doc xml:space="preserve">Tests if the given string is a valid URI identifier. URIs start with a valid
- scheme followed by ":" and maybe a string identifying the location.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the string is a valid URI</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">A URI string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="uri_join_strings"
- c:identifier="gst_uri_join_strings"
- moved-to="Uri.join_strings"
- version="1.6">
- <doc xml:space="preserve">This is a convenience function to join two URI strings and return the result.
- The returned string should be g_free()'d after use.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A string representing the percent-encoded join of
- the two URIs.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="base_uri" transfer-ownership="none">
- <doc xml:space="preserve">The percent-encoded base URI.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="ref_uri" transfer-ownership="none">
- <doc xml:space="preserve">The percent-encoded reference URI to join to the @base_uri.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="uri_protocol_is_supported"
- c:identifier="gst_uri_protocol_is_supported"
- moved-to="Uri.protocol_is_supported">
- <doc xml:space="preserve">Checks if an element exists that supports the given URI protocol. Note
- that a positive return value does not imply that a subsequent call to
- gst_element_make_from_uri() is guaranteed to work.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">Whether to check for a source or a sink</doc>
- <type name="URIType" c:type="const GstURIType"/>
- </parameter>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">Protocol that should be checked for (e.g. "http" or "smb")</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="uri_protocol_is_valid"
- c:identifier="gst_uri_protocol_is_valid"
- moved-to="Uri.protocol_is_valid">
- <doc xml:space="preserve">Tests if the given string is a valid protocol identifier. Protocols
- must consist of alphanumeric characters, '+', '-' and '.' and must
- start with a alphabetic character. See RFC 3986 Section 3.1.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the string is a valid protocol identifier, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">A string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_array_binary_search"
- c:identifier="gst_util_array_binary_search">
- <doc xml:space="preserve">Searches inside @array for @search_data by using the comparison function
- @search_func. @array must be sorted ascending.
- As @search_data is always passed as second argument to @search_func it's
- not required that @search_data has the same type as the array elements.
- The complexity of this search function is O(log (num_elements)).</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">The address of the found
- element or %NULL if nothing was found</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="array"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the sorted input array</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="num_elements" transfer-ownership="none">
- <doc xml:space="preserve">number of elements in the array</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="element_size" transfer-ownership="none">
- <doc xml:space="preserve">size of every element in bytes</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="search_func"
- transfer-ownership="none"
- scope="call"
- closure="6">
- <doc xml:space="preserve">function to compare two elements, @search_data will always be passed as second argument</doc>
- <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
- </parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">search mode that should be used</doc>
- <type name="SearchMode" c:type="GstSearchMode"/>
- </parameter>
- <parameter name="search_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">element that should be found</doc>
- <type name="gpointer" c:type="gconstpointer"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data to pass to @search_func</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_double_to_fraction"
- c:identifier="gst_util_double_to_fraction">
- <doc xml:space="preserve">Transforms a #gdouble to a fraction and simplifies
- the result.</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">#gdouble to transform</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- <parameter name="dest_n"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">pointer to a #gint to hold the result numerator</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="dest_d"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">pointer to a #gint to hold the result denominator</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_dump_mem" c:identifier="gst_util_dump_mem">
- <doc xml:space="preserve">Dumps the memory block into a hex representation. Useful for debugging.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mem" transfer-ownership="none">
- <doc xml:space="preserve">a pointer to the memory to dump</doc>
- <type name="guint8" c:type="const guchar*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size of the memory block to dump</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_fraction_add" c:identifier="gst_util_fraction_add">
- <doc xml:space="preserve">Adds the fractions @a_n/@a_d and @b_n/@b_d and stores
- the result in @res_n and @res_d.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE on overflow, %TRUE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="a_n" transfer-ownership="none">
- <doc xml:space="preserve">Numerator of first value</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="a_d" transfer-ownership="none">
- <doc xml:space="preserve">Denominator of first value</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="b_n" transfer-ownership="none">
- <doc xml:space="preserve">Numerator of second value</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="b_d" transfer-ownership="none">
- <doc xml:space="preserve">Denominator of second value</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="res_n"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">Pointer to #gint to hold the result numerator</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="res_d"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">Pointer to #gint to hold the result denominator</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_fraction_compare"
- c:identifier="gst_util_fraction_compare">
- <doc xml:space="preserve">Compares the fractions @a_n/@a_d and @b_n/@b_d and returns
- -1 if a < b, 0 if a = b and 1 if a > b.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">-1 if a < b; 0 if a = b; 1 if a > b.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="a_n" transfer-ownership="none">
- <doc xml:space="preserve">Numerator of first value</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="a_d" transfer-ownership="none">
- <doc xml:space="preserve">Denominator of first value</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="b_n" transfer-ownership="none">
- <doc xml:space="preserve">Numerator of second value</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="b_d" transfer-ownership="none">
- <doc xml:space="preserve">Denominator of second value</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_fraction_multiply"
- c:identifier="gst_util_fraction_multiply">
- <doc xml:space="preserve">Multiplies the fractions @a_n/@a_d and @b_n/@b_d and stores
- the result in @res_n and @res_d.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE on overflow, %TRUE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="a_n" transfer-ownership="none">
- <doc xml:space="preserve">Numerator of first value</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="a_d" transfer-ownership="none">
- <doc xml:space="preserve">Denominator of first value</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="b_n" transfer-ownership="none">
- <doc xml:space="preserve">Numerator of second value</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="b_d" transfer-ownership="none">
- <doc xml:space="preserve">Denominator of second value</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="res_n"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">Pointer to #gint to hold the result numerator</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="res_d"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">Pointer to #gint to hold the result denominator</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_fraction_to_double"
- c:identifier="gst_util_fraction_to_double">
- <doc xml:space="preserve">Transforms a fraction to a #gdouble.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="src_n" transfer-ownership="none">
- <doc xml:space="preserve">Fraction numerator as #gint</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="src_d" transfer-ownership="none">
- <doc xml:space="preserve">Fraction denominator #gint</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="dest"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">pointer to a #gdouble for the result</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_gdouble_to_guint64"
- c:identifier="gst_util_gdouble_to_guint64">
- <return-value transfer-ownership="none">
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_get_timestamp" c:identifier="gst_util_get_timestamp">
- <doc xml:space="preserve">Get a timestamp as GstClockTime to be used for interval measurements.
- The timestamp should not be interpreted in any other way.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the timestamp</doc>
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- </function>
- <function name="util_greatest_common_divisor"
- c:identifier="gst_util_greatest_common_divisor">
- <doc xml:space="preserve">Calculates the greatest common divisor of @a
- and @b.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Greatest common divisor of @a and @b</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="a" transfer-ownership="none">
- <doc xml:space="preserve">First value as #gint</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="b" transfer-ownership="none">
- <doc xml:space="preserve">Second value as #gint</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_greatest_common_divisor_int64"
- c:identifier="gst_util_greatest_common_divisor_int64">
- <doc xml:space="preserve">Calculates the greatest common divisor of @a
- and @b.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Greatest common divisor of @a and @b</doc>
- <type name="gint64" c:type="gint64"/>
- </return-value>
- <parameters>
- <parameter name="a" transfer-ownership="none">
- <doc xml:space="preserve">First value as #gint64</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="b" transfer-ownership="none">
- <doc xml:space="preserve">Second value as #gint64</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_group_id_next" c:identifier="gst_util_group_id_next">
- <doc xml:space="preserve">Return a constantly incrementing group id.
- This function is used to generate a new group-id for the
- stream-start event.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A constantly incrementing unsigned integer, which might
- overflow back to 0 at some point.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- </function>
- <function name="util_guint64_to_gdouble"
- c:identifier="gst_util_guint64_to_gdouble">
- <return-value transfer-ownership="none">
- <type name="gdouble" c:type="gdouble"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="guint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_seqnum_compare"
- c:identifier="gst_util_seqnum_compare">
- <doc xml:space="preserve">Compare two sequence numbers, handling wraparound.
- The current implementation just returns (gint32)(@s1 - @s2).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A negative number if @s1 is before @s2, 0 if they are equal, or a
- positive number if @s1 is after @s2.</doc>
- <type name="gint32" c:type="gint32"/>
- </return-value>
- <parameters>
- <parameter name="s1" transfer-ownership="none">
- <doc xml:space="preserve">A sequence number.</doc>
- <type name="guint32" c:type="guint32"/>
- </parameter>
- <parameter name="s2" transfer-ownership="none">
- <doc xml:space="preserve">Another sequence number.</doc>
- <type name="guint32" c:type="guint32"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_seqnum_next" c:identifier="gst_util_seqnum_next">
- <doc xml:space="preserve">Return a constantly incrementing sequence number.
- This function is used internally to GStreamer to be able to determine which
- events and messages are "the same". For example, elements may set the seqnum
- on a segment-done message to be the same as that of the last seek event, to
- indicate that event and the message correspond to the same segment.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A constantly incrementing 32-bit unsigned integer, which might
- overflow back to 0 at some point. Use gst_util_seqnum_compare() to make sure
- you handle wraparound correctly.</doc>
- <type name="guint32" c:type="guint32"/>
- </return-value>
- </function>
- <function name="util_set_object_arg"
- c:identifier="gst_util_set_object_arg">
- <doc xml:space="preserve">Converts the string value to the type of the objects argument and
- sets the argument with it.
- Note that this function silently returns if @object has no property named
- @name or when @value cannot be converted to the type of the property.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object to set the argument of</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the argument to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the string value to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_set_value_from_string"
- c:identifier="gst_util_set_value_from_string">
- <doc xml:space="preserve">Converts the string to the type of the value and
- sets the value with it.
- Note that this function is dangerous as it does not return any indication
- if the conversion worked or not.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">the value to set</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value_str" transfer-ownership="none">
- <doc xml:space="preserve">the string to get the value from</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_uint64_scale" c:identifier="gst_util_uint64_scale">
- <doc xml:space="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
- underflows and without loss of precision.
- This function can potentially be very slow if val and num are both
- greater than G_MAXUINT32.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@val * @num / @denom. In the case of an overflow, this
- function returns G_MAXUINT64. If the result is not exactly
- representable as an integer it is truncated. See also
- gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil(),
- gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
- gst_util_uint64_scale_int_ceil().</doc>
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <parameter name="val" transfer-ownership="none">
- <doc xml:space="preserve">the number to scale</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="num" transfer-ownership="none">
- <doc xml:space="preserve">the numerator of the scale ratio</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="denom" transfer-ownership="none">
- <doc xml:space="preserve">the denominator of the scale ratio</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_uint64_scale_ceil"
- c:identifier="gst_util_uint64_scale_ceil">
- <doc xml:space="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
- underflows and without loss of precision.
- This function can potentially be very slow if val and num are both
- greater than G_MAXUINT32.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@val * @num / @denom. In the case of an overflow, this
- function returns G_MAXUINT64. If the result is not exactly
- representable as an integer, it is rounded up. See also
- gst_util_uint64_scale(), gst_util_uint64_scale_round(),
- gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
- gst_util_uint64_scale_int_ceil().</doc>
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <parameter name="val" transfer-ownership="none">
- <doc xml:space="preserve">the number to scale</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="num" transfer-ownership="none">
- <doc xml:space="preserve">the numerator of the scale ratio</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="denom" transfer-ownership="none">
- <doc xml:space="preserve">the denominator of the scale ratio</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_uint64_scale_int"
- c:identifier="gst_util_uint64_scale_int">
- <doc xml:space="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
- underflows and without loss of precision. @num must be non-negative and
- @denom must be positive.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@val * @num / @denom. In the case of an overflow, this
- function returns G_MAXUINT64. If the result is not exactly
- representable as an integer, it is truncated. See also
- gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil(),
- gst_util_uint64_scale(), gst_util_uint64_scale_round(),
- gst_util_uint64_scale_ceil().</doc>
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <parameter name="val" transfer-ownership="none">
- <doc xml:space="preserve">guint64 (such as a #GstClockTime) to scale.</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="num" transfer-ownership="none">
- <doc xml:space="preserve">numerator of the scale factor.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="denom" transfer-ownership="none">
- <doc xml:space="preserve">denominator of the scale factor.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_uint64_scale_int_ceil"
- c:identifier="gst_util_uint64_scale_int_ceil">
- <doc xml:space="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
- underflows and without loss of precision. @num must be non-negative and
- @denom must be positive.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@val * @num / @denom. In the case of an overflow, this
- function returns G_MAXUINT64. If the result is not exactly
- representable as an integer, it is rounded up. See also
- gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
- gst_util_uint64_scale(), gst_util_uint64_scale_round(),
- gst_util_uint64_scale_ceil().</doc>
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <parameter name="val" transfer-ownership="none">
- <doc xml:space="preserve">guint64 (such as a #GstClockTime) to scale.</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="num" transfer-ownership="none">
- <doc xml:space="preserve">numerator of the scale factor.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="denom" transfer-ownership="none">
- <doc xml:space="preserve">denominator of the scale factor.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_uint64_scale_int_round"
- c:identifier="gst_util_uint64_scale_int_round">
- <doc xml:space="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
- underflows and without loss of precision. @num must be non-negative and
- @denom must be positive.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@val * @num / @denom. In the case of an overflow, this
- function returns G_MAXUINT64. If the result is not exactly
- representable as an integer, it is rounded to the nearest integer
- (half-way cases are rounded up). See also gst_util_uint64_scale_int(),
- gst_util_uint64_scale_int_ceil(), gst_util_uint64_scale(),
- gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil().</doc>
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <parameter name="val" transfer-ownership="none">
- <doc xml:space="preserve">guint64 (such as a #GstClockTime) to scale.</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="num" transfer-ownership="none">
- <doc xml:space="preserve">numerator of the scale factor.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="denom" transfer-ownership="none">
- <doc xml:space="preserve">denominator of the scale factor.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_uint64_scale_round"
- c:identifier="gst_util_uint64_scale_round">
- <doc xml:space="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
- underflows and without loss of precision.
- This function can potentially be very slow if val and num are both
- greater than G_MAXUINT32.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@val * @num / @denom. In the case of an overflow, this
- function returns G_MAXUINT64. If the result is not exactly
- representable as an integer, it is rounded to the nearest integer
- (half-way cases are rounded up). See also gst_util_uint64_scale(),
- gst_util_uint64_scale_ceil(), gst_util_uint64_scale_int(),
- gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil().</doc>
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <parameter name="val" transfer-ownership="none">
- <doc xml:space="preserve">the number to scale</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="num" transfer-ownership="none">
- <doc xml:space="preserve">the numerator of the scale ratio</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="denom" transfer-ownership="none">
- <doc xml:space="preserve">the denominator of the scale ratio</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_can_compare" c:identifier="gst_value_can_compare">
- <doc xml:space="preserve">Determines if @value1 and @value2 can be compared.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the values can be compared</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="value1" transfer-ownership="none">
- <doc xml:space="preserve">a value to compare</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <doc xml:space="preserve">another value to compare</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_can_intersect"
- c:identifier="gst_value_can_intersect">
- <doc xml:space="preserve">Determines if intersecting two values will produce a valid result.
- Two values will produce a valid intersection if they have the same
- type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the values can intersect</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="value1" transfer-ownership="none">
- <doc xml:space="preserve">a value to intersect</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <doc xml:space="preserve">another value to intersect</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_can_subtract" c:identifier="gst_value_can_subtract">
- <doc xml:space="preserve">Checks if it's possible to subtract @subtrahend from @minuend.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a subtraction is possible</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="minuend" transfer-ownership="none">
- <doc xml:space="preserve">the value to subtract from</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="subtrahend" transfer-ownership="none">
- <doc xml:space="preserve">the value to subtract</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_can_union" c:identifier="gst_value_can_union">
- <doc xml:space="preserve">Determines if @value1 and @value2 can be non-trivially unioned.
- Any two values can be trivially unioned by adding both of them
- to a GstValueList. However, certain types have the possibility
- to be unioned in a simpler way. For example, an integer range
- and an integer can be unioned if the integer is a subset of the
- integer range. If there is the possibility that two values can
- be unioned, this function returns %TRUE.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if there is a function allowing the two values to
- be unioned.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="value1" transfer-ownership="none">
- <doc xml:space="preserve">a value to union</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <doc xml:space="preserve">another value to union</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_compare" c:identifier="gst_value_compare">
- <doc xml:space="preserve">Compares @value1 and @value2. If @value1 and @value2 cannot be
- compared, the function returns GST_VALUE_UNORDERED. Otherwise,
- if @value1 is greater than @value2, GST_VALUE_GREATER_THAN is returned.
- If @value1 is less than @value2, GST_VALUE_LESS_THAN is returned.
- If the values are equal, GST_VALUE_EQUAL is returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">comparison result</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="value1" transfer-ownership="none">
- <doc xml:space="preserve">a value to compare</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <doc xml:space="preserve">another value to compare</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_deserialize" c:identifier="gst_value_deserialize">
- <doc xml:space="preserve">Tries to deserialize a string into the type specified by the given GValue.
- If the operation succeeds, %TRUE is returned, %FALSE otherwise.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">#GValue to fill with contents of
- deserialization</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">string to deserialize</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_fixate" c:identifier="gst_value_fixate">
- <doc xml:space="preserve">Fixate @src into a new value @dest.
- For ranges, the first element is taken. For lists and arrays, the
- first item is fixated and returned.
- If @src is already fixed, this function returns %FALSE.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @dest contains a fixated version of @src.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">the #GValue destination</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">the #GValue to fixate</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_fraction_multiply"
- c:identifier="gst_value_fraction_multiply">
- <doc xml:space="preserve">Multiplies the two #GValue items containing a #GST_TYPE_FRACTION and sets
- @product to the product of the two fractions.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE in case of an error (like integer overflow), %TRUE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="product" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="factor1" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="factor2" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_fraction_subtract"
- c:identifier="gst_value_fraction_subtract">
- <doc xml:space="preserve">Subtracts the @subtrahend from the @minuend and sets @dest to the result.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE in case of an error (like integer overflow), %TRUE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="minuend" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="subtrahend" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_bitmask" c:identifier="gst_value_get_bitmask">
- <doc xml:space="preserve">Gets the bitmask specified by @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the bitmask.</doc>
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to #GST_TYPE_BITMASK</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_caps" c:identifier="gst_value_get_caps">
- <doc xml:space="preserve">Gets the contents of @value. The reference count of the returned
- #GstCaps will not be modified, therefore the caller must take one
- before getting rid of the @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the contents of @value</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to GST_TYPE_CAPS</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_caps_features"
- c:identifier="gst_value_get_caps_features">
- <doc xml:space="preserve">Gets the contents of @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the contents of @value</doc>
- <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to GST_TYPE_CAPS_FEATURES</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_double_range_max"
- c:identifier="gst_value_get_double_range_max">
- <doc xml:space="preserve">Gets the maximum of the range specified by @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the maximum of the range</doc>
- <type name="gdouble" c:type="gdouble"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to GST_TYPE_DOUBLE_RANGE</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_double_range_min"
- c:identifier="gst_value_get_double_range_min">
- <doc xml:space="preserve">Gets the minimum of the range specified by @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the minimum of the range</doc>
- <type name="gdouble" c:type="gdouble"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to GST_TYPE_DOUBLE_RANGE</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_flagset_flags"
- c:identifier="gst_value_get_flagset_flags"
- version="1.6">
- <doc xml:space="preserve">Retrieve the flags field of a GstFlagSet @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the flags field of the flagset instance.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FLAG_SET</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_flagset_mask"
- c:identifier="gst_value_get_flagset_mask"
- version="1.6">
- <doc xml:space="preserve">Retrieve the mask field of a GstFlagSet @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the mask field of the flagset instance.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FLAG_SET</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_fraction_denominator"
- c:identifier="gst_value_get_fraction_denominator">
- <doc xml:space="preserve">Gets the denominator of the fraction specified by @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the denominator of the fraction.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_fraction_numerator"
- c:identifier="gst_value_get_fraction_numerator">
- <doc xml:space="preserve">Gets the numerator of the fraction specified by @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the numerator of the fraction.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_fraction_range_max"
- c:identifier="gst_value_get_fraction_range_max">
- <doc xml:space="preserve">Gets the maximum of the range specified by @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the maximum of the range</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to GST_TYPE_FRACTION_RANGE</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_fraction_range_min"
- c:identifier="gst_value_get_fraction_range_min">
- <doc xml:space="preserve">Gets the minimum of the range specified by @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the minimum of the range</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to GST_TYPE_FRACTION_RANGE</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_int64_range_max"
- c:identifier="gst_value_get_int64_range_max">
- <doc xml:space="preserve">Gets the maximum of the range specified by @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the maximum of the range</doc>
- <type name="gint64" c:type="gint64"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to GST_TYPE_INT64_RANGE</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_int64_range_min"
- c:identifier="gst_value_get_int64_range_min">
- <doc xml:space="preserve">Gets the minimum of the range specified by @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the minimum of the range</doc>
- <type name="gint64" c:type="gint64"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to GST_TYPE_INT64_RANGE</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_int64_range_step"
- c:identifier="gst_value_get_int64_range_step">
- <doc xml:space="preserve">Gets the step of the range specified by @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the step of the range</doc>
- <type name="gint64" c:type="gint64"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to GST_TYPE_INT64_RANGE</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_int_range_max"
- c:identifier="gst_value_get_int_range_max">
- <doc xml:space="preserve">Gets the maximum of the range specified by @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the maximum of the range</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to GST_TYPE_INT_RANGE</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_int_range_min"
- c:identifier="gst_value_get_int_range_min">
- <doc xml:space="preserve">Gets the minimum of the range specified by @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the minimum of the range</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to GST_TYPE_INT_RANGE</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_int_range_step"
- c:identifier="gst_value_get_int_range_step">
- <doc xml:space="preserve">Gets the step of the range specified by @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the step of the range</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to GST_TYPE_INT_RANGE</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_structure"
- c:identifier="gst_value_get_structure">
- <doc xml:space="preserve">Gets the contents of @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the contents of @value</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a GValue initialized to GST_TYPE_STRUCTURE</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_init_and_copy"
- c:identifier="gst_value_init_and_copy">
- <doc xml:space="preserve">Initialises the target value to be of the same type as source and then copies
- the contents from source to target.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="dest"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">the target value</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">the source value</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_intersect" c:identifier="gst_value_intersect">
- <doc xml:space="preserve">Calculates the intersection of two values. If the values have
- a non-empty intersection, the value representing the intersection
- is placed in @dest, unless %NULL. If the intersection is non-empty,
- @dest is not modified.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the intersection is non-empty</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest"
- direction="out"
- caller-allocates="1"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">
- a uninitialized #GValue that will hold the calculated
- intersection value. May be %NULL if the resulting set if not
- needed.</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value1" transfer-ownership="none">
- <doc xml:space="preserve">a value to intersect</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <doc xml:space="preserve">another value to intersect</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_is_fixed" c:identifier="gst_value_is_fixed">
- <doc xml:space="preserve">Tests if the given GValue, if available in a GstStructure (or any other
- container) contains a "fixed" (which means: one value) or an "unfixed"
- (which means: multiple possible values, such as data lists or data
- ranges) value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">true if the value is "fixed".</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the #GValue to check</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_is_subset" c:identifier="gst_value_is_subset">
- <doc xml:space="preserve">Check that @value1 is a subset of @value2.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE is @value1 is a subset of @value2</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="value1" transfer-ownership="none">
- <doc xml:space="preserve">a #GValue</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <doc xml:space="preserve">a #GValue</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_register" c:identifier="gst_value_register">
- <doc xml:space="preserve">Registers functions to perform calculations on #GValue items of a given
- type. Each type can only be added once.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="table" transfer-ownership="none">
- <doc xml:space="preserve">structure containing functions to register</doc>
- <type name="ValueTable" c:type="const GstValueTable*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_serialize" c:identifier="gst_value_serialize">
- <doc xml:space="preserve">tries to transform the given @value into a string representation that allows
- getting back this string later on using gst_value_deserialize().
- Free-function: g_free</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the serialization for @value
- or %NULL if none exists</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a #GValue to serialize</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_bitmask" c:identifier="gst_value_set_bitmask">
- <doc xml:space="preserve">Sets @value to the bitmask specified by @bitmask.</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">a GValue initialized to #GST_TYPE_BITMASK</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="bitmask" transfer-ownership="none">
- <doc xml:space="preserve">the bitmask</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_caps" c:identifier="gst_value_set_caps">
- <doc xml:space="preserve">Sets the contents of @value to @caps. A reference to the
- provided @caps will be taken by the @value.</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">a GValue initialized to GST_TYPE_CAPS</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">the caps to set the value to</doc>
- <type name="Caps" c:type="const GstCaps*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_caps_features"
- c:identifier="gst_value_set_caps_features">
- <doc xml:space="preserve">Sets the contents of @value to @features.</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">a GValue initialized to GST_TYPE_CAPS_FEATURES</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="features" transfer-ownership="none">
- <doc xml:space="preserve">the features to set the value to</doc>
- <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_double_range"
- c:identifier="gst_value_set_double_range">
- <doc xml:space="preserve">Sets @value to the range specified by @start and @end.</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">a GValue initialized to GST_TYPE_DOUBLE_RANGE</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <doc xml:space="preserve">the start of the range</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- <parameter name="end" transfer-ownership="none">
- <doc xml:space="preserve">the end of the range</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_flagset"
- c:identifier="gst_value_set_flagset"
- version="1.6">
- <doc xml:space="preserve">Sets @value to the flags and mask values provided in @flags and @mask.
- The @flags value indicates the values of flags, the @mask represents
- which bits in the flag value have been set, and which are "don't care"</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">a GValue initialized to %GST_TYPE_FLAG_SET</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">The value of the flags set or unset</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="mask" transfer-ownership="none">
- <doc xml:space="preserve">The mask indicate which flags bits must match for comparisons</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_fraction" c:identifier="gst_value_set_fraction">
- <doc xml:space="preserve">Sets @value to the fraction specified by @numerator over @denominator.
- The fraction gets reduced to the smallest numerator and denominator,
- and if necessary the sign is moved to the numerator.</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">a GValue initialized to #GST_TYPE_FRACTION</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="numerator" transfer-ownership="none">
- <doc xml:space="preserve">the numerator of the fraction</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="denominator" transfer-ownership="none">
- <doc xml:space="preserve">the denominator of the fraction</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_fraction_range"
- c:identifier="gst_value_set_fraction_range">
- <doc xml:space="preserve">Sets @value to the range specified by @start and @end.</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">a GValue initialized to GST_TYPE_FRACTION_RANGE</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <doc xml:space="preserve">the start of the range (a GST_TYPE_FRACTION GValue)</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="end" transfer-ownership="none">
- <doc xml:space="preserve">the end of the range (a GST_TYPE_FRACTION GValue)</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_fraction_range_full"
- c:identifier="gst_value_set_fraction_range_full">
- <doc xml:space="preserve">Sets @value to the range specified by @numerator_start/@denominator_start
- and @numerator_end/@denominator_end.</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">a GValue initialized to GST_TYPE_FRACTION_RANGE</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="numerator_start" transfer-ownership="none">
- <doc xml:space="preserve">the numerator start of the range</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="denominator_start" transfer-ownership="none">
- <doc xml:space="preserve">the denominator start of the range</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="numerator_end" transfer-ownership="none">
- <doc xml:space="preserve">the numerator end of the range</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="denominator_end" transfer-ownership="none">
- <doc xml:space="preserve">the denominator end of the range</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_int64_range"
- c:identifier="gst_value_set_int64_range">
- <doc xml:space="preserve">Sets @value to the range specified by @start and @end.</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">a GValue initialized to GST_TYPE_INT64_RANGE</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <doc xml:space="preserve">the start of the range</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="end" transfer-ownership="none">
- <doc xml:space="preserve">the end of the range</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_int64_range_step"
- c:identifier="gst_value_set_int64_range_step">
- <doc xml:space="preserve">Sets @value to the range specified by @start, @end and @step.</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">a GValue initialized to GST_TYPE_INT64_RANGE</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <doc xml:space="preserve">the start of the range</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="end" transfer-ownership="none">
- <doc xml:space="preserve">the end of the range</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="step" transfer-ownership="none">
- <doc xml:space="preserve">the step of the range</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_int_range"
- c:identifier="gst_value_set_int_range">
- <doc xml:space="preserve">Sets @value to the range specified by @start and @end.</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">a GValue initialized to GST_TYPE_INT_RANGE</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <doc xml:space="preserve">the start of the range</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="end" transfer-ownership="none">
- <doc xml:space="preserve">the end of the range</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_int_range_step"
- c:identifier="gst_value_set_int_range_step">
- <doc xml:space="preserve">Sets @value to the range specified by @start, @end and @step.</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">a GValue initialized to GST_TYPE_INT_RANGE</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <doc xml:space="preserve">the start of the range</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="end" transfer-ownership="none">
- <doc xml:space="preserve">the end of the range</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="step" transfer-ownership="none">
- <doc xml:space="preserve">the step of the range</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_structure"
- c:identifier="gst_value_set_structure">
- <doc xml:space="preserve">Sets the contents of @value to @structure.</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">a GValue initialized to GST_TYPE_STRUCTURE</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="structure" transfer-ownership="none">
- <doc xml:space="preserve">the structure to set the value to</doc>
- <type name="Structure" c:type="const GstStructure*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_subtract" c:identifier="gst_value_subtract">
- <doc xml:space="preserve">Subtracts @subtrahend from @minuend and stores the result in @dest.
- Note that this means subtraction as in sets, not as in mathematics.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the subtraction is not empty</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the destination value
- for the result if the subtraction is not empty. May be %NULL,
- in which case the resulting set will not be computed, which can
- give a fair speedup.</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="minuend" transfer-ownership="none">
- <doc xml:space="preserve">the value to subtract from</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="subtrahend" transfer-ownership="none">
- <doc xml:space="preserve">the value to subtract</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_union" c:identifier="gst_value_union">
- <doc xml:space="preserve">Creates a GValue corresponding to the union of @value1 and @value2.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the union succeeded.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">the destination value</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value1" transfer-ownership="none">
- <doc xml:space="preserve">a value to union</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <doc xml:space="preserve">another value to union</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="version" c:identifier="gst_version">
- <doc xml:space="preserve">Gets the version number of the GStreamer library.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="major"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">pointer to a guint to store the major version number</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="minor"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">pointer to a guint to store the minor version number</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="micro"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">pointer to a guint to store the micro version number</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="nano"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">pointer to a guint to store the nano version number</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="version_string" c:identifier="gst_version_string">
- <doc xml:space="preserve">This function returns a string that is useful for describing this version
- of GStreamer to the outside world: user agent strings, logging, ...</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated string describing this version
- of GStreamer.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </function>
- </namespace>
- </repository>
|