ImageCompression.pas 425 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261
  1. {
  2. File: QuickTime/ImageCompression.h
  3. Contains: QuickTime Image Compression Interfaces.
  4. Version: QuickTime 7.7.1
  5. Copyright: © 1990-2012 by Apple Inc., all rights reserved
  6. Bugs?: For bug reports, consult the following page on
  7. the World Wide Web:
  8. http://bugs.freepascal.org
  9. }
  10. { Pascal Translation Updated: Jonas Maebe, <[email protected]>, October 2009 }
  11. { Pascal Translation Updated: Jonas Maebe, <[email protected]>, October 2012 }
  12. {
  13. Modified for use with Free Pascal
  14. Version 308
  15. Please report any bugs to <[email protected]>
  16. }
  17. {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
  18. {$mode macpas}
  19. {$packenum 1}
  20. {$macro on}
  21. {$inline on}
  22. {$calling mwpascal}
  23. unit ImageCompression;
  24. interface
  25. {$setc UNIVERSAL_INTERFACES_VERSION := $0400}
  26. {$setc GAP_INTERFACES_VERSION := $0308}
  27. {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
  28. {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
  29. {$endc}
  30. {$ifc defined CPUPOWERPC and defined CPUI386}
  31. {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
  32. {$endc}
  33. {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
  34. {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
  35. {$endc}
  36. {$ifc not defined __ppc__ and defined CPUPOWERPC32}
  37. {$setc __ppc__ := 1}
  38. {$elsec}
  39. {$setc __ppc__ := 0}
  40. {$endc}
  41. {$ifc not defined __ppc64__ and defined CPUPOWERPC64}
  42. {$setc __ppc64__ := 1}
  43. {$elsec}
  44. {$setc __ppc64__ := 0}
  45. {$endc}
  46. {$ifc not defined __i386__ and defined CPUI386}
  47. {$setc __i386__ := 1}
  48. {$elsec}
  49. {$setc __i386__ := 0}
  50. {$endc}
  51. {$ifc not defined __x86_64__ and defined CPUX86_64}
  52. {$setc __x86_64__ := 1}
  53. {$elsec}
  54. {$setc __x86_64__ := 0}
  55. {$endc}
  56. {$ifc not defined __arm__ and defined CPUARM}
  57. {$setc __arm__ := 1}
  58. {$elsec}
  59. {$setc __arm__ := 0}
  60. {$endc}
  61. {$ifc not defined __arm64__ and defined CPUAARCH64}
  62. {$setc __arm64__ := 1}
  63. {$elsec}
  64. {$setc __arm64__ := 0}
  65. {$endc}
  66. {$ifc defined cpu64}
  67. {$setc __LP64__ := 1}
  68. {$elsec}
  69. {$setc __LP64__ := 0}
  70. {$endc}
  71. {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
  72. {$error Conflicting definitions for __ppc__ and __i386__}
  73. {$endc}
  74. {$ifc defined __ppc__ and __ppc__}
  75. {$setc TARGET_CPU_PPC := TRUE}
  76. {$setc TARGET_CPU_PPC64 := FALSE}
  77. {$setc TARGET_CPU_X86 := FALSE}
  78. {$setc TARGET_CPU_X86_64 := FALSE}
  79. {$setc TARGET_CPU_ARM := FALSE}
  80. {$setc TARGET_CPU_ARM64 := FALSE}
  81. {$setc TARGET_OS_MAC := TRUE}
  82. {$setc TARGET_OS_IPHONE := FALSE}
  83. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  84. {$setc TARGET_OS_EMBEDDED := FALSE}
  85. {$elifc defined __ppc64__ and __ppc64__}
  86. {$setc TARGET_CPU_PPC := FALSE}
  87. {$setc TARGET_CPU_PPC64 := TRUE}
  88. {$setc TARGET_CPU_X86 := FALSE}
  89. {$setc TARGET_CPU_X86_64 := FALSE}
  90. {$setc TARGET_CPU_ARM := FALSE}
  91. {$setc TARGET_CPU_ARM64 := FALSE}
  92. {$setc TARGET_OS_MAC := TRUE}
  93. {$setc TARGET_OS_IPHONE := FALSE}
  94. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  95. {$setc TARGET_OS_EMBEDDED := FALSE}
  96. {$elifc defined __i386__ and __i386__}
  97. {$setc TARGET_CPU_PPC := FALSE}
  98. {$setc TARGET_CPU_PPC64 := FALSE}
  99. {$setc TARGET_CPU_X86 := TRUE}
  100. {$setc TARGET_CPU_X86_64 := FALSE}
  101. {$setc TARGET_CPU_ARM := FALSE}
  102. {$setc TARGET_CPU_ARM64 := FALSE}
  103. {$ifc defined(iphonesim)}
  104. {$setc TARGET_OS_MAC := FALSE}
  105. {$setc TARGET_OS_IPHONE := TRUE}
  106. {$setc TARGET_IPHONE_SIMULATOR := TRUE}
  107. {$elsec}
  108. {$setc TARGET_OS_MAC := TRUE}
  109. {$setc TARGET_OS_IPHONE := FALSE}
  110. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  111. {$endc}
  112. {$setc TARGET_OS_EMBEDDED := FALSE}
  113. {$elifc defined __x86_64__ and __x86_64__}
  114. {$setc TARGET_CPU_PPC := FALSE}
  115. {$setc TARGET_CPU_PPC64 := FALSE}
  116. {$setc TARGET_CPU_X86 := FALSE}
  117. {$setc TARGET_CPU_X86_64 := TRUE}
  118. {$setc TARGET_CPU_ARM := FALSE}
  119. {$setc TARGET_CPU_ARM64 := FALSE}
  120. {$ifc defined(iphonesim)}
  121. {$setc TARGET_OS_MAC := FALSE}
  122. {$setc TARGET_OS_IPHONE := TRUE}
  123. {$setc TARGET_IPHONE_SIMULATOR := TRUE}
  124. {$elsec}
  125. {$setc TARGET_OS_MAC := TRUE}
  126. {$setc TARGET_OS_IPHONE := FALSE}
  127. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  128. {$endc}
  129. {$setc TARGET_OS_EMBEDDED := FALSE}
  130. {$elifc defined __arm__ and __arm__}
  131. {$setc TARGET_CPU_PPC := FALSE}
  132. {$setc TARGET_CPU_PPC64 := FALSE}
  133. {$setc TARGET_CPU_X86 := FALSE}
  134. {$setc TARGET_CPU_X86_64 := FALSE}
  135. {$setc TARGET_CPU_ARM := TRUE}
  136. {$setc TARGET_CPU_ARM64 := FALSE}
  137. { will require compiler define when/if other Apple devices with ARM cpus ship }
  138. {$setc TARGET_OS_MAC := FALSE}
  139. {$setc TARGET_OS_IPHONE := TRUE}
  140. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  141. {$setc TARGET_OS_EMBEDDED := TRUE}
  142. {$elifc defined __arm64__ and __arm64__}
  143. {$setc TARGET_CPU_PPC := FALSE}
  144. {$setc TARGET_CPU_PPC64 := FALSE}
  145. {$setc TARGET_CPU_X86 := FALSE}
  146. {$setc TARGET_CPU_X86_64 := FALSE}
  147. {$setc TARGET_CPU_ARM := FALSE}
  148. {$setc TARGET_CPU_ARM64 := TRUE}
  149. { will require compiler define when/if other Apple devices with ARM cpus ship }
  150. {$setc TARGET_OS_MAC := FALSE}
  151. {$setc TARGET_OS_IPHONE := TRUE}
  152. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  153. {$setc TARGET_OS_EMBEDDED := TRUE}
  154. {$elsec}
  155. {$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ nor __arm64__ is defined.}
  156. {$endc}
  157. {$ifc defined __LP64__ and __LP64__ }
  158. {$setc TARGET_CPU_64 := TRUE}
  159. {$elsec}
  160. {$setc TARGET_CPU_64 := FALSE}
  161. {$endc}
  162. {$ifc defined FPC_BIG_ENDIAN}
  163. {$setc TARGET_RT_BIG_ENDIAN := TRUE}
  164. {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
  165. {$elifc defined FPC_LITTLE_ENDIAN}
  166. {$setc TARGET_RT_BIG_ENDIAN := FALSE}
  167. {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
  168. {$elsec}
  169. {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
  170. {$endc}
  171. {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
  172. {$setc CALL_NOT_IN_CARBON := FALSE}
  173. {$setc OLDROUTINENAMES := FALSE}
  174. {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
  175. {$setc OPAQUE_UPP_TYPES := TRUE}
  176. {$setc OTCARBONAPPLICATION := TRUE}
  177. {$setc OTKERNEL := FALSE}
  178. {$setc PM_USE_SESSION_APIS := TRUE}
  179. {$setc TARGET_API_MAC_CARBON := TRUE}
  180. {$setc TARGET_API_MAC_OS8 := FALSE}
  181. {$setc TARGET_API_MAC_OSX := TRUE}
  182. {$setc TARGET_CARBON := TRUE}
  183. {$setc TARGET_CPU_68K := FALSE}
  184. {$setc TARGET_CPU_MIPS := FALSE}
  185. {$setc TARGET_CPU_SPARC := FALSE}
  186. {$setc TARGET_OS_UNIX := FALSE}
  187. {$setc TARGET_OS_WIN32 := FALSE}
  188. {$setc TARGET_RT_MAC_68881 := FALSE}
  189. {$setc TARGET_RT_MAC_CFM := FALSE}
  190. {$setc TARGET_RT_MAC_MACHO := TRUE}
  191. {$setc TYPED_FUNCTION_POINTERS := TRUE}
  192. {$setc TYPE_BOOL := FALSE}
  193. {$setc TYPE_EXTENDED := FALSE}
  194. {$setc TYPE_LONGLONG := TRUE}
  195. uses MacTypes,Components,CGLTypes,ColorSyncDeprecated,CVBase,CVImageBuffer,CVPixelBuffer,CVPixelBufferPool,Files,Dialogs,OSUtils,QuickdrawTypes,QDOffscreen,CFBase,CFData,CFDictionary,CGContext,CGImage;
  196. {$endc} {not MACOSALLINCLUDE}
  197. {$ifc TARGET_OS_MAC}
  198. {$ALIGN MAC68K}
  199. type
  200. MatrixRecord = record
  201. matrix: array [0..2,0..2] of Fixed;
  202. end;
  203. MatrixRecordPtr = ^MatrixRecord;
  204. const
  205. kRawCodecType = FourCharCode('raw ');
  206. kCinepakCodecType = FourCharCode('cvid');
  207. kGraphicsCodecType = FourCharCode('smc ');
  208. kAnimationCodecType = FourCharCode('rle ');
  209. kVideoCodecType = FourCharCode('rpza');
  210. kComponentVideoCodecType = FourCharCode('yuv2');
  211. kJPEGCodecType = FourCharCode('jpeg');
  212. kMotionJPEGACodecType = FourCharCode('mjpa');
  213. kMotionJPEGBCodecType = FourCharCode('mjpb');
  214. kSGICodecType = FourCharCode('.SGI');
  215. kPlanarRGBCodecType = FourCharCode('8BPS');
  216. kMacPaintCodecType = FourCharCode('PNTG');
  217. kGIFCodecType = FourCharCode('gif ');
  218. kPhotoCDCodecType = FourCharCode('kpcd');
  219. kQuickDrawGXCodecType = FourCharCode('qdgx');
  220. kAVRJPEGCodecType = FourCharCode('avr ');
  221. kOpenDMLJPEGCodecType = FourCharCode('dmb1');
  222. kBMPCodecType = FourCharCode('WRLE');
  223. kWindowsRawCodecType = FourCharCode('WRAW');
  224. kVectorCodecType = FourCharCode('path');
  225. kQuickDrawCodecType = FourCharCode('qdrw');
  226. kWaterRippleCodecType = FourCharCode('ripl');
  227. kFireCodecType = FourCharCode('fire');
  228. kCloudCodecType = FourCharCode('clou');
  229. kH261CodecType = FourCharCode('h261');
  230. kH263CodecType = FourCharCode('h263');
  231. kDVCNTSCCodecType = FourCharCode('dvc '); { DV - NTSC and DVCPRO NTSC (available in QuickTime 6.0 or later)}
  232. { NOTE: kDVCProNTSCCodecType is deprecated. }
  233. { Use kDVCNTSCCodecType instead -- as far as the codecs are concerned, }
  234. { the two data formats are identical.}
  235. kDVCPALCodecType = FourCharCode('dvcp');
  236. kDVCProPALCodecType = FourCharCode('dvpp'); { available in QuickTime 6.0 or later}
  237. kDVCPro50NTSCCodecType = FourCharCode('dv5n');
  238. kDVCPro50PALCodecType = FourCharCode('dv5p');
  239. kDVCPROHD720p60CodecType = FourCharCode('dvhp');
  240. kDVCPROHD720p50CodecType = FourCharCode('dvhq');
  241. kDVCPROHD720pCodecType = kDVCPROHD720p60CodecType;
  242. kDVCPro100NTSCCodecType = FourCharCode('dv1n');
  243. kDVCPro100PALCodecType = FourCharCode('dv1p');
  244. kDVCPROHD1080i60CodecType = FourCharCode('dvh6');
  245. kDVCPROHD1080i50CodecType = FourCharCode('dvh5');
  246. kDVCPROHD1080p30CodecType = FourCharCode('dvh3');
  247. kDVCPROHD1080p25CodecType = FourCharCode('dvh2');
  248. kBaseCodecType = FourCharCode('base');
  249. kFLCCodecType = FourCharCode('flic');
  250. kTargaCodecType = FourCharCode('tga ');
  251. kPNGCodecType = FourCharCode('png ');
  252. kTIFFCodecType = FourCharCode('tiff'); { NOTE: despite what might seem obvious from the two constants}
  253. { below and their names, they really are correct. 'yuvu' really }
  254. { does mean signed, and 'yuvs' really does mean unsigned. Really. }
  255. kComponentVideoSigned = FourCharCode('yuvu');
  256. kComponentVideoUnsigned = FourCharCode('yuvs');
  257. kCMYKCodecType = FourCharCode('cmyk');
  258. kMicrosoftVideo1CodecType = FourCharCode('msvc');
  259. kSorensonCodecType = FourCharCode('SVQ1');
  260. kSorenson3CodecType = FourCharCode('SVQ3'); { available in QuickTime 5 and later}
  261. kIndeo4CodecType = FourCharCode('IV41');
  262. kMPEG4VisualCodecType = FourCharCode('mp4v');
  263. k64ARGBCodecType = FourCharCode('b64a');
  264. k48RGBCodecType = FourCharCode('b48r');
  265. k32AlphaGrayCodecType = FourCharCode('b32a');
  266. k16GrayCodecType = FourCharCode('b16g');
  267. kMpegYUV420CodecType = FourCharCode('myuv');
  268. kYUV420CodecType = FourCharCode('y420');
  269. kSorensonYUV9CodecType = FourCharCode('syv9');
  270. k422YpCbCr8CodecType = FourCharCode('2vuy'); { Component Y'CbCr 8-bit 4:2:2 }
  271. k444YpCbCr8CodecType = FourCharCode('v308'); { Component Y'CbCr 8-bit 4:4:4 }
  272. k4444YpCbCrA8CodecType = FourCharCode('v408'); { Component Y'CbCrA 8-bit 4:4:4:4 }
  273. k422YpCbCr16CodecType = FourCharCode('v216'); { Component Y'CbCr 10,12,14,16-bit 4:2:2}
  274. k422YpCbCr10CodecType = FourCharCode('v210'); { Component Y'CbCr 10-bit 4:2:2 }
  275. k444YpCbCr10CodecType = FourCharCode('v410'); { Component Y'CbCr 10-bit 4:4:4 }
  276. k4444YpCbCrA8RCodecType = FourCharCode('r408'); { Component Y'CbCrA 8-bit 4:4:4:4, rendering format. full range alpha, zero biased yuv}
  277. kJPEG2000CodecType = FourCharCode('mjp2');
  278. kPixletCodecType = FourCharCode('pxlt');
  279. kH264CodecType = FourCharCode('avc1');
  280. {$ifc not TARGET_CPU_64}
  281. { one source effects }
  282. const
  283. kBlurImageFilterType = FourCharCode('blur');
  284. kSharpenImageFilterType = FourCharCode('shrp');
  285. kEdgeDetectImageFilterType = FourCharCode('edge');
  286. kEmbossImageFilterType = FourCharCode('embs');
  287. kConvolveImageFilterType = FourCharCode('genk');
  288. kAlphaGainImageFilterType = FourCharCode('gain');
  289. kRGBColorBalanceImageFilterType = FourCharCode('rgbb');
  290. kHSLColorBalanceImageFilterType = FourCharCode('hslb');
  291. kColorSyncImageFilterType = FourCharCode('sync');
  292. kFilmNoiseImageFilterType = FourCharCode('fmns');
  293. kSolarizeImageFilterType = FourCharCode('solr');
  294. kColorTintImageFilterType = FourCharCode('tint');
  295. kLensFlareImageFilterType = FourCharCode('lens');
  296. kBrightnessContrastImageFilterType = FourCharCode('brco');
  297. { two source effects }
  298. const
  299. kAlphaCompositorTransitionType = FourCharCode('blnd');
  300. kCrossFadeTransitionType = FourCharCode('dslv');
  301. kChannelCompositeEffectType = FourCharCode('chan');
  302. kChromaKeyTransitionType = FourCharCode('ckey');
  303. kImplodeTransitionType = FourCharCode('mplo');
  304. kExplodeTransitionType = FourCharCode('xplo');
  305. kGradientTransitionType = FourCharCode('matt');
  306. kPushTransitionType = FourCharCode('push');
  307. kSlideTransitionType = FourCharCode('slid');
  308. kWipeTransitionType = FourCharCode('smpt');
  309. kIrisTransitionType = FourCharCode('smp2');
  310. kRadialTransitionType = FourCharCode('smp3');
  311. kMatrixTransitionType = FourCharCode('smp4');
  312. kZoomTransitionType = FourCharCode('zoom');
  313. { three source effects }
  314. const
  315. kTravellingMatteEffectType = FourCharCode('trav');
  316. { Supported by QTNewGWorld in QuickTime 4.0 and later }
  317. const
  318. kCMYKPixelFormat = FourCharCode('cmyk'); { CMYK, 8-bit }
  319. k64ARGBPixelFormat = FourCharCode('b64a'); { ARGB, 16-bit big-endian samples }
  320. k48RGBPixelFormat = FourCharCode('b48r'); { RGB, 16-bit big-endian samples }
  321. k32AlphaGrayPixelFormat = FourCharCode('b32a'); { AlphaGray, 16-bit big-endian samples }
  322. k16GrayPixelFormat = FourCharCode('b16g'); { Grayscale, 16-bit big-endian samples }
  323. k422YpCbCr8PixelFormat = FourCharCode('2vuy'); { Component Y'CbCr 8-bit 4:2:2, ordered Cb Y'0 Cr Y'1 }
  324. { Supported by QTNewGWorld in QuickTime 4.1.2 and later }
  325. const
  326. k4444YpCbCrA8PixelFormat = FourCharCode('v408'); { Component Y'CbCrA 8-bit 4:4:4:4, ordered Cb Y' Cr A }
  327. k4444YpCbCrA8RPixelFormat = FourCharCode('r408'); { Component Y'CbCrA 8-bit 4:4:4:4, rendering format. full range alpha, zero biased yuv, ordered A Y' Cb Cr }
  328. { Supported by QTNewGWorld in QuickTime 6.0 and later }
  329. const
  330. kYUV420PixelFormat = FourCharCode('y420'); { Planar Component Y'CbCr 8-bit 4:2:0. PixMap baseAddr points to a big-endian PlanarPixmapInfoYUV420 struct; see ImageCodec.i. }
  331. { These are the bits that are set in the Component flags, and also in the codecInfo struct. }
  332. const
  333. codecInfoDoes1 = 1 shl 0; { codec can work with 1-bit pixels }
  334. codecInfoDoes2 = 1 shl 1; { codec can work with 2-bit pixels }
  335. codecInfoDoes4 = 1 shl 2; { codec can work with 4-bit pixels }
  336. codecInfoDoes8 = 1 shl 3; { codec can work with 8-bit pixels }
  337. codecInfoDoes16 = 1 shl 4; { codec can work with 16-bit pixels }
  338. codecInfoDoes32 = 1 shl 5; { codec can work with 32-bit pixels }
  339. codecInfoDoesDither = 1 shl 6; { codec can do ditherMode }
  340. codecInfoDoesStretch = 1 shl 7; { codec can stretch to arbitrary sizes }
  341. codecInfoDoesShrink = 1 shl 8; { codec can shrink to arbitrary sizes }
  342. codecInfoDoesMask = 1 shl 9; { codec can mask to clipping regions }
  343. codecInfoDoesTemporal = 1 shl 10; { codec can handle temporal redundancy }
  344. codecInfoDoesDouble = 1 shl 11; { codec can stretch to double size exactly }
  345. codecInfoDoesQuad = 1 shl 12; { codec can stretch to quadruple size exactly }
  346. codecInfoDoesHalf = 1 shl 13; { codec can shrink to half size }
  347. codecInfoDoesQuarter = 1 shl 14; { codec can shrink to quarter size }
  348. codecInfoDoesRotate = 1 shl 15; { codec can rotate on decompress }
  349. codecInfoDoesHorizFlip = 1 shl 16; { codec can flip horizontally on decompress }
  350. codecInfoDoesVertFlip = 1 shl 17; { codec can flip vertically on decompress }
  351. codecInfoHasEffectParameterList = 1 shl 18; { codec implements get effects parameter list call, once was codecInfoDoesSkew }
  352. codecInfoDoesBlend = 1 shl 19; { codec can blend on decompress }
  353. codecInfoDoesReorder = 1 shl 19; { codec can rearrange frames during compression }
  354. codecInfoDoesWarp = 1 shl 20; { codec can warp arbitrarily on decompress }
  355. codecInfoDoesMultiPass = 1 shl 20; { codec can perform multi-pass compression }
  356. codecInfoDoesRecompress = 1 shl 21; { codec can recompress image without accumulating errors }
  357. codecInfoDoesSpool = 1 shl 22; { codec can spool image data }
  358. codecInfoDoesRateConstrain = 1 shl 23; { codec can data rate constrain }
  359. const
  360. codecInfoDepth1 = 1 shl 0; { compressed data at 1 bpp depth available }
  361. codecInfoDepth2 = 1 shl 1; { compressed data at 2 bpp depth available }
  362. codecInfoDepth4 = 1 shl 2; { compressed data at 4 bpp depth available }
  363. codecInfoDepth8 = 1 shl 3; { compressed data at 8 bpp depth available }
  364. codecInfoDepth16 = 1 shl 4; { compressed data at 16 bpp depth available }
  365. codecInfoDepth32 = 1 shl 5; { compressed data at 32 bpp depth available }
  366. codecInfoDepth24 = 1 shl 6; { compressed data at 24 bpp depth available }
  367. codecInfoDepth33 = 1 shl 7; { compressed data at 1 bpp monochrome depth available }
  368. codecInfoDepth34 = 1 shl 8; { compressed data at 2 bpp grayscale depth available }
  369. codecInfoDepth36 = 1 shl 9; { compressed data at 4 bpp grayscale depth available }
  370. codecInfoDepth40 = 1 shl 10; { compressed data at 8 bpp grayscale depth available }
  371. codecInfoStoresClut = 1 shl 11; { compressed data can have custom cluts }
  372. codecInfoDoesLossless = 1 shl 12; { compressed data can be stored in lossless format }
  373. codecInfoSequenceSensitive = 1 shl 13; { compressed data is sensitive to out of sequence decoding }
  374. { input sequence flags}
  375. const
  376. codecFlagUseImageBuffer = 1 shl 0; { decompress}
  377. codecFlagUseScreenBuffer = 1 shl 1; { decompress}
  378. codecFlagUpdatePrevious = 1 shl 2; { compress}
  379. codecFlagNoScreenUpdate = 1 shl 3; { decompress}
  380. codecFlagWasCompressed = 1 shl 4; { compress}
  381. codecFlagDontOffscreen = 1 shl 5; { decompress}
  382. codecFlagUpdatePreviousComp = 1 shl 6; { compress}
  383. codecFlagForceKeyFrame = 1 shl 7; { compress}
  384. codecFlagOnlyScreenUpdate = 1 shl 8; { decompress}
  385. codecFlagLiveGrab = 1 shl 9; { compress}
  386. codecFlagDiffFrame = 1 shl 9; { decompress}
  387. codecFlagDontUseNewImageBuffer = 1 shl 10; { decompress}
  388. codecFlagInterlaceUpdate = 1 shl 11; { decompress}
  389. codecFlagCatchUpDiff = 1 shl 12; { decompress}
  390. codecFlagSupportDisable = 1 shl 13; { decompress}
  391. codecFlagReenable = 1 shl 14; { decompress}
  392. { output sequence flags}
  393. const
  394. codecFlagOutUpdateOnNextIdle = 1 shl 9;
  395. codecFlagOutUpdateOnDataSourceChange = 1 shl 10;
  396. codecFlagSequenceSensitive = 1 shl 11;
  397. codecFlagOutUpdateOnTimeChange = 1 shl 12;
  398. codecFlagImageBufferNotSourceImage = 1 shl 13;
  399. codecFlagUsedNewImageBuffer = 1 shl 14;
  400. codecFlagUsedImageBuffer = 1 shl 15;
  401. const
  402. { The minimum data size for spooling in or out data }
  403. codecMinimumDataSize = 32768;
  404. const
  405. compressorComponentType = FourCharCode('imco'); { the type for "Components" which compress images }
  406. decompressorComponentType = FourCharCode('imdc'); { the type for "Components" which decompress images }
  407. type
  408. CompressorComponent = Component;
  409. DecompressorComponent = Component;
  410. CodecComponent = Component;
  411. const
  412. anyCodec = 0; { take first working codec of given type }
  413. bestSpeedCodec = -1; { take fastest codec of given type }
  414. bestFidelityCodec = -2; { take codec which is most accurate }
  415. bestCompressionCodec = -3; { take codec of given type that is most accurate }
  416. {$endc} {not TARGET_CPU_64}
  417. type
  418. CodecType = OSType;
  419. CodecType_fix = CodecType; { used as field type when a record declaration contains a CodecType field identifier }
  420. CodecFlags = UInt16;
  421. CodecQ = UInt32;
  422. {$ifc not TARGET_CPU_64}
  423. const
  424. codecLosslessQuality = $00000400;
  425. codecMaxQuality = $000003FF;
  426. codecMinQuality = $00000000;
  427. codecLowQuality = $00000100;
  428. codecNormalQuality = $00000200;
  429. codecHighQuality = $00000300;
  430. const
  431. codecLockBitsShieldCursor = 1 shl 0; { shield cursor }
  432. const
  433. codecCompletionSource = 1 shl 0; { asynchronous codec is done with source data }
  434. codecCompletionDest = 1 shl 1; { asynchronous codec is done with destination data }
  435. codecCompletionDontUnshield = 1 shl 2; { on dest complete don't unshield cursor }
  436. codecCompletionWentOffscreen = 1 shl 3; { codec used offscreen buffer }
  437. codecCompletionUnlockBits = 1 shl 4; { on dest complete, call ICMSequenceUnlockBits }
  438. codecCompletionForceChainFlush = 1 shl 5; { ICM needs to flush the whole chain }
  439. codecCompletionDropped = 1 shl 6; { codec decided to drop this frame }
  440. codecCompletionDecoded = 1 shl 10; { codec has decoded this frame; if it is cancelled and rescheduled, set icmFrameAlreadyDecoded in ICMFrameTimeRecord.flags }
  441. codecCompletionNotDisplayable = 1 shl 11; { the frame may still be scheduled for decode, but will not be able to be displayed because the buffer containing it will need to be recycled to display earlier frames. }
  442. codecCompletionNotDrawn = 1 shl 12; { set in conjunction with codecCompletionDest to indicate that the frame was not drawn }
  443. const
  444. codecProgressOpen = 0;
  445. codecProgressUpdatePercent = 1;
  446. codecProgressClose = 2;
  447. type
  448. ICMDataProcPtr = function( var dataP: Ptr; bytesNeeded: SIGNEDLONG; refcon: SIGNEDLONG ): OSErr;
  449. ICMFlushProcPtr = function( data: Ptr; bytesAdded: SIGNEDLONG; refcon: SIGNEDLONG ): OSErr;
  450. ICMCompletionProcPtr = procedure( result: OSErr; flags: SInt16; refcon: SIGNEDLONG );
  451. ICMProgressProcPtr = function( message: SInt16; completeness: Fixed; refcon: SIGNEDLONG ): OSErr;
  452. StdPixProcPtr = procedure( var src: PixMap; var srcRect: Rect; var matrix: MatrixRecord; mode: SInt16; mask: RgnHandle; var matte: PixMap; var matteRect: Rect; flags: SInt16 );
  453. QDPixProcPtr = procedure( var src: PixMap; var srcRect: Rect; var matrix: MatrixRecord; mode: SInt16; mask: RgnHandle; var matte: PixMap; var matteRect: Rect; flags: SInt16 );
  454. ICMAlignmentProcPtr = procedure( var rp: Rect; refcon: SIGNEDLONG );
  455. ICMCursorShieldedProcPtr = procedure( const (*var*) r: Rect; refcon: UnivPtr; flags: SIGNEDLONG );
  456. ICMMemoryDisposedProcPtr = procedure( memoryBlock: Ptr; refcon: UnivPtr );
  457. ICMCursorNotify = UnivPtr;
  458. ICMConvertDataFormatProcPtr = function( refCon: UnivPtr; flags: SIGNEDLONG; desiredFormat: Handle; sourceDataFormat: Handle; srcData: UnivPtr; srcDataSize: SIGNEDLONG; var dstData: UnivPtr; var dstDataSize: SIGNEDLONG ): OSErr;
  459. ICMDataUPP = ICMDataProcPtr;
  460. ICMFlushUPP = ICMFlushProcPtr;
  461. ICMCompletionUPP = ICMCompletionProcPtr;
  462. ICMProgressUPP = ICMProgressProcPtr;
  463. StdPixUPP = StdPixProcPtr;
  464. QDPixUPP = QDPixProcPtr;
  465. ICMAlignmentUPP = ICMAlignmentProcPtr;
  466. ICMCursorShieldedUPP = ICMCursorShieldedProcPtr;
  467. ICMMemoryDisposedUPP = ICMMemoryDisposedProcPtr;
  468. ICMConvertDataFormatUPP = ICMConvertDataFormatProcPtr;
  469. ImageSequence = SIGNEDLONG;
  470. ImageSequenceDataSource = SIGNEDLONG;
  471. ImageTranscodeSequence = SIGNEDLONG;
  472. ImageFieldSequence = SIGNEDLONG;
  473. ICMProgressProcRecord = record
  474. progressProc: ICMProgressUPP;
  475. progressRefCon: SIGNEDLONG;
  476. end;
  477. ICMProgressProcRecordPtr = ^ICMProgressProcRecord;
  478. type
  479. ICMCompletionProcRecord = record
  480. completionProc: ICMCompletionUPP;
  481. completionRefCon: SIGNEDLONG;
  482. end;
  483. ICMCompletionProcRecordPtr = ^ICMCompletionProcRecord;
  484. type
  485. ICMDataProcRecord = record
  486. dataProc: ICMDataUPP;
  487. dataRefCon: SIGNEDLONG;
  488. end;
  489. ICMDataProcRecordPtr = ^ICMDataProcRecord;
  490. type
  491. ICMFlushProcRecord = record
  492. flushProc: ICMFlushUPP;
  493. flushRefCon: SIGNEDLONG;
  494. end;
  495. ICMFlushProcRecordPtr = ^ICMFlushProcRecord;
  496. type
  497. ICMAlignmentProcRecord = record
  498. alignmentProc: ICMAlignmentUPP;
  499. alignmentRefCon: SIGNEDLONG;
  500. end;
  501. ICMAlignmentProcRecordPtr = ^ICMAlignmentProcRecord;
  502. type
  503. DataRateParams = record
  504. dataRate: SIGNEDLONG;
  505. dataOverrun: SIGNEDLONG;
  506. frameDuration: SIGNEDLONG;
  507. keyFrameRate: SIGNEDLONG;
  508. minSpatialQuality: CodecQ;
  509. minTemporalQuality: CodecQ;
  510. end;
  511. DataRateParamsPtr = ^DataRateParams;
  512. {$endc} {not TARGET_CPU_64}
  513. type
  514. ImageDescription = packed record
  515. idSize: SInt32; { total size of ImageDescription including extra data ( CLUTs and other per sequence data ) }
  516. cType: CodecType; { what kind of codec compressed this data }
  517. resvd1: SInt32; { reserved for Apple use }
  518. resvd2: SInt16; { reserved for Apple use }
  519. dataRefIndex: SInt16; { set to zero }
  520. version: SInt16; { which version is this data }
  521. revisionLevel: SInt16; { what version of that codec did this }
  522. vendor: SInt32; { whose codec compressed this data }
  523. temporalQuality: CodecQ; { what was the temporal quality factor }
  524. spatialQuality: CodecQ; { what was the spatial quality factor }
  525. width: SInt16; { how many pixels wide is this data }
  526. height: SInt16; { how many pixels high is this data }
  527. hRes: Fixed; { horizontal resolution }
  528. vRes: Fixed; { vertical resolution }
  529. dataSize: SInt32; { if known, the size of data for this image descriptor }
  530. frameCount: SInt16; { number of frames this description applies to }
  531. name: Str31; { name of codec ( in case not installed ) }
  532. depth: SInt16; { what depth is this data (1-32) or ( 33-40 grayscale ) }
  533. clutID: SInt16; { clut id or if 0 clut follows or -1 if no clut }
  534. end;
  535. ImageDescriptionPtr = ^ImageDescription;
  536. type
  537. ImageDescriptionHandle = ^ImageDescriptionPtr;
  538. {$ifc not TARGET_CPU_64}
  539. type
  540. CodecInfoPtr = ^CodecInfo;
  541. CodecInfo = record
  542. typeName: Str31; { name of the codec type i.e.: 'Apple Image Compression' }
  543. version: SInt16; { version of the codec data that this codec knows about }
  544. revisionLevel: SInt16; { revision level of this codec i.e: 0x00010001 (1.0.1) }
  545. vendor: SIGNEDLONG; { Maker of this codec i.e: 'appl' }
  546. decompressFlags: SIGNEDLONG; { codecInfo flags for decompression capabilities }
  547. compressFlags: SIGNEDLONG; { codecInfo flags for compression capabilities }
  548. formatFlags: SIGNEDLONG; { codecInfo flags for compression format details }
  549. compressionAccuracy: UInt8; { measure (1-255) of accuracy of this codec for compress (0 if unknown) }
  550. decompressionAccuracy: UInt8; { measure (1-255) of accuracy of this codec for decompress (0 if unknown) }
  551. compressionSpeed: UInt16; { ( millisecs for compressing 320x240 on base mac II) (0 if unknown) }
  552. decompressionSpeed: UInt16; { ( millisecs for decompressing 320x240 on mac II)(0 if unknown) }
  553. compressionLevel: UInt8; { measure (1-255) of compression level of this codec (0 if unknown) }
  554. resvd: UInt8; { pad }
  555. minimumHeight: SInt16; { minimum height of image (block size) }
  556. minimumWidth: SInt16; { minimum width of image (block size) }
  557. decompressPipelineLatency: SInt16; { in milliseconds ( for asynchronous codecs ) }
  558. compressPipelineLatency: SInt16; { in milliseconds ( for asynchronous codecs ) }
  559. privateData: SIGNEDLONG;
  560. end;
  561. type
  562. CodecNameSpecPtr = ^CodecNameSpec;
  563. CodecNameSpec = record
  564. codec: CodecComponent;
  565. cType: CodecType;
  566. typeName: Str31;
  567. name: Handle;
  568. end;
  569. type
  570. CodecNameSpecList = record
  571. count: SInt16;
  572. list: array [0..0] of CodecNameSpec;
  573. end;
  574. CodecNameSpecListPtr = ^CodecNameSpecList;
  575. const
  576. defaultDither = 0;
  577. forceDither = 1;
  578. suppressDither = 2;
  579. useColorMatching = 4;
  580. const
  581. callStdBits = 1;
  582. callOldBits = 2;
  583. noDefaultOpcodes = 4;
  584. const
  585. graphicsModeStraightAlpha = 256;
  586. graphicsModePreWhiteAlpha = 257;
  587. graphicsModePreBlackAlpha = 258;
  588. graphicsModeComposition = 259;
  589. graphicsModeStraightAlphaBlend = 260;
  590. graphicsModePreMulColorAlpha = 261;
  591. graphicsModePerComponentAlpha = 272;
  592. const
  593. evenField1ToEvenFieldOut = 1 shl 0;
  594. evenField1ToOddFieldOut = 1 shl 1;
  595. oddField1ToEvenFieldOut = 1 shl 2;
  596. oddField1ToOddFieldOut = 1 shl 3;
  597. evenField2ToEvenFieldOut = 1 shl 4;
  598. evenField2ToOddFieldOut = 1 shl 5;
  599. oddField2ToEvenFieldOut = 1 shl 6;
  600. oddField2ToOddFieldOut = 1 shl 7;
  601. { Flags for ICMFrameTimeRecord.flags }
  602. const
  603. icmFrameTimeHasVirtualStartTimeAndDuration = 1 shl 0;
  604. icmFrameAlreadyDecoded = 1 shl 1;
  605. icmFrameTimeIsNonScheduledDisplayTime = 1 shl 2;
  606. icmFrameTimeHasDecodeTime = 1 shl 3;
  607. icmFrameTimeDecodeImmediately = 1 shl 4;
  608. icmFrameTimeDoNotDisplay = 1 shl 5;
  609. type
  610. ICMFrameTimeRecordPtr = ^ICMFrameTimeRecord;
  611. ICMFrameTimeRecord = record
  612. value: wide; { frame display time}
  613. scale: SIGNEDLONG; { timescale of value/duration fields}
  614. base: UnivPtr; { timebase}
  615. duration: SIGNEDLONG; { duration frame is to be displayed (0 if unknown)}
  616. rate: Fixed; { rate of timebase relative to wall-time}
  617. recordSize: SIGNEDLONG; { total number of bytes in ICMFrameTimeRecord}
  618. frameNumber: SIGNEDLONG; { number of frame, zero if not known}
  619. flags: SIGNEDLONG;
  620. virtualStartTime: wide; { conceptual start time}
  621. virtualDuration: SIGNEDLONG; { conceptual duration}
  622. { The following fields only exist for QuickTime 7.0 and greater. }
  623. decodeTime: TimeValue64; { suggested decode time, if icmFrameTimeHasDecodeTime is set in flags}
  624. end;
  625. type
  626. ICMFrameTimePtr = ICMFrameTimeRecordPtr;
  627. { QuickTime flavor of universally unique identifier (uuid)}
  628. type
  629. QTUUIDPtr = ^QTUUID;
  630. QTUUID = record
  631. data1: UInt32;
  632. data2: UInt16;
  633. data3: UInt16;
  634. data4: array[0..7] of UInt8;
  635. end;
  636. type
  637. QTMediaContextID = QTUUID;
  638. QTMediaContextIDPtr = ^QTMediaContextID;
  639. {$endc} {not TARGET_CPU_64}
  640. { See Movies.h for the flags themselves. }
  641. type
  642. MediaSampleFlags = UInt32;
  643. {$ifc not TARGET_CPU_64}
  644. {
  645. * NewICMDataUPP()
  646. *
  647. * Availability:
  648. * Mac OS X: in version 10.0 and later in QuickTime.framework
  649. * CarbonLib: in CarbonLib 1.0 and later
  650. * Non-Carbon CFM: available as macro/inline
  651. }
  652. function NewICMDataUPP( userRoutine: ICMDataProcPtr ): ICMDataUPP; external name '_NewICMDataUPP';
  653. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  654. {
  655. * NewICMFlushUPP()
  656. *
  657. * Availability:
  658. * Mac OS X: in version 10.0 and later in QuickTime.framework
  659. * CarbonLib: in CarbonLib 1.0 and later
  660. * Non-Carbon CFM: available as macro/inline
  661. }
  662. function NewICMFlushUPP( userRoutine: ICMFlushProcPtr ): ICMFlushUPP; external name '_NewICMFlushUPP';
  663. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  664. {
  665. * NewICMCompletionUPP()
  666. *
  667. * Availability:
  668. * Mac OS X: in version 10.0 and later in QuickTime.framework
  669. * CarbonLib: in CarbonLib 1.0 and later
  670. * Non-Carbon CFM: available as macro/inline
  671. }
  672. function NewICMCompletionUPP( userRoutine: ICMCompletionProcPtr ): ICMCompletionUPP; external name '_NewICMCompletionUPP';
  673. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  674. {
  675. * NewICMProgressUPP()
  676. *
  677. * Availability:
  678. * Mac OS X: in version 10.0 and later in QuickTime.framework
  679. * CarbonLib: in CarbonLib 1.0 and later
  680. * Non-Carbon CFM: available as macro/inline
  681. }
  682. function NewICMProgressUPP( userRoutine: ICMProgressProcPtr ): ICMProgressUPP; external name '_NewICMProgressUPP';
  683. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  684. {
  685. * NewStdPixUPP()
  686. *
  687. * Availability:
  688. * Mac OS X: in version 10.0 and later in QuickTime.framework
  689. * CarbonLib: in CarbonLib 1.0 and later
  690. * Non-Carbon CFM: available as macro/inline
  691. }
  692. function NewStdPixUPP( userRoutine: StdPixProcPtr ): StdPixUPP; external name '_NewStdPixUPP';
  693. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  694. {
  695. * NewQDPixUPP()
  696. *
  697. * Availability:
  698. * Mac OS X: in version 10.0 and later in QuickTime.framework
  699. * CarbonLib: in CarbonLib 1.0 and later
  700. * Non-Carbon CFM: available as macro/inline
  701. }
  702. function NewQDPixUPP( userRoutine: QDPixProcPtr ): QDPixUPP; external name '_NewQDPixUPP';
  703. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  704. {
  705. * NewICMAlignmentUPP()
  706. *
  707. * Availability:
  708. * Mac OS X: in version 10.0 and later in QuickTime.framework
  709. * CarbonLib: in CarbonLib 1.0 and later
  710. * Non-Carbon CFM: available as macro/inline
  711. }
  712. function NewICMAlignmentUPP( userRoutine: ICMAlignmentProcPtr ): ICMAlignmentUPP; external name '_NewICMAlignmentUPP';
  713. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  714. {
  715. * NewICMCursorShieldedUPP()
  716. *
  717. * Availability:
  718. * Mac OS X: in version 10.0 and later in QuickTime.framework
  719. * CarbonLib: in CarbonLib 1.0 and later
  720. * Non-Carbon CFM: available as macro/inline
  721. }
  722. function NewICMCursorShieldedUPP( userRoutine: ICMCursorShieldedProcPtr ): ICMCursorShieldedUPP; external name '_NewICMCursorShieldedUPP';
  723. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  724. {
  725. * NewICMMemoryDisposedUPP()
  726. *
  727. * Availability:
  728. * Mac OS X: in version 10.0 and later in QuickTime.framework
  729. * CarbonLib: in CarbonLib 1.0 and later
  730. * Non-Carbon CFM: available as macro/inline
  731. }
  732. function NewICMMemoryDisposedUPP( userRoutine: ICMMemoryDisposedProcPtr ): ICMMemoryDisposedUPP; external name '_NewICMMemoryDisposedUPP';
  733. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  734. {
  735. * NewICMConvertDataFormatUPP()
  736. *
  737. * Availability:
  738. * Mac OS X: in version 10.0 and later in QuickTime.framework
  739. * CarbonLib: in CarbonLib 1.0 and later
  740. * Non-Carbon CFM: available as macro/inline
  741. }
  742. function NewICMConvertDataFormatUPP( userRoutine: ICMConvertDataFormatProcPtr ): ICMConvertDataFormatUPP; external name '_NewICMConvertDataFormatUPP';
  743. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  744. {
  745. * DisposeICMDataUPP()
  746. *
  747. * Availability:
  748. * Mac OS X: in version 10.0 and later in QuickTime.framework
  749. * CarbonLib: in CarbonLib 1.0 and later
  750. * Non-Carbon CFM: available as macro/inline
  751. }
  752. procedure DisposeICMDataUPP( userUPP: ICMDataUPP ); external name '_DisposeICMDataUPP';
  753. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  754. {
  755. * DisposeICMFlushUPP()
  756. *
  757. * Availability:
  758. * Mac OS X: in version 10.0 and later in QuickTime.framework
  759. * CarbonLib: in CarbonLib 1.0 and later
  760. * Non-Carbon CFM: available as macro/inline
  761. }
  762. procedure DisposeICMFlushUPP( userUPP: ICMFlushUPP ); external name '_DisposeICMFlushUPP';
  763. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  764. {
  765. * DisposeICMCompletionUPP()
  766. *
  767. * Availability:
  768. * Mac OS X: in version 10.0 and later in QuickTime.framework
  769. * CarbonLib: in CarbonLib 1.0 and later
  770. * Non-Carbon CFM: available as macro/inline
  771. }
  772. procedure DisposeICMCompletionUPP( userUPP: ICMCompletionUPP ); external name '_DisposeICMCompletionUPP';
  773. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  774. {
  775. * DisposeICMProgressUPP()
  776. *
  777. * Availability:
  778. * Mac OS X: in version 10.0 and later in QuickTime.framework
  779. * CarbonLib: in CarbonLib 1.0 and later
  780. * Non-Carbon CFM: available as macro/inline
  781. }
  782. procedure DisposeICMProgressUPP( userUPP: ICMProgressUPP ); external name '_DisposeICMProgressUPP';
  783. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  784. {
  785. * DisposeStdPixUPP()
  786. *
  787. * Availability:
  788. * Mac OS X: in version 10.0 and later in QuickTime.framework
  789. * CarbonLib: in CarbonLib 1.0 and later
  790. * Non-Carbon CFM: available as macro/inline
  791. }
  792. procedure DisposeStdPixUPP( userUPP: StdPixUPP ); external name '_DisposeStdPixUPP';
  793. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  794. {
  795. * DisposeQDPixUPP()
  796. *
  797. * Availability:
  798. * Mac OS X: in version 10.0 and later in QuickTime.framework
  799. * CarbonLib: in CarbonLib 1.0 and later
  800. * Non-Carbon CFM: available as macro/inline
  801. }
  802. procedure DisposeQDPixUPP( userUPP: QDPixUPP ); external name '_DisposeQDPixUPP';
  803. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  804. {
  805. * DisposeICMAlignmentUPP()
  806. *
  807. * Availability:
  808. * Mac OS X: in version 10.0 and later in QuickTime.framework
  809. * CarbonLib: in CarbonLib 1.0 and later
  810. * Non-Carbon CFM: available as macro/inline
  811. }
  812. procedure DisposeICMAlignmentUPP( userUPP: ICMAlignmentUPP ); external name '_DisposeICMAlignmentUPP';
  813. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  814. {
  815. * DisposeICMCursorShieldedUPP()
  816. *
  817. * Availability:
  818. * Mac OS X: in version 10.0 and later in QuickTime.framework
  819. * CarbonLib: in CarbonLib 1.0 and later
  820. * Non-Carbon CFM: available as macro/inline
  821. }
  822. procedure DisposeICMCursorShieldedUPP( userUPP: ICMCursorShieldedUPP ); external name '_DisposeICMCursorShieldedUPP';
  823. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  824. {
  825. * DisposeICMMemoryDisposedUPP()
  826. *
  827. * Availability:
  828. * Mac OS X: in version 10.0 and later in QuickTime.framework
  829. * CarbonLib: in CarbonLib 1.0 and later
  830. * Non-Carbon CFM: available as macro/inline
  831. }
  832. procedure DisposeICMMemoryDisposedUPP( userUPP: ICMMemoryDisposedUPP ); external name '_DisposeICMMemoryDisposedUPP';
  833. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  834. {
  835. * DisposeICMConvertDataFormatUPP()
  836. *
  837. * Availability:
  838. * Mac OS X: in version 10.0 and later in QuickTime.framework
  839. * CarbonLib: in CarbonLib 1.0 and later
  840. * Non-Carbon CFM: available as macro/inline
  841. }
  842. procedure DisposeICMConvertDataFormatUPP( userUPP: ICMConvertDataFormatUPP ); external name '_DisposeICMConvertDataFormatUPP';
  843. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  844. {
  845. * InvokeICMDataUPP()
  846. *
  847. * Availability:
  848. * Mac OS X: in version 10.0 and later in QuickTime.framework
  849. * CarbonLib: in CarbonLib 1.0 and later
  850. * Non-Carbon CFM: available as macro/inline
  851. }
  852. function InvokeICMDataUPP( var dataP: Ptr; bytesNeeded: SIGNEDLONG; refcon: SIGNEDLONG; userUPP: ICMDataUPP ): OSErr; external name '_InvokeICMDataUPP';
  853. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  854. {
  855. * InvokeICMFlushUPP()
  856. *
  857. * Availability:
  858. * Mac OS X: in version 10.0 and later in QuickTime.framework
  859. * CarbonLib: in CarbonLib 1.0 and later
  860. * Non-Carbon CFM: available as macro/inline
  861. }
  862. function InvokeICMFlushUPP( data: Ptr; bytesAdded: SIGNEDLONG; refcon: SIGNEDLONG; userUPP: ICMFlushUPP ): OSErr; external name '_InvokeICMFlushUPP';
  863. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  864. {
  865. * InvokeICMCompletionUPP()
  866. *
  867. * Availability:
  868. * Mac OS X: in version 10.0 and later in QuickTime.framework
  869. * CarbonLib: in CarbonLib 1.0 and later
  870. * Non-Carbon CFM: available as macro/inline
  871. }
  872. procedure InvokeICMCompletionUPP( result: OSErr; flags: SInt16; refcon: SIGNEDLONG; userUPP: ICMCompletionUPP ); external name '_InvokeICMCompletionUPP';
  873. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  874. {
  875. * InvokeICMProgressUPP()
  876. *
  877. * Availability:
  878. * Mac OS X: in version 10.0 and later in QuickTime.framework
  879. * CarbonLib: in CarbonLib 1.0 and later
  880. * Non-Carbon CFM: available as macro/inline
  881. }
  882. function InvokeICMProgressUPP( message: SInt16; completeness: Fixed; refcon: SIGNEDLONG; userUPP: ICMProgressUPP ): OSErr; external name '_InvokeICMProgressUPP';
  883. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  884. {
  885. * InvokeStdPixUPP()
  886. *
  887. * Availability:
  888. * Mac OS X: in version 10.0 and later in QuickTime.framework
  889. * CarbonLib: in CarbonLib 1.0 and later
  890. * Non-Carbon CFM: available as macro/inline
  891. }
  892. procedure InvokeStdPixUPP( var src: PixMap; var srcRect: Rect; var matrix: MatrixRecord; mode: SInt16; mask: RgnHandle; var matte: PixMap; var matteRect: Rect; flags: SInt16; userUPP: StdPixUPP ); external name '_InvokeStdPixUPP';
  893. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  894. {
  895. * InvokeQDPixUPP()
  896. *
  897. * Availability:
  898. * Mac OS X: in version 10.0 and later in QuickTime.framework
  899. * CarbonLib: in CarbonLib 1.0 and later
  900. * Non-Carbon CFM: available as macro/inline
  901. }
  902. procedure InvokeQDPixUPP( var src: PixMap; var srcRect: Rect; var matrix: MatrixRecord; mode: SInt16; mask: RgnHandle; var matte: PixMap; var matteRect: Rect; flags: SInt16; userUPP: QDPixUPP ); external name '_InvokeQDPixUPP';
  903. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  904. {
  905. * InvokeICMAlignmentUPP()
  906. *
  907. * Availability:
  908. * Mac OS X: in version 10.0 and later in QuickTime.framework
  909. * CarbonLib: in CarbonLib 1.0 and later
  910. * Non-Carbon CFM: available as macro/inline
  911. }
  912. procedure InvokeICMAlignmentUPP( var rp: Rect; refcon: SIGNEDLONG; userUPP: ICMAlignmentUPP ); external name '_InvokeICMAlignmentUPP';
  913. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  914. {
  915. * InvokeICMCursorShieldedUPP()
  916. *
  917. * Availability:
  918. * Mac OS X: in version 10.0 and later in QuickTime.framework
  919. * CarbonLib: in CarbonLib 1.0 and later
  920. * Non-Carbon CFM: available as macro/inline
  921. }
  922. procedure InvokeICMCursorShieldedUPP( const (*var*) r: Rect; refcon: UnivPtr; flags: SIGNEDLONG; userUPP: ICMCursorShieldedUPP ); external name '_InvokeICMCursorShieldedUPP';
  923. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  924. {
  925. * InvokeICMMemoryDisposedUPP()
  926. *
  927. * Availability:
  928. * Mac OS X: in version 10.0 and later in QuickTime.framework
  929. * CarbonLib: in CarbonLib 1.0 and later
  930. * Non-Carbon CFM: available as macro/inline
  931. }
  932. procedure InvokeICMMemoryDisposedUPP( memoryBlock: Ptr; refcon: UnivPtr; userUPP: ICMMemoryDisposedUPP ); external name '_InvokeICMMemoryDisposedUPP';
  933. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  934. {
  935. * InvokeICMConvertDataFormatUPP()
  936. *
  937. * Availability:
  938. * Mac OS X: in version 10.0 and later in QuickTime.framework
  939. * CarbonLib: in CarbonLib 1.0 and later
  940. * Non-Carbon CFM: available as macro/inline
  941. }
  942. function InvokeICMConvertDataFormatUPP( refCon: UnivPtr; flags: SIGNEDLONG; desiredFormat: Handle; sourceDataFormat: Handle; srcData: UnivPtr; srcDataSize: SIGNEDLONG; var dstData: UnivPtr; var dstDataSize: SIGNEDLONG; userUPP: ICMConvertDataFormatUPP ): OSErr; external name '_InvokeICMConvertDataFormatUPP';
  943. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  944. {
  945. * CodecManagerVersion()
  946. *
  947. * Availability:
  948. * Mac OS X: in version 10.0 and later in QuickTime.framework
  949. * CarbonLib: in CarbonLib 1.0 and later
  950. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  951. * Windows: in qtmlClient.lib 3.0 and later
  952. }
  953. function CodecManagerVersion( var version: SIGNEDLONG ): OSErr; external name '_CodecManagerVersion';
  954. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  955. {
  956. * GetCodecNameList()
  957. *
  958. * Availability:
  959. * Mac OS X: in version 10.0 and later in QuickTime.framework
  960. * CarbonLib: in CarbonLib 1.0 and later
  961. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  962. * Windows: in qtmlClient.lib 3.0 and later
  963. }
  964. function GetCodecNameList( var list: CodecNameSpecListPtr; showAll: SInt16 ): OSErr; external name '_GetCodecNameList';
  965. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  966. {
  967. * DisposeCodecNameList()
  968. *
  969. * Availability:
  970. * Mac OS X: in version 10.0 and later in QuickTime.framework
  971. * CarbonLib: in CarbonLib 1.0 and later
  972. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  973. * Windows: in qtmlClient.lib 3.0 and later
  974. }
  975. function DisposeCodecNameList( list: CodecNameSpecListPtr ): OSErr; external name '_DisposeCodecNameList';
  976. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  977. {
  978. * GetCodecInfo()
  979. *
  980. * Availability:
  981. * Mac OS X: in version 10.0 and later in QuickTime.framework
  982. * CarbonLib: in CarbonLib 1.0 and later
  983. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  984. * Windows: in qtmlClient.lib 3.0 and later
  985. }
  986. function GetCodecInfo( var info: CodecInfo; cType: CodecType; codec: CodecComponent ): OSErr; external name '_GetCodecInfo';
  987. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  988. {
  989. * GetMaxCompressionSize()
  990. *
  991. * Availability:
  992. * Mac OS X: in version 10.0 and later in QuickTime.framework
  993. * CarbonLib: in CarbonLib 1.0 and later
  994. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  995. * Windows: in qtmlClient.lib 3.0 and later
  996. }
  997. function GetMaxCompressionSize( src: PixMapHandle; const (*var*) srcRect: Rect; colorDepth: SInt16; quality: CodecQ; cType: CodecType; codec: CompressorComponent; var size: SIGNEDLONG ): OSErr; external name '_GetMaxCompressionSize';
  998. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  999. {
  1000. * GetCSequenceMaxCompressionSize()
  1001. *
  1002. * Availability:
  1003. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1004. * CarbonLib: in CarbonLib 1.0 and later
  1005. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1006. * Windows: in qtmlClient.lib 3.0 and later
  1007. }
  1008. function GetCSequenceMaxCompressionSize( seqID: ImageSequence; src: PixMapHandle; var size: SIGNEDLONG ): OSErr; external name '_GetCSequenceMaxCompressionSize';
  1009. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1010. {
  1011. * GetCompressionTime()
  1012. *
  1013. * Availability:
  1014. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1015. * CarbonLib: in CarbonLib 1.0 and later
  1016. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1017. * Windows: in qtmlClient.lib 3.0 and later
  1018. }
  1019. function GetCompressionTime( src: PixMapHandle; const (*var*) srcRect: Rect; colorDepth: SInt16; cType: CodecType; codec: CompressorComponent; var spatialQuality: CodecQ; var temporalQuality: CodecQ; var compressTime: UNSIGNEDLONG ): OSErr; external name '_GetCompressionTime';
  1020. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1021. {
  1022. * CompressImage()
  1023. *
  1024. * Availability:
  1025. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1026. * CarbonLib: in CarbonLib 1.0 and later
  1027. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1028. * Windows: in qtmlClient.lib 3.0 and later
  1029. }
  1030. function CompressImage( src: PixMapHandle; const (*var*) srcRect: Rect; quality: CodecQ; cType: CodecType; desc: ImageDescriptionHandle; data: Ptr ): OSErr; external name '_CompressImage';
  1031. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1032. {
  1033. * FCompressImage()
  1034. *
  1035. * Availability:
  1036. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1037. * CarbonLib: in CarbonLib 1.0 and later
  1038. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1039. * Windows: in qtmlClient.lib 3.0 and later
  1040. }
  1041. function FCompressImage( src: PixMapHandle; const (*var*) srcRect: Rect; colorDepth: SInt16; quality: CodecQ; cType: CodecType; codec: CompressorComponent; ctable: CTabHandle; flags: CodecFlags; bufferSize: SIGNEDLONG; flushProc: ICMFlushProcRecordPtr; progressProc: ICMProgressProcRecordPtr; desc: ImageDescriptionHandle; data: Ptr ): OSErr; external name '_FCompressImage';
  1042. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1043. {
  1044. * DecompressImage()
  1045. *
  1046. * Availability:
  1047. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1048. * CarbonLib: in CarbonLib 1.0 and later
  1049. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1050. * Windows: in qtmlClient.lib 3.0 and later
  1051. }
  1052. function DecompressImage( data: Ptr; desc: ImageDescriptionHandle; dst: PixMapHandle; const (*var*) srcRect: Rect; const (*var*) dstRect: Rect; mode: SInt16; mask: RgnHandle ): OSErr; external name '_DecompressImage';
  1053. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1054. {
  1055. * FDecompressImage()
  1056. *
  1057. * Availability:
  1058. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1059. * CarbonLib: in CarbonLib 1.0 and later
  1060. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1061. * Windows: in qtmlClient.lib 3.0 and later
  1062. }
  1063. function FDecompressImage( data: Ptr; desc: ImageDescriptionHandle; dst: PixMapHandle; const (*var*) srcRect: Rect; matrix: MatrixRecordPtr; mode: SInt16; mask: RgnHandle; matte: PixMapHandle; const (*var*) matteRect: Rect; accuracy: CodecQ; codec: DecompressorComponent; bufferSize: SIGNEDLONG; dataProc: ICMDataProcRecordPtr; progressProc: ICMProgressProcRecordPtr ): OSErr; external name '_FDecompressImage';
  1064. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1065. { For video compression, consider using ICMCompressionSessionCreate etc. instead of CompressSequenceBegin etc. }
  1066. {
  1067. * CompressSequenceBegin()
  1068. *
  1069. * Availability:
  1070. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1071. * CarbonLib: in CarbonLib 1.0 and later
  1072. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1073. * Windows: in qtmlClient.lib 3.0 and later
  1074. }
  1075. function CompressSequenceBegin( var seqID: ImageSequence; src: PixMapHandle; prev: PixMapHandle; const (*var*) srcRect: Rect; const (*var*) prevRect: Rect; colorDepth: SInt16; cType: CodecType; codec: CompressorComponent; spatialQuality: CodecQ; temporalQuality: CodecQ; keyFrameRate: SIGNEDLONG; ctable: CTabHandle; flags: CodecFlags; desc: ImageDescriptionHandle ): OSErr; external name '_CompressSequenceBegin';
  1076. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1077. {
  1078. * CompressSequenceFrame()
  1079. *
  1080. * Availability:
  1081. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1082. * CarbonLib: in CarbonLib 1.0 and later
  1083. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1084. * Windows: in qtmlClient.lib 3.0 and later
  1085. }
  1086. function CompressSequenceFrame( seqID: ImageSequence; src: PixMapHandle; const (*var*) srcRect: Rect; flags: CodecFlags; data: Ptr; var dataSize: SIGNEDLONG; var similarity: UInt8; asyncCompletionProc: ICMCompletionProcRecordPtr ): OSErr; external name '_CompressSequenceFrame';
  1087. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1088. { For video decompression, consider using ICMDecompressionSessionCreate etc. instead of DecompressSequenceBegin etc. }
  1089. {
  1090. * DecompressSequenceBegin()
  1091. *
  1092. * Availability:
  1093. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1094. * CarbonLib: in CarbonLib 1.0 and later
  1095. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1096. * Windows: in qtmlClient.lib 3.0 and later
  1097. }
  1098. function DecompressSequenceBegin( var seqID: ImageSequence; desc: ImageDescriptionHandle; port: CGrafPtr; gdh: GDHandle; const (*var*) srcRect: Rect; matrix: MatrixRecordPtr; mode: SInt16; mask: RgnHandle; flags: CodecFlags; accuracy: CodecQ; codec: DecompressorComponent ): OSErr; external name '_DecompressSequenceBegin';
  1099. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1100. { For video decompression, consider using ICMDecompressionSessionCreate etc. instead of DecompressSequenceBeginS etc. }
  1101. {
  1102. * DecompressSequenceBeginS()
  1103. *
  1104. * Availability:
  1105. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1106. * CarbonLib: in CarbonLib 1.0 and later
  1107. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1108. * Windows: in qtmlClient.lib 3.0 and later
  1109. }
  1110. function DecompressSequenceBeginS( var seqID: ImageSequence; desc: ImageDescriptionHandle; data: Ptr; dataSize: SIGNEDLONG; port: CGrafPtr; gdh: GDHandle; const (*var*) srcRect: Rect; matrix: MatrixRecordPtr; mode: SInt16; mask: RgnHandle; flags: CodecFlags; accuracy: CodecQ; codec: DecompressorComponent ): OSErr; external name '_DecompressSequenceBeginS';
  1111. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1112. {
  1113. * DecompressSequenceFrame()
  1114. *
  1115. * Availability:
  1116. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1117. * CarbonLib: in CarbonLib 1.0 and later
  1118. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1119. * Windows: in qtmlClient.lib 3.0 and later
  1120. }
  1121. function DecompressSequenceFrame( seqID: ImageSequence; data: Ptr; inFlags: CodecFlags; var outFlags: CodecFlags; asyncCompletionProc: ICMCompletionProcRecordPtr ): OSErr; external name '_DecompressSequenceFrame';
  1122. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1123. {
  1124. * DecompressSequenceFrameS()
  1125. *
  1126. * Availability:
  1127. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1128. * CarbonLib: in CarbonLib 1.0 and later
  1129. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1130. * Windows: in qtmlClient.lib 3.0 and later
  1131. }
  1132. function DecompressSequenceFrameS( seqID: ImageSequence; data: Ptr; dataSize: SIGNEDLONG; inFlags: CodecFlags; var outFlags: CodecFlags; asyncCompletionProc: ICMCompletionProcRecordPtr ): OSErr; external name '_DecompressSequenceFrameS';
  1133. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1134. {
  1135. * DecompressSequenceFrameWhen()
  1136. *
  1137. * Availability:
  1138. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1139. * CarbonLib: in CarbonLib 1.0 and later
  1140. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1141. * Windows: in qtmlClient.lib 3.0 and later
  1142. }
  1143. function DecompressSequenceFrameWhen( seqID: ImageSequence; data: Ptr; dataSize: SIGNEDLONG; inFlags: CodecFlags; var outFlags: CodecFlags; asyncCompletionProc: ICMCompletionProcRecordPtr; const (*var*) frameTime: ICMFrameTimeRecord ): OSErr; external name '_DecompressSequenceFrameWhen';
  1144. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1145. {
  1146. * CDSequenceFlush()
  1147. *
  1148. * Availability:
  1149. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1150. * CarbonLib: in CarbonLib 1.0 and later
  1151. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1152. * Windows: in qtmlClient.lib 3.0 and later
  1153. }
  1154. function CDSequenceFlush( seqID: ImageSequence ): OSErr; external name '_CDSequenceFlush';
  1155. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1156. {
  1157. * SetDSequenceMatrix()
  1158. *
  1159. * Availability:
  1160. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1161. * CarbonLib: in CarbonLib 1.0 and later
  1162. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1163. * Windows: in qtmlClient.lib 3.0 and later
  1164. }
  1165. function SetDSequenceMatrix( seqID: ImageSequence; matrix: MatrixRecordPtr ): OSErr; external name '_SetDSequenceMatrix';
  1166. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1167. {
  1168. * GetDSequenceMatrix()
  1169. *
  1170. * Availability:
  1171. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1172. * CarbonLib: in CarbonLib 1.0.2 and later
  1173. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  1174. * Windows: in qtmlClient.lib 4.0 and later
  1175. }
  1176. function GetDSequenceMatrix( seqID: ImageSequence; matrix: MatrixRecordPtr ): OSErr; external name '_GetDSequenceMatrix';
  1177. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1178. {
  1179. * SetDSequenceMatte()
  1180. *
  1181. * Availability:
  1182. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1183. * CarbonLib: in CarbonLib 1.0 and later
  1184. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1185. * Windows: in qtmlClient.lib 3.0 and later
  1186. }
  1187. function SetDSequenceMatte( seqID: ImageSequence; matte: PixMapHandle; const (*var*) matteRect: Rect ): OSErr; external name '_SetDSequenceMatte';
  1188. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1189. {
  1190. * SetDSequenceMask()
  1191. *
  1192. * Availability:
  1193. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1194. * CarbonLib: in CarbonLib 1.0 and later
  1195. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1196. * Windows: in qtmlClient.lib 3.0 and later
  1197. }
  1198. function SetDSequenceMask( seqID: ImageSequence; mask: RgnHandle ): OSErr; external name '_SetDSequenceMask';
  1199. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1200. {
  1201. * SetDSequenceTransferMode()
  1202. *
  1203. * Availability:
  1204. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1205. * CarbonLib: in CarbonLib 1.0 and later
  1206. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1207. * Windows: in qtmlClient.lib 3.0 and later
  1208. }
  1209. function SetDSequenceTransferMode( seqID: ImageSequence; mode: SInt16; const (*var*) opColor: RGBColor ): OSErr; external name '_SetDSequenceTransferMode';
  1210. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1211. {
  1212. * SetDSequenceDataProc()
  1213. *
  1214. * Availability:
  1215. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1216. * CarbonLib: in CarbonLib 1.0 and later
  1217. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1218. * Windows: in qtmlClient.lib 3.0 and later
  1219. }
  1220. function SetDSequenceDataProc( seqID: ImageSequence; dataProc: ICMDataProcRecordPtr; bufferSize: SIGNEDLONG ): OSErr; external name '_SetDSequenceDataProc';
  1221. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1222. {
  1223. * SetDSequenceAccuracy()
  1224. *
  1225. * Availability:
  1226. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1227. * CarbonLib: in CarbonLib 1.0 and later
  1228. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1229. * Windows: in qtmlClient.lib 3.0 and later
  1230. }
  1231. function SetDSequenceAccuracy( seqID: ImageSequence; accuracy: CodecQ ): OSErr; external name '_SetDSequenceAccuracy';
  1232. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1233. {
  1234. * SetDSequenceSrcRect()
  1235. *
  1236. * Availability:
  1237. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1238. * CarbonLib: in CarbonLib 1.0 and later
  1239. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1240. * Windows: in qtmlClient.lib 3.0 and later
  1241. }
  1242. function SetDSequenceSrcRect( seqID: ImageSequence; const (*var*) srcRect: Rect ): OSErr; external name '_SetDSequenceSrcRect';
  1243. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1244. {
  1245. * SetDSequenceFlags()
  1246. *
  1247. * Availability:
  1248. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1249. * CarbonLib: in CarbonLib 1.0.2 and later
  1250. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  1251. * Windows: in qtmlClient.lib 4.0 and later
  1252. }
  1253. function SetDSequenceFlags( seqID: ImageSequence; flags: SIGNEDLONG; flagsMask: SIGNEDLONG ): OSErr; external name '_SetDSequenceFlags';
  1254. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1255. const
  1256. codecDSequenceDisableOverlaySurface = 1 shl 5;
  1257. codecDSequenceSingleField = 1 shl 6;
  1258. codecDSequenceBidirectionalPrediction = 1 shl 7;
  1259. codecDSequenceFlushInsteadOfDirtying = 1 shl 8;
  1260. codecDSequenceEnableSubPixelPositioning = 1 shl 9;
  1261. codecDSequenceDeinterlaceFields = 1 shl 10;
  1262. type
  1263. CodecComponentPtr = ^CodecComponent;
  1264. CodecComponentHandle = ^CodecComponentPtr;
  1265. { selectors for ICMSequenceGet/SetInfo}
  1266. const
  1267. kICMSequenceTaskWeight = FourCharCode('twei'); { data is pointer to UInt32}
  1268. kICMSequenceTaskName = FourCharCode('tnam'); { data is pointer to OSType}
  1269. kICMSequenceUserPreferredCodecs = FourCharCode('punt'); { data is pointer to CodecComponentHandle}
  1270. {
  1271. * ICMSequenceGetInfo()
  1272. *
  1273. * Availability:
  1274. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1275. * CarbonLib: in CarbonLib 1.3 and later
  1276. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  1277. * Windows: in qtmlClient.lib 5.0 and later
  1278. }
  1279. function ICMSequenceGetInfo( seqID: ImageSequence; which: OSType; data: UnivPtr ): OSErr; external name '_ICMSequenceGetInfo';
  1280. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1281. {
  1282. * ICMSequenceSetInfo()
  1283. *
  1284. * Availability:
  1285. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1286. * CarbonLib: in CarbonLib 1.3 and later
  1287. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  1288. * Windows: in qtmlClient.lib 5.0 and later
  1289. }
  1290. function ICMSequenceSetInfo( seqID: ImageSequence; which: OSType; data: UnivPtr; dataSize: Size ): OSErr; external name '_ICMSequenceSetInfo';
  1291. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1292. {
  1293. * GetDSequenceImageBuffer()
  1294. *
  1295. * Availability:
  1296. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1297. * CarbonLib: in CarbonLib 1.0 and later
  1298. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1299. * Windows: in qtmlClient.lib 3.0 and later
  1300. }
  1301. function GetDSequenceImageBuffer( seqID: ImageSequence; var gworld: GWorldPtr ): OSErr; external name '_GetDSequenceImageBuffer';
  1302. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1303. {
  1304. * GetDSequenceScreenBuffer()
  1305. *
  1306. * Availability:
  1307. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1308. * CarbonLib: in CarbonLib 1.0 and later
  1309. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1310. * Windows: in qtmlClient.lib 3.0 and later
  1311. }
  1312. function GetDSequenceScreenBuffer( seqID: ImageSequence; var gworld: GWorldPtr ): OSErr; external name '_GetDSequenceScreenBuffer';
  1313. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1314. {
  1315. * SetCSequenceQuality()
  1316. *
  1317. * Availability:
  1318. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1319. * CarbonLib: in CarbonLib 1.0 and later
  1320. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1321. * Windows: in qtmlClient.lib 3.0 and later
  1322. }
  1323. function SetCSequenceQuality( seqID: ImageSequence; spatialQuality: CodecQ; temporalQuality: CodecQ ): OSErr; external name '_SetCSequenceQuality';
  1324. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1325. {
  1326. * SetCSequencePrev()
  1327. *
  1328. * Availability:
  1329. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1330. * CarbonLib: in CarbonLib 1.0 and later
  1331. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1332. * Windows: in qtmlClient.lib 3.0 and later
  1333. }
  1334. function SetCSequencePrev( seqID: ImageSequence; prev: PixMapHandle; const (*var*) prevRect: Rect ): OSErr; external name '_SetCSequencePrev';
  1335. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1336. {
  1337. * SetCSequenceFlushProc()
  1338. *
  1339. * Availability:
  1340. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1341. * CarbonLib: in CarbonLib 1.0 and later
  1342. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1343. * Windows: in qtmlClient.lib 3.0 and later
  1344. }
  1345. function SetCSequenceFlushProc( seqID: ImageSequence; flushProc: ICMFlushProcRecordPtr; bufferSize: SIGNEDLONG ): OSErr; external name '_SetCSequenceFlushProc';
  1346. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1347. {
  1348. * SetCSequenceKeyFrameRate()
  1349. *
  1350. * Availability:
  1351. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1352. * CarbonLib: in CarbonLib 1.0 and later
  1353. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1354. * Windows: in qtmlClient.lib 3.0 and later
  1355. }
  1356. function SetCSequenceKeyFrameRate( seqID: ImageSequence; keyFrameRate: SIGNEDLONG ): OSErr; external name '_SetCSequenceKeyFrameRate';
  1357. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1358. {
  1359. * GetCSequenceKeyFrameRate()
  1360. *
  1361. * Availability:
  1362. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1363. * CarbonLib: in CarbonLib 1.0 and later
  1364. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1365. * Windows: in qtmlClient.lib 3.0 and later
  1366. }
  1367. function GetCSequenceKeyFrameRate( seqID: ImageSequence; var keyFrameRate: SIGNEDLONG ): OSErr; external name '_GetCSequenceKeyFrameRate';
  1368. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1369. {
  1370. * GetCSequencePrevBuffer()
  1371. *
  1372. * Availability:
  1373. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1374. * CarbonLib: in CarbonLib 1.0 and later
  1375. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1376. * Windows: in qtmlClient.lib 3.0 and later
  1377. }
  1378. function GetCSequencePrevBuffer( seqID: ImageSequence; var gworld: GWorldPtr ): OSErr; external name '_GetCSequencePrevBuffer';
  1379. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1380. {
  1381. * CDSequenceBusy()
  1382. *
  1383. * Availability:
  1384. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1385. * CarbonLib: in CarbonLib 1.0 and later
  1386. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1387. * Windows: in qtmlClient.lib 3.0 and later
  1388. }
  1389. function CDSequenceBusy( seqID: ImageSequence ): OSErr; external name '_CDSequenceBusy';
  1390. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1391. {
  1392. * CDSequenceEnd()
  1393. *
  1394. * Availability:
  1395. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1396. * CarbonLib: in CarbonLib 1.0 and later
  1397. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1398. * Windows: in qtmlClient.lib 3.0 and later
  1399. }
  1400. function CDSequenceEnd( seqID: ImageSequence ): OSErr; external name '_CDSequenceEnd';
  1401. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1402. {
  1403. * CDSequenceEquivalentImageDescription()
  1404. *
  1405. * Availability:
  1406. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1407. * CarbonLib: in CarbonLib 1.0 and later
  1408. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1409. * Windows: in qtmlClient.lib 3.0 and later
  1410. }
  1411. function CDSequenceEquivalentImageDescription( seqID: ImageSequence; newDesc: ImageDescriptionHandle; var equivalent: Boolean ): OSErr; external name '_CDSequenceEquivalentImageDescription';
  1412. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1413. {
  1414. * CDSequenceEquivalentImageDescriptionS()
  1415. *
  1416. * Availability:
  1417. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1418. * CarbonLib: in CarbonLib 1.3 and later
  1419. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  1420. * Windows: in qtmlClient.lib 5.0 and later
  1421. }
  1422. function CDSequenceEquivalentImageDescriptionS( seqID: ImageSequence; newDesc: ImageDescriptionHandle; var equivalent: Boolean; var canSwitch: Boolean ): OSErr; external name '_CDSequenceEquivalentImageDescriptionS';
  1423. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1424. {
  1425. * ReplaceDSequenceImageDescription()
  1426. *
  1427. * Availability:
  1428. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1429. * CarbonLib: in CarbonLib 1.3 and later
  1430. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  1431. * Windows: in qtmlClient.lib 5.0 and later
  1432. }
  1433. function ReplaceDSequenceImageDescription( seqID: ImageSequence; newDesc: ImageDescriptionHandle ): OSErr; external name '_ReplaceDSequenceImageDescription';
  1434. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1435. {
  1436. * GetCompressedImageSize()
  1437. *
  1438. * Availability:
  1439. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1440. * CarbonLib: in CarbonLib 1.0 and later
  1441. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1442. * Windows: in qtmlClient.lib 3.0 and later
  1443. }
  1444. function GetCompressedImageSize( desc: ImageDescriptionHandle; data: Ptr; bufferSize: SIGNEDLONG; dataProc: ICMDataProcRecordPtr; var dataSize: SIGNEDLONG ): OSErr; external name '_GetCompressedImageSize';
  1445. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1446. {
  1447. * GetSimilarity()
  1448. *
  1449. * Availability:
  1450. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1451. * CarbonLib: in CarbonLib 1.0 and later
  1452. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1453. * Windows: in qtmlClient.lib 3.0 and later
  1454. }
  1455. function GetSimilarity( src: PixMapHandle; const (*var*) srcRect: Rect; desc: ImageDescriptionHandle; data: Ptr; var similarity: Fixed ): OSErr; external name '_GetSimilarity';
  1456. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1457. const
  1458. kImageDescriptionSampleFormat = FourCharCode('idfm'); { image description extension describing sample format}
  1459. kImageDescriptionClassicAtomFormat = FourCharCode('atom'); { sample contains classic atom structure (ie, GX codec and Curve codec)}
  1460. kImageDescriptionQTAtomFormat = FourCharCode('qtat'); { sample contains QT atom structure}
  1461. kImageDescriptionEffectDataFormat = FourCharCode('fxat'); { sample describes an effect (as QTAtoms)}
  1462. kImageDescriptionPrivateDataFormat = FourCharCode('priv'); { sample is in a private codec specific format}
  1463. kImageDescriptionAlternateCodec = FourCharCode('subs'); { image description extension containing the OSType of a substitute codec should the main codec not be available}
  1464. kImageDescriptionColorSpace = FourCharCode('cspc'); { image description extension containing an OSType naming the native pixel format of an image (only used for pixel formats not supported by classic Color QuickDraw)}
  1465. {
  1466. * GetImageDescriptionCTable()
  1467. *
  1468. * Availability:
  1469. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1470. * CarbonLib: in CarbonLib 1.0 and later
  1471. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1472. * Windows: in qtmlClient.lib 3.0 and later
  1473. }
  1474. function GetImageDescriptionCTable( desc: ImageDescriptionHandle; var ctable: CTabHandle ): OSErr; external name '_GetImageDescriptionCTable';
  1475. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1476. {
  1477. * SetImageDescriptionCTable()
  1478. *
  1479. * Availability:
  1480. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1481. * CarbonLib: in CarbonLib 1.0 and later
  1482. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1483. * Windows: in qtmlClient.lib 3.0 and later
  1484. }
  1485. function SetImageDescriptionCTable( desc: ImageDescriptionHandle; ctable: CTabHandle ): OSErr; external name '_SetImageDescriptionCTable';
  1486. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1487. {
  1488. * GetImageDescriptionExtension()
  1489. *
  1490. * Availability:
  1491. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1492. * CarbonLib: in CarbonLib 1.0 and later
  1493. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1494. * Windows: in qtmlClient.lib 3.0 and later
  1495. }
  1496. function GetImageDescriptionExtension( desc: ImageDescriptionHandle; var extension: Handle; idType: SIGNEDLONG; index: SIGNEDLONG ): OSErr; external name '_GetImageDescriptionExtension';
  1497. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1498. {
  1499. * AddImageDescriptionExtension()
  1500. *
  1501. * Availability:
  1502. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1503. * CarbonLib: in CarbonLib 1.0 and later
  1504. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1505. * Windows: in qtmlClient.lib 3.0 and later
  1506. }
  1507. function AddImageDescriptionExtension( desc: ImageDescriptionHandle; extension: Handle; idType: SIGNEDLONG ): OSErr; external name '_AddImageDescriptionExtension';
  1508. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1509. {
  1510. * RemoveImageDescriptionExtension()
  1511. *
  1512. * Availability:
  1513. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1514. * CarbonLib: in CarbonLib 1.0 and later
  1515. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1516. * Windows: in qtmlClient.lib 3.0 and later
  1517. }
  1518. function RemoveImageDescriptionExtension( desc: ImageDescriptionHandle; idType: SIGNEDLONG; index: SIGNEDLONG ): OSErr; external name '_RemoveImageDescriptionExtension';
  1519. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1520. {
  1521. * CountImageDescriptionExtensionType()
  1522. *
  1523. * Availability:
  1524. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1525. * CarbonLib: in CarbonLib 1.0 and later
  1526. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1527. * Windows: in qtmlClient.lib 3.0 and later
  1528. }
  1529. function CountImageDescriptionExtensionType( desc: ImageDescriptionHandle; idType: SIGNEDLONG; var count: SIGNEDLONG ): OSErr; external name '_CountImageDescriptionExtensionType';
  1530. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1531. {
  1532. * GetNextImageDescriptionExtensionType()
  1533. *
  1534. * Availability:
  1535. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1536. * CarbonLib: in CarbonLib 1.0 and later
  1537. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1538. * Windows: in qtmlClient.lib 3.0 and later
  1539. }
  1540. function GetNextImageDescriptionExtensionType( desc: ImageDescriptionHandle; var idType: SIGNEDLONG ): OSErr; external name '_GetNextImageDescriptionExtensionType';
  1541. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1542. {
  1543. * FindCodec()
  1544. *
  1545. * Availability:
  1546. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1547. * CarbonLib: in CarbonLib 1.0 and later
  1548. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1549. * Windows: in qtmlClient.lib 3.0 and later
  1550. }
  1551. function FindCodec( cType: CodecType; specCodec: CodecComponent; var compressor: CompressorComponent; var decompressor: DecompressorComponent ): OSErr; external name '_FindCodec';
  1552. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1553. {
  1554. * CompressPicture()
  1555. *
  1556. * Availability:
  1557. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1558. * CarbonLib: in CarbonLib 1.0 and later
  1559. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1560. * Windows: in qtmlClient.lib 3.0 and later
  1561. }
  1562. function CompressPicture( srcPicture: PicHandle; dstPicture: PicHandle; quality: CodecQ; cType: CodecType ): OSErr; external name '_CompressPicture';
  1563. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1564. {
  1565. * FCompressPicture()
  1566. *
  1567. * Availability:
  1568. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1569. * CarbonLib: in CarbonLib 1.0 and later
  1570. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1571. * Windows: in qtmlClient.lib 3.0 and later
  1572. }
  1573. function FCompressPicture( srcPicture: PicHandle; dstPicture: PicHandle; colorDepth: SInt16; ctable: CTabHandle; quality: CodecQ; doDither: SInt16; compressAgain: SInt16; progressProc: ICMProgressProcRecordPtr; cType: CodecType; codec: CompressorComponent ): OSErr; external name '_FCompressPicture';
  1574. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1575. {
  1576. * CompressPictureFile()
  1577. *
  1578. * Availability:
  1579. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1580. * CarbonLib: in CarbonLib 1.0 and later
  1581. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1582. * Windows: in qtmlClient.lib 3.0 and later
  1583. }
  1584. function CompressPictureFile( srcRefNum: SInt16; dstRefNum: SInt16; quality: CodecQ; cType: CodecType ): OSErr; external name '_CompressPictureFile';
  1585. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1586. {
  1587. * FCompressPictureFile()
  1588. *
  1589. * Availability:
  1590. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1591. * CarbonLib: in CarbonLib 1.0 and later
  1592. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1593. * Windows: in qtmlClient.lib 3.0 and later
  1594. }
  1595. function FCompressPictureFile( srcRefNum: SInt16; dstRefNum: SInt16; colorDepth: SInt16; ctable: CTabHandle; quality: CodecQ; doDither: SInt16; compressAgain: SInt16; progressProc: ICMProgressProcRecordPtr; cType: CodecType; codec: CompressorComponent ): OSErr; external name '_FCompressPictureFile';
  1596. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1597. {
  1598. * GetPictureFileHeader()
  1599. *
  1600. * Availability:
  1601. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1602. * CarbonLib: in CarbonLib 1.0 and later
  1603. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1604. * Windows: in qtmlClient.lib 3.0 and later
  1605. }
  1606. function GetPictureFileHeader( refNum: SInt16; var frame: Rect; var header: OpenCPicParams ): OSErr; external name '_GetPictureFileHeader';
  1607. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1608. {
  1609. * DrawPictureFile()
  1610. *
  1611. * Availability:
  1612. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1613. * CarbonLib: in CarbonLib 1.0 and later
  1614. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1615. * Windows: in qtmlClient.lib 3.0 and later
  1616. }
  1617. function DrawPictureFile( refNum: SInt16; const (*var*) frame: Rect; progressProc: ICMProgressProcRecordPtr ): OSErr; external name '_DrawPictureFile';
  1618. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1619. {
  1620. * DrawTrimmedPicture()
  1621. *
  1622. * Availability:
  1623. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1624. * CarbonLib: in CarbonLib 1.0 and later
  1625. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1626. * Windows: in qtmlClient.lib 3.0 and later
  1627. }
  1628. function DrawTrimmedPicture( srcPicture: PicHandle; const (*var*) frame: Rect; trimMask: RgnHandle; doDither: SInt16; progressProc: ICMProgressProcRecordPtr ): OSErr; external name '_DrawTrimmedPicture';
  1629. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1630. {
  1631. * DrawTrimmedPictureFile()
  1632. *
  1633. * Availability:
  1634. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1635. * CarbonLib: in CarbonLib 1.0 and later
  1636. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1637. * Windows: in qtmlClient.lib 3.0 and later
  1638. }
  1639. function DrawTrimmedPictureFile( srcRefnum: SInt16; const (*var*) frame: Rect; trimMask: RgnHandle; doDither: SInt16; progressProc: ICMProgressProcRecordPtr ): OSErr; external name '_DrawTrimmedPictureFile';
  1640. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1641. {
  1642. * MakeThumbnailFromPicture()
  1643. *
  1644. * Availability:
  1645. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1646. * CarbonLib: in CarbonLib 1.0 and later
  1647. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1648. * Windows: in qtmlClient.lib 3.0 and later
  1649. }
  1650. function MakeThumbnailFromPicture( picture: PicHandle; colorDepth: SInt16; thumbnail: PicHandle; progressProc: ICMProgressProcRecordPtr ): OSErr; external name '_MakeThumbnailFromPicture';
  1651. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1652. {
  1653. * MakeThumbnailFromPictureFile()
  1654. *
  1655. * Availability:
  1656. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1657. * CarbonLib: in CarbonLib 1.0 and later
  1658. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1659. * Windows: in qtmlClient.lib 3.0 and later
  1660. }
  1661. function MakeThumbnailFromPictureFile( refNum: SInt16; colorDepth: SInt16; thumbnail: PicHandle; progressProc: ICMProgressProcRecordPtr ): OSErr; external name '_MakeThumbnailFromPictureFile';
  1662. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1663. {
  1664. * MakeThumbnailFromPixMap()
  1665. *
  1666. * Availability:
  1667. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1668. * CarbonLib: in CarbonLib 1.0 and later
  1669. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1670. * Windows: in qtmlClient.lib 3.0 and later
  1671. }
  1672. function MakeThumbnailFromPixMap( src: PixMapHandle; const (*var*) srcRect: Rect; colorDepth: SInt16; thumbnail: PicHandle; progressProc: ICMProgressProcRecordPtr ): OSErr; external name '_MakeThumbnailFromPixMap';
  1673. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1674. {
  1675. * TrimImage()
  1676. *
  1677. * Availability:
  1678. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1679. * CarbonLib: in CarbonLib 1.0 and later
  1680. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1681. * Windows: in qtmlClient.lib 3.0 and later
  1682. }
  1683. function TrimImage( desc: ImageDescriptionHandle; inData: Ptr; inBufferSize: SIGNEDLONG; dataProc: ICMDataProcRecordPtr; outData: Ptr; outBufferSize: SIGNEDLONG; flushProc: ICMFlushProcRecordPtr; var trimRect: Rect; progressProc: ICMProgressProcRecordPtr ): OSErr; external name '_TrimImage';
  1684. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1685. {
  1686. * ConvertImage()
  1687. *
  1688. * Availability:
  1689. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1690. * CarbonLib: in CarbonLib 1.0 and later
  1691. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1692. * Windows: in qtmlClient.lib 3.0 and later
  1693. }
  1694. function ConvertImage( srcDD: ImageDescriptionHandle; srcData: Ptr; colorDepth: SInt16; ctable: CTabHandle; accuracy: CodecQ; quality: CodecQ; cType: CodecType; codec: CodecComponent; dstDD: ImageDescriptionHandle; dstData: Ptr ): OSErr; external name '_ConvertImage';
  1695. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1696. {
  1697. * GetCompressedPixMapInfo()
  1698. *
  1699. * Availability:
  1700. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1701. * CarbonLib: in CarbonLib 1.0 and later
  1702. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1703. * Windows: in qtmlClient.lib 3.0 and later
  1704. }
  1705. function GetCompressedPixMapInfo( pix: PixMapPtr; var desc: ImageDescriptionHandle; var data: Ptr; var bufferSize: SIGNEDLONG; var dataProc: ICMDataProcRecord; var progressProc: ICMProgressProcRecord ): OSErr; external name '_GetCompressedPixMapInfo';
  1706. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1707. {
  1708. * SetCompressedPixMapInfo()
  1709. *
  1710. * Availability:
  1711. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1712. * CarbonLib: in CarbonLib 1.0 and later
  1713. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1714. * Windows: in qtmlClient.lib 3.0 and later
  1715. }
  1716. function SetCompressedPixMapInfo( pix: PixMapPtr; desc: ImageDescriptionHandle; data: Ptr; bufferSize: SIGNEDLONG; dataProc: ICMDataProcRecordPtr; progressProc: ICMProgressProcRecordPtr ): OSErr; external name '_SetCompressedPixMapInfo';
  1717. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1718. {
  1719. * StdPix()
  1720. *
  1721. * Availability:
  1722. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1723. * CarbonLib: in CarbonLib 1.0 and later
  1724. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1725. * Windows: in qtmlClient.lib 3.0 and later
  1726. }
  1727. procedure StdPix( src: PixMapPtr; const (*var*) srcRect: Rect; matrix: MatrixRecordPtr; mode: SInt16; mask: RgnHandle; matte: PixMapPtr; const (*var*) matteRect: Rect; flags: SInt16 ); external name '_StdPix';
  1728. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1729. {
  1730. * TransformRgn()
  1731. *
  1732. * Availability:
  1733. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1734. * CarbonLib: in CarbonLib 1.0 and later
  1735. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1736. * Windows: in qtmlClient.lib 3.0 and later
  1737. }
  1738. function TransformRgn( matrix: MatrixRecordPtr; rgn: RgnHandle ): OSErr; external name '_TransformRgn';
  1739. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1740. {**********
  1741. preview stuff
  1742. **********}
  1743. {
  1744. * SFGetFilePreview()
  1745. *
  1746. * Availability:
  1747. * Mac OS X: not available
  1748. * CarbonLib: not available
  1749. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1750. * Windows: in qtmlClient.lib 3.0 and later
  1751. }
  1752. {
  1753. * SFPGetFilePreview()
  1754. *
  1755. * Availability:
  1756. * Mac OS X: not available
  1757. * CarbonLib: not available
  1758. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1759. * Windows: in qtmlClient.lib 3.0 and later
  1760. }
  1761. {
  1762. * StandardGetFilePreview()
  1763. *
  1764. * Availability:
  1765. * Mac OS X: not available
  1766. * CarbonLib: not available
  1767. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1768. * Windows: in qtmlClient.lib 3.0 and later
  1769. }
  1770. {
  1771. * CustomGetFilePreview()
  1772. *
  1773. * Availability:
  1774. * Mac OS X: not available
  1775. * CarbonLib: not available
  1776. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1777. * Windows: in qtmlClient.lib 3.0 and later
  1778. }
  1779. {
  1780. * MakeFilePreview()
  1781. *
  1782. * Availability:
  1783. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1784. * CarbonLib: in CarbonLib 1.0 and later
  1785. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1786. * Windows: in qtmlClient.lib 3.0 and later
  1787. }
  1788. function MakeFilePreview( resRefNum: SInt16; progress: ICMProgressProcRecordPtr ): OSErr; external name '_MakeFilePreview';
  1789. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1790. {
  1791. * AddFilePreview()
  1792. *
  1793. * Availability:
  1794. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1795. * CarbonLib: in CarbonLib 1.0 and later
  1796. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1797. * Windows: in qtmlClient.lib 3.0 and later
  1798. }
  1799. function AddFilePreview( resRefNum: SInt16; previewType: OSType; previewData: Handle ): OSErr; external name '_AddFilePreview';
  1800. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1801. type
  1802. PreviewResourceRecordPtr = ^PreviewResourceRecord;
  1803. PreviewResourceRecord = record
  1804. modDate: UNSIGNEDLONG;
  1805. version: SInt16;
  1806. resType: OSType;
  1807. resID: SInt16;
  1808. end;
  1809. type
  1810. PreviewResourcePtr = PreviewResourceRecordPtr;
  1811. PreviewResource = ^PreviewResourcePtr;
  1812. {
  1813. * AlignScreenRect()
  1814. *
  1815. * Availability:
  1816. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1817. * CarbonLib: in CarbonLib 1.0 and later
  1818. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1819. * Windows: in qtmlClient.lib 3.0 and later
  1820. }
  1821. procedure AlignScreenRect( var rp: Rect; alignmentProc: ICMAlignmentProcRecordPtr ); external name '_AlignScreenRect';
  1822. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1823. {
  1824. * AlignWindow()
  1825. *
  1826. * Availability:
  1827. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1828. * CarbonLib: in CarbonLib 1.0 and later
  1829. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1830. * Windows: in qtmlClient.lib 3.0 and later
  1831. }
  1832. procedure AlignWindow( wp: WindowRef; front: Boolean; const (*var*) alignmentRect: Rect; alignmentProc: ICMAlignmentProcRecordPtr ); external name '_AlignWindow';
  1833. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1834. {
  1835. * DragAlignedWindow()
  1836. *
  1837. * Availability:
  1838. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1839. * CarbonLib: in CarbonLib 1.0 and later
  1840. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1841. * Windows: in qtmlClient.lib 3.0 and later
  1842. }
  1843. procedure DragAlignedWindow( wp: WindowRef; startPt: Point; var boundsRect: Rect; var alignmentRect: Rect; alignmentProc: ICMAlignmentProcRecordPtr ); external name '_DragAlignedWindow';
  1844. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1845. {
  1846. * DragAlignedGrayRgn()
  1847. *
  1848. * Availability:
  1849. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1850. * CarbonLib: in CarbonLib 1.0 and later
  1851. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1852. * Windows: in qtmlClient.lib 3.0 and later
  1853. }
  1854. function DragAlignedGrayRgn( theRgn: RgnHandle; startPt: Point; var boundsRect: Rect; var slopRect: Rect; axis: SInt16; actionProc: UniversalProcPtr; var alignmentRect: Rect; alignmentProc: ICMAlignmentProcRecordPtr ): SIGNEDLONG; external name '_DragAlignedGrayRgn';
  1855. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1856. {
  1857. * SetCSequenceDataRateParams()
  1858. *
  1859. * Availability:
  1860. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1861. * CarbonLib: in CarbonLib 1.0 and later
  1862. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1863. * Windows: in qtmlClient.lib 3.0 and later
  1864. }
  1865. function SetCSequenceDataRateParams( seqID: ImageSequence; params: DataRateParamsPtr ): OSErr; external name '_SetCSequenceDataRateParams';
  1866. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1867. {
  1868. * SetCSequenceFrameNumber()
  1869. *
  1870. * Availability:
  1871. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1872. * CarbonLib: in CarbonLib 1.0 and later
  1873. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1874. * Windows: in qtmlClient.lib 3.0 and later
  1875. }
  1876. function SetCSequenceFrameNumber( seqID: ImageSequence; frameNumber: SIGNEDLONG ): OSErr; external name '_SetCSequenceFrameNumber';
  1877. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1878. {
  1879. * SetCSequencePreferredPacketSize()
  1880. *
  1881. * Availability:
  1882. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1883. * CarbonLib: in CarbonLib 1.0 and later
  1884. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1885. * Windows: in qtmlClient.lib 3.0 and later
  1886. }
  1887. function SetCSequencePreferredPacketSize( seqID: ImageSequence; preferredPacketSizeInBytes: SIGNEDLONG ): OSErr; external name '_SetCSequencePreferredPacketSize';
  1888. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1889. {
  1890. * NewImageGWorld()
  1891. *
  1892. * Availability:
  1893. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1894. * CarbonLib: in CarbonLib 1.0 and later
  1895. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1896. * Windows: in qtmlClient.lib 3.0 and later
  1897. }
  1898. function NewImageGWorld( var gworld: GWorldPtr; idh: ImageDescriptionHandle; flags: GWorldFlags ): OSErr; external name '_NewImageGWorld';
  1899. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1900. {
  1901. * GetCSequenceDataRateParams()
  1902. *
  1903. * Availability:
  1904. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1905. * CarbonLib: in CarbonLib 1.0 and later
  1906. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1907. * Windows: in qtmlClient.lib 3.0 and later
  1908. }
  1909. function GetCSequenceDataRateParams( seqID: ImageSequence; params: DataRateParamsPtr ): OSErr; external name '_GetCSequenceDataRateParams';
  1910. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1911. {
  1912. * GetCSequenceFrameNumber()
  1913. *
  1914. * Availability:
  1915. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1916. * CarbonLib: in CarbonLib 1.0 and later
  1917. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1918. * Windows: in qtmlClient.lib 3.0 and later
  1919. }
  1920. function GetCSequenceFrameNumber( seqID: ImageSequence; var frameNumber: SIGNEDLONG ): OSErr; external name '_GetCSequenceFrameNumber';
  1921. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1922. {
  1923. * GetBestDeviceRect()
  1924. *
  1925. * Availability:
  1926. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1927. * CarbonLib: in CarbonLib 1.0 and later
  1928. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1929. * Windows: in qtmlClient.lib 3.0 and later
  1930. }
  1931. function GetBestDeviceRect( var gdh: GDHandle; var rp: Rect ): OSErr; external name '_GetBestDeviceRect';
  1932. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1933. {
  1934. * SetSequenceProgressProc()
  1935. *
  1936. * Availability:
  1937. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1938. * CarbonLib: in CarbonLib 1.0 and later
  1939. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1940. * Windows: in qtmlClient.lib 3.0 and later
  1941. }
  1942. function SetSequenceProgressProc( seqID: ImageSequence; var progressProc: ICMProgressProcRecord ): OSErr; external name '_SetSequenceProgressProc';
  1943. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1944. {
  1945. * GDHasScale()
  1946. *
  1947. * Availability:
  1948. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1949. * CarbonLib: in CarbonLib 1.0 and later
  1950. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1951. * Windows: in qtmlClient.lib 3.0 and later
  1952. }
  1953. function GDHasScale( gdh: GDHandle; depth: SInt16; var scale: Fixed ): OSErr; external name '_GDHasScale';
  1954. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1955. {
  1956. * GDGetScale()
  1957. *
  1958. * Availability:
  1959. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1960. * CarbonLib: in CarbonLib 1.0 and later
  1961. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1962. * Windows: in qtmlClient.lib 3.0 and later
  1963. }
  1964. function GDGetScale( gdh: GDHandle; var scale: Fixed; var flags: SInt16 ): OSErr; external name '_GDGetScale';
  1965. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1966. {
  1967. * GDSetScale()
  1968. *
  1969. * Availability:
  1970. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1971. * CarbonLib: in CarbonLib 1.0 and later
  1972. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1973. * Windows: in qtmlClient.lib 3.0 and later
  1974. }
  1975. function GDSetScale( gdh: GDHandle; scale: Fixed; flags: SInt16 ): OSErr; external name '_GDSetScale';
  1976. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1977. {
  1978. * ICMShieldSequenceCursor()
  1979. *
  1980. * Availability:
  1981. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1982. * CarbonLib: in CarbonLib 1.0 and later
  1983. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1984. * Windows: in qtmlClient.lib 3.0 and later
  1985. }
  1986. function ICMShieldSequenceCursor( seqID: ImageSequence ): OSErr; external name '_ICMShieldSequenceCursor';
  1987. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1988. {
  1989. * ICMDecompressComplete()
  1990. *
  1991. * Availability:
  1992. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1993. * CarbonLib: in CarbonLib 1.0 and later
  1994. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1995. * Windows: in qtmlClient.lib 3.0 and later
  1996. }
  1997. procedure ICMDecompressComplete( seqID: ImageSequence; err: OSErr; flag: SInt16; completionRtn: ICMCompletionProcRecordPtr ); external name '_ICMDecompressComplete';
  1998. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1999. {
  2000. * ICMDecompressCompleteS()
  2001. *
  2002. * Availability:
  2003. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2004. * CarbonLib: in CarbonLib 1.1 and later
  2005. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2006. * Windows: in qtmlClient.lib 3.0 and later
  2007. }
  2008. function ICMDecompressCompleteS( seqID: ImageSequence; err: OSErr; flag: SInt16; completionRtn: ICMCompletionProcRecordPtr ): OSErr; external name '_ICMDecompressCompleteS';
  2009. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2010. {
  2011. * ICMSequenceLockBits()
  2012. *
  2013. * Availability:
  2014. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2015. * CarbonLib: in CarbonLib 1.0 and later
  2016. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2017. * Windows: in qtmlClient.lib 3.0 and later
  2018. }
  2019. function ICMSequenceLockBits( seqID: ImageSequence; dst: PixMapPtr; flags: SIGNEDLONG ): OSErr; external name '_ICMSequenceLockBits';
  2020. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2021. {
  2022. * ICMSequenceUnlockBits()
  2023. *
  2024. * Availability:
  2025. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2026. * CarbonLib: in CarbonLib 1.0 and later
  2027. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2028. * Windows: in qtmlClient.lib 3.0 and later
  2029. }
  2030. function ICMSequenceUnlockBits( seqID: ImageSequence; flags: SIGNEDLONG ): OSErr; external name '_ICMSequenceUnlockBits';
  2031. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2032. const
  2033. kICMPixelFormatIsPlanarMask = $0F; { these bits in formatFlags indicate how many planes there are; they're 0 if chunky}
  2034. kICMPixelFormatIsIndexed = 1 shl 4;
  2035. kICMPixelFormatIsSupportedByQD = 1 shl 5;
  2036. kICMPixelFormatIsMonochrome = 1 shl 6;
  2037. kICMPixelFormatHasAlphaChannel = 1 shl 7;
  2038. type
  2039. ICMPixelFormatInfo = record
  2040. size: SIGNEDLONG; { caller MUST fill this in with sizeof(ICMPixelFormatInfo) before calling ICMGet/SetPixelFormatInfo}
  2041. formatFlags: UNSIGNEDLONG;
  2042. bitsPerPixel: array [0..13] of SInt16; { list each plane's bits per pixel separately if planar}
  2043. { new field for QuickTime 4.1}
  2044. defaultGammaLevel: Fixed;
  2045. { new fields for QuickTime 6.0}
  2046. horizontalSubsampling: array [0..13] of SInt16; { per plane; use 1 if plane is not subsampled}
  2047. verticalSubsampling: array [0..13] of SInt16; { per plane; use 1 if plane is not subsampled}
  2048. { new fields for QuickTime 6.5}
  2049. cmpCount: SInt16; { for use in PixMap.cmpCount}
  2050. cmpSize: SInt16; { for use in PixMap.cmpSize}
  2051. end;
  2052. ICMPixelFormatInfoPtr = ^ICMPixelFormatInfo;
  2053. { IMPORTANT: Fill in theInfo->size with sizeof(ICMPixelFormatInfo) before calling ICMGetPixelFormatInfo }
  2054. {
  2055. * ICMGetPixelFormatInfo()
  2056. *
  2057. * Availability:
  2058. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2059. * CarbonLib: in CarbonLib 1.0 and later
  2060. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2061. * Windows: in qtmlClient.lib 3.0 and later
  2062. }
  2063. function ICMGetPixelFormatInfo( PixelFormat: OSType; theInfo: ICMPixelFormatInfoPtr ): OSErr; external name '_ICMGetPixelFormatInfo';
  2064. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2065. { IMPORTANT: Fill in theInfo->size with sizeof(ICMPixelFormatInfo) before calling ICMSetPixelFormatInfo }
  2066. {
  2067. * ICMSetPixelFormatInfo()
  2068. *
  2069. * Availability:
  2070. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2071. * CarbonLib: in CarbonLib 1.1 and later
  2072. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2073. * Windows: in qtmlClient.lib 3.0 and later
  2074. }
  2075. function ICMSetPixelFormatInfo( PixelFormat: OSType; theInfo: ICMPixelFormatInfoPtr ): OSErr; external name '_ICMSetPixelFormatInfo';
  2076. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2077. const
  2078. kICMGetChainUltimateParent = 0;
  2079. kICMGetChainParent = 1;
  2080. kICMGetChainChild = 2;
  2081. kICMGetChainUltimateChild = 3;
  2082. {
  2083. * ICMSequenceGetChainMember()
  2084. *
  2085. * Availability:
  2086. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2087. * CarbonLib: in CarbonLib 1.0 and later
  2088. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2089. * Windows: in qtmlClient.lib 3.0 and later
  2090. }
  2091. function ICMSequenceGetChainMember( seqID: ImageSequence; var retSeqID: ImageSequence; flags: SIGNEDLONG ): OSErr; external name '_ICMSequenceGetChainMember';
  2092. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2093. {
  2094. * SetDSequenceTimeCode()
  2095. *
  2096. * Availability:
  2097. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2098. * CarbonLib: in CarbonLib 1.0 and later
  2099. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2100. * Windows: in qtmlClient.lib 3.0 and later
  2101. }
  2102. function SetDSequenceTimeCode( seqID: ImageSequence; timeCodeFormat: UnivPtr; timeCodeTime: UnivPtr ): OSErr; external name '_SetDSequenceTimeCode';
  2103. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2104. {
  2105. * CDSequenceNewMemory()
  2106. *
  2107. * Availability:
  2108. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2109. * CarbonLib: in CarbonLib 1.0 and later
  2110. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2111. * Windows: in qtmlClient.lib 3.0 and later
  2112. }
  2113. function CDSequenceNewMemory( seqID: ImageSequence; var data: Ptr; dataSize: Size; dataUse: SIGNEDLONG; memoryGoneProc: ICMMemoryDisposedUPP; refCon: UnivPtr ): OSErr; external name '_CDSequenceNewMemory';
  2114. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2115. {
  2116. * CDSequenceDisposeMemory()
  2117. *
  2118. * Availability:
  2119. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2120. * CarbonLib: in CarbonLib 1.0 and later
  2121. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2122. * Windows: in qtmlClient.lib 3.0 and later
  2123. }
  2124. function CDSequenceDisposeMemory( seqID: ImageSequence; data: Ptr ): OSErr; external name '_CDSequenceDisposeMemory';
  2125. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2126. {
  2127. * CDSequenceNewDataSource()
  2128. *
  2129. * Availability:
  2130. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2131. * CarbonLib: in CarbonLib 1.0 and later
  2132. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2133. * Windows: in qtmlClient.lib 3.0 and later
  2134. }
  2135. function CDSequenceNewDataSource( seqID: ImageSequence; var sourceID: ImageSequenceDataSource; sourceType: OSType; sourceInputNumber: SIGNEDLONG; dataDescription: Handle; transferProc: ICMConvertDataFormatUPP; refCon: UnivPtr ): OSErr; external name '_CDSequenceNewDataSource';
  2136. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2137. {
  2138. * CDSequenceDisposeDataSource()
  2139. *
  2140. * Availability:
  2141. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2142. * CarbonLib: in CarbonLib 1.0 and later
  2143. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2144. * Windows: in qtmlClient.lib 3.0 and later
  2145. }
  2146. function CDSequenceDisposeDataSource( sourceID: ImageSequenceDataSource ): OSErr; external name '_CDSequenceDisposeDataSource';
  2147. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2148. {
  2149. * CDSequenceSetSourceData()
  2150. *
  2151. * Availability:
  2152. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2153. * CarbonLib: in CarbonLib 1.0 and later
  2154. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2155. * Windows: in qtmlClient.lib 3.0 and later
  2156. }
  2157. function CDSequenceSetSourceData( sourceID: ImageSequenceDataSource; data: UnivPtr; dataSize: SIGNEDLONG ): OSErr; external name '_CDSequenceSetSourceData';
  2158. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2159. {
  2160. * CDSequenceChangedSourceData()
  2161. *
  2162. * Availability:
  2163. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2164. * CarbonLib: in CarbonLib 1.0 and later
  2165. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2166. * Windows: in qtmlClient.lib 3.0 and later
  2167. }
  2168. function CDSequenceChangedSourceData( sourceID: ImageSequenceDataSource ): OSErr; external name '_CDSequenceChangedSourceData';
  2169. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2170. {
  2171. * CDSequenceSetSourceDataQueue()
  2172. *
  2173. * Availability:
  2174. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2175. * CarbonLib: in CarbonLib 1.1 and later
  2176. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2177. * Windows: in qtmlClient.lib 3.0 and later
  2178. }
  2179. function CDSequenceSetSourceDataQueue( sourceID: ImageSequenceDataSource; dataQueue: QHdrPtr ): OSErr; external name '_CDSequenceSetSourceDataQueue';
  2180. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2181. {
  2182. * CDSequenceGetDataSource()
  2183. *
  2184. * Availability:
  2185. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2186. * CarbonLib: in CarbonLib 1.0 and later
  2187. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2188. * Windows: in qtmlClient.lib 3.0 and later
  2189. }
  2190. function CDSequenceGetDataSource( seqID: ImageSequence; var sourceID: ImageSequenceDataSource; sourceType: OSType; sourceInputNumber: SIGNEDLONG ): OSErr; external name '_CDSequenceGetDataSource';
  2191. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2192. {
  2193. * PtInDSequenceData()
  2194. *
  2195. * Availability:
  2196. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2197. * CarbonLib: in CarbonLib 1.0 and later
  2198. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2199. * Windows: in qtmlClient.lib 3.0 and later
  2200. }
  2201. function PtInDSequenceData( seqID: ImageSequence; data: UnivPtr; dataSize: Size; where: Point; var hit: Boolean ): OSErr; external name '_PtInDSequenceData';
  2202. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2203. {
  2204. * HitTestDSequenceData()
  2205. *
  2206. * Availability:
  2207. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2208. * CarbonLib: in CarbonLib 1.0 and later
  2209. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2210. * Windows: in qtmlClient.lib 3.0 and later
  2211. }
  2212. function HitTestDSequenceData( seqID: ImageSequence; data: UnivPtr; dataSize: Size; where: Point; var hit: SIGNEDLONG; hitFlags: SIGNEDLONG ): OSErr; external name '_HitTestDSequenceData';
  2213. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2214. {
  2215. * SetDSequenceNonScheduledDisplayTime()
  2216. *
  2217. * Availability:
  2218. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  2219. * CarbonLib: not available
  2220. * Non-Carbon CFM: not available
  2221. * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
  2222. }
  2223. function SetDSequenceNonScheduledDisplayTime( sequence: ImageSequence; displayTime: TimeValue64; displayTimeScale: TimeScale; flags: UInt32 ): OSErr; external name '_SetDSequenceNonScheduledDisplayTime';
  2224. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  2225. {
  2226. * GetDSequenceNonScheduledDisplayTime()
  2227. *
  2228. * Availability:
  2229. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  2230. * CarbonLib: not available
  2231. * Non-Carbon CFM: not available
  2232. * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
  2233. }
  2234. function GetDSequenceNonScheduledDisplayTime( sequence: ImageSequence; var displayTime: TimeValue64; var displayTimeScale: TimeScale ): OSErr; external name '_GetDSequenceNonScheduledDisplayTime';
  2235. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  2236. {
  2237. * SetDSequenceNonScheduledDisplayDirection()
  2238. *
  2239. * Availability:
  2240. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  2241. * CarbonLib: not available
  2242. * Non-Carbon CFM: not available
  2243. * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
  2244. }
  2245. function SetDSequenceNonScheduledDisplayDirection( sequence: ImageSequence; rate: Fixed ): OSErr; external name '_SetDSequenceNonScheduledDisplayDirection';
  2246. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  2247. {
  2248. * GetDSequenceNonScheduledDisplayDirection()
  2249. *
  2250. * Availability:
  2251. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  2252. * CarbonLib: not available
  2253. * Non-Carbon CFM: not available
  2254. * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
  2255. }
  2256. function GetDSequenceNonScheduledDisplayDirection( sequence: ImageSequence; var rate: Fixed ): OSErr; external name '_GetDSequenceNonScheduledDisplayDirection';
  2257. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  2258. {
  2259. * GetGraphicsImporterForFile()
  2260. *
  2261. * Availability:
  2262. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2263. * CarbonLib: in CarbonLib 1.0 and later
  2264. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2265. * Windows: in qtmlClient.lib 3.0 and later
  2266. }
  2267. function GetGraphicsImporterForFile( const (*var*) theFile: FSSpec; var gi: ComponentInstance ): OSErr; external name '_GetGraphicsImporterForFile';
  2268. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2269. {
  2270. * GetGraphicsImporterForDataRef()
  2271. *
  2272. * Availability:
  2273. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2274. * CarbonLib: in CarbonLib 1.0 and later
  2275. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2276. * Windows: in qtmlClient.lib 3.0 and later
  2277. }
  2278. function GetGraphicsImporterForDataRef( dataRef: Handle; dataRefType: OSType; var gi: ComponentInstance ): OSErr; external name '_GetGraphicsImporterForDataRef';
  2279. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2280. const
  2281. kDontUseValidateToFindGraphicsImporter = 1 shl 0;
  2282. {
  2283. * GetGraphicsImporterForFileWithFlags()
  2284. *
  2285. * Availability:
  2286. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2287. * CarbonLib: in CarbonLib 1.1 and later
  2288. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2289. * Windows: in qtmlClient.lib 3.0 and later
  2290. }
  2291. function GetGraphicsImporterForFileWithFlags( const (*var*) theFile: FSSpec; var gi: ComponentInstance; flags: SIGNEDLONG ): OSErr; external name '_GetGraphicsImporterForFileWithFlags';
  2292. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2293. {
  2294. * GetGraphicsImporterForDataRefWithFlags()
  2295. *
  2296. * Availability:
  2297. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2298. * CarbonLib: in CarbonLib 1.1 and later
  2299. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2300. * Windows: in qtmlClient.lib 3.0 and later
  2301. }
  2302. function GetGraphicsImporterForDataRefWithFlags( dataRef: Handle; dataRefType: OSType; var gi: ComponentInstance; flags: SIGNEDLONG ): OSErr; external name '_GetGraphicsImporterForDataRefWithFlags';
  2303. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2304. {
  2305. * QTGetFileNameExtension()
  2306. *
  2307. * Availability:
  2308. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2309. * CarbonLib: in CarbonLib 1.0 and later
  2310. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2311. * Windows: in qtmlClient.lib 3.0 and later
  2312. }
  2313. function QTGetFileNameExtension(const (*var*) fileName: StrFileName; fileType: OSType; var extension: OSType ): OSErr; external name '_QTGetFileNameExtension';
  2314. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2315. {
  2316. * ImageTranscodeSequenceBegin()
  2317. *
  2318. * Availability:
  2319. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2320. * CarbonLib: in CarbonLib 1.0 and later
  2321. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2322. * Windows: in qtmlClient.lib 3.0 and later
  2323. }
  2324. function ImageTranscodeSequenceBegin( var its: ImageTranscodeSequence; srcDesc: ImageDescriptionHandle; destType: OSType; var dstDesc: ImageDescriptionHandle; data: UnivPtr; dataSize: SIGNEDLONG ): OSErr; external name '_ImageTranscodeSequenceBegin';
  2325. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2326. {
  2327. * ImageTranscodeSequenceEnd()
  2328. *
  2329. * Availability:
  2330. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2331. * CarbonLib: in CarbonLib 1.0 and later
  2332. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2333. * Windows: in qtmlClient.lib 3.0 and later
  2334. }
  2335. function ImageTranscodeSequenceEnd( its: ImageTranscodeSequence ): OSErr; external name '_ImageTranscodeSequenceEnd';
  2336. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2337. {
  2338. * ImageTranscodeFrame()
  2339. *
  2340. * Availability:
  2341. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2342. * CarbonLib: in CarbonLib 1.0 and later
  2343. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2344. * Windows: in qtmlClient.lib 3.0 and later
  2345. }
  2346. function ImageTranscodeFrame( its: ImageTranscodeSequence; srcData: UnivPtr; srcDataSize: SIGNEDLONG; var dstData: UnivPtr; var dstDataSize: SIGNEDLONG ): OSErr; external name '_ImageTranscodeFrame';
  2347. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2348. {
  2349. * ImageTranscodeDisposeFrameData()
  2350. *
  2351. * Availability:
  2352. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2353. * CarbonLib: in CarbonLib 1.0 and later
  2354. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2355. * Windows: in qtmlClient.lib 3.0 and later
  2356. }
  2357. function ImageTranscodeDisposeFrameData( its: ImageTranscodeSequence; dstData: UnivPtr ): OSErr; external name '_ImageTranscodeDisposeFrameData';
  2358. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2359. {
  2360. * CDSequenceInvalidate()
  2361. *
  2362. * Availability:
  2363. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2364. * CarbonLib: in CarbonLib 1.0 and later
  2365. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2366. * Windows: in qtmlClient.lib 3.0 and later
  2367. }
  2368. function CDSequenceInvalidate( seqID: ImageSequence; invalRgn: RgnHandle ): OSErr; external name '_CDSequenceInvalidate';
  2369. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2370. {
  2371. * CDSequenceSetTimeBase()
  2372. *
  2373. * Availability:
  2374. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2375. * CarbonLib: in CarbonLib 1.0 and later
  2376. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2377. * Windows: in qtmlClient.lib 3.0 and later
  2378. }
  2379. function CDSequenceSetTimeBase( seqID: ImageSequence; base: UnivPtr ): OSErr; external name '_CDSequenceSetTimeBase';
  2380. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2381. {
  2382. * ImageFieldSequenceBegin()
  2383. *
  2384. * Availability:
  2385. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2386. * CarbonLib: in CarbonLib 1.0 and later
  2387. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2388. * Windows: in qtmlClient.lib 3.0 and later
  2389. }
  2390. function ImageFieldSequenceBegin( var ifs: ImageFieldSequence; desc1: ImageDescriptionHandle; desc2: ImageDescriptionHandle; descOut: ImageDescriptionHandle ): OSErr; external name '_ImageFieldSequenceBegin';
  2391. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2392. {
  2393. * ImageFieldSequenceExtractCombine()
  2394. *
  2395. * Availability:
  2396. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2397. * CarbonLib: in CarbonLib 1.0 and later
  2398. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2399. * Windows: in qtmlClient.lib 3.0 and later
  2400. }
  2401. function ImageFieldSequenceExtractCombine( ifs: ImageFieldSequence; fieldFlags: SIGNEDLONG; data1: UnivPtr; dataSize1: SIGNEDLONG; data2: UnivPtr; dataSize2: SIGNEDLONG; outputData: UnivPtr; var outDataSize: SIGNEDLONG ): OSErr; external name '_ImageFieldSequenceExtractCombine';
  2402. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2403. {
  2404. * ImageFieldSequenceEnd()
  2405. *
  2406. * Availability:
  2407. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2408. * CarbonLib: in CarbonLib 1.0 and later
  2409. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2410. * Windows: in qtmlClient.lib 3.0 and later
  2411. }
  2412. function ImageFieldSequenceEnd( ifs: ImageFieldSequence ): OSErr; external name '_ImageFieldSequenceEnd';
  2413. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2414. const
  2415. kICMTempThenAppMemory = 1 shl 12;
  2416. kICMAppThenTempMemory = 1 shl 13;
  2417. {
  2418. * QTNewGWorld()
  2419. *
  2420. * Availability:
  2421. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2422. * CarbonLib: in CarbonLib 1.0 and later
  2423. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2424. * Windows: in qtmlClient.lib 3.0 and later
  2425. }
  2426. function QTNewGWorld( var offscreenGWorld: GWorldPtr; PixelFormat: OSType; const (*var*) boundsRect: Rect; cTable: CTabHandle; aGDevice: GDHandle; flags: GWorldFlags ): OSErr; external name '_QTNewGWorld';
  2427. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2428. {
  2429. * QTNewGWorldFromPtr()
  2430. *
  2431. * Availability:
  2432. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2433. * CarbonLib: in CarbonLib 1.0.2 and later
  2434. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  2435. * Windows: in qtmlClient.lib 4.0 and later
  2436. }
  2437. function QTNewGWorldFromPtr( var gw: GWorldPtr; pixelFormat: OSType; const (*var*) boundsRect: Rect; cTable: CTabHandle; aGDevice: GDHandle; flags: GWorldFlags; baseAddr: UnivPtr; rowBytes: SIGNEDLONG ): OSErr; external name '_QTNewGWorldFromPtr';
  2438. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2439. {
  2440. * QTUpdateGWorld()
  2441. *
  2442. * Availability:
  2443. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2444. * CarbonLib: in CarbonLib 1.0 and later
  2445. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2446. * Windows: in qtmlClient.lib 3.0 and later
  2447. }
  2448. function QTUpdateGWorld( var offscreenGWorld: GWorldPtr; PixelFormat: OSType; const (*var*) boundsRect: Rect; cTable: CTabHandle; aGDevice: GDHandle; flags: GWorldFlags ): GWorldFlags; external name '_QTUpdateGWorld';
  2449. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2450. {
  2451. * MakeImageDescriptionForPixMap()
  2452. *
  2453. * Availability:
  2454. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2455. * CarbonLib: in CarbonLib 1.0 and later
  2456. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2457. * Windows: in qtmlClient.lib 3.0 and later
  2458. }
  2459. function MakeImageDescriptionForPixMap( pixmap: PixMapHandle; var idh: ImageDescriptionHandle ): OSErr; external name '_MakeImageDescriptionForPixMap';
  2460. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2461. {
  2462. * MakeImageDescriptionForEffect()
  2463. *
  2464. * Availability:
  2465. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2466. * CarbonLib: in CarbonLib 1.0.2 and later
  2467. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  2468. * Windows: in qtmlClient.lib 4.0 and later
  2469. }
  2470. function MakeImageDescriptionForEffect( effectType: OSType; var idh: ImageDescriptionHandle ): OSErr; external name '_MakeImageDescriptionForEffect';
  2471. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2472. {
  2473. * QTGetPixelSize()
  2474. *
  2475. * Availability:
  2476. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2477. * CarbonLib: in CarbonLib 1.0 and later
  2478. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2479. * Windows: in qtmlClient.lib 3.0 and later
  2480. }
  2481. function QTGetPixelSize( PixelFormat: OSType ): SInt16; external name '_QTGetPixelSize';
  2482. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2483. {
  2484. * QTGetPixelFormatDepthForImageDescription()
  2485. *
  2486. * Availability:
  2487. * Mac OS X: in version 10.2 and later in QuickTime.framework
  2488. * CarbonLib: in CarbonLib 1.6 and later
  2489. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  2490. * Windows: in qtmlClient.lib 6.0 and later
  2491. }
  2492. function QTGetPixelFormatDepthForImageDescription( PixelFormat: OSType ): SInt16; external name '_QTGetPixelFormatDepthForImageDescription';
  2493. (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
  2494. {
  2495. * QTGetPixMapPtrRowBytes()
  2496. *
  2497. * Availability:
  2498. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2499. * CarbonLib: in CarbonLib 1.0.2 and later
  2500. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  2501. * Windows: in qtmlClient.lib 4.0 and later
  2502. }
  2503. function QTGetPixMapPtrRowBytes( pm: PixMapPtr ): SIGNEDLONG; external name '_QTGetPixMapPtrRowBytes';
  2504. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2505. {
  2506. * QTGetPixMapHandleRowBytes()
  2507. *
  2508. * Availability:
  2509. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2510. * CarbonLib: in CarbonLib 1.0.2 and later
  2511. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  2512. * Windows: in qtmlClient.lib 4.0 and later
  2513. }
  2514. function QTGetPixMapHandleRowBytes( pm: PixMapHandle ): SIGNEDLONG; external name '_QTGetPixMapHandleRowBytes';
  2515. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2516. {
  2517. * QTSetPixMapPtrRowBytes()
  2518. *
  2519. * Availability:
  2520. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2521. * CarbonLib: in CarbonLib 1.0.2 and later
  2522. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  2523. * Windows: in qtmlClient.lib 4.0 and later
  2524. }
  2525. function QTSetPixMapPtrRowBytes( pm: PixMapPtr; rowBytes: SIGNEDLONG ): OSErr; external name '_QTSetPixMapPtrRowBytes';
  2526. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2527. {
  2528. * QTSetPixMapHandleRowBytes()
  2529. *
  2530. * Availability:
  2531. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2532. * CarbonLib: in CarbonLib 1.0.2 and later
  2533. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  2534. * Windows: in qtmlClient.lib 4.0 and later
  2535. }
  2536. function QTSetPixMapHandleRowBytes( pm: PixMapHandle; rowBytes: SIGNEDLONG ): OSErr; external name '_QTSetPixMapHandleRowBytes';
  2537. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2538. const
  2539. kQTUsePlatformDefaultGammaLevel = 0; { When decompressing into this PixMap, gamma-correct to the platform's standard gamma. }
  2540. kQTUseSourceGammaLevel = -1; { When decompressing into this PixMap, don't perform gamma-correction. }
  2541. kQTCCIR601VideoGammaLevel = $00023333; { 2.2, standard television video gamma.}
  2542. {
  2543. * QTGetPixMapPtrGammaLevel()
  2544. *
  2545. * Availability:
  2546. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2547. * CarbonLib: in CarbonLib 1.3 and later
  2548. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  2549. * Windows: in qtmlClient.lib 5.0 and later
  2550. }
  2551. function QTGetPixMapPtrGammaLevel( pm: PixMapPtr ): Fixed; external name '_QTGetPixMapPtrGammaLevel';
  2552. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2553. {
  2554. * QTSetPixMapPtrGammaLevel()
  2555. *
  2556. * Availability:
  2557. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2558. * CarbonLib: in CarbonLib 1.3 and later
  2559. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  2560. * Windows: in qtmlClient.lib 5.0 and later
  2561. }
  2562. function QTSetPixMapPtrGammaLevel( pm: PixMapPtr; gammaLevel: Fixed ): OSErr; external name '_QTSetPixMapPtrGammaLevel';
  2563. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2564. {
  2565. * QTGetPixMapHandleGammaLevel()
  2566. *
  2567. * Availability:
  2568. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2569. * CarbonLib: in CarbonLib 1.3 and later
  2570. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  2571. * Windows: in qtmlClient.lib 5.0 and later
  2572. }
  2573. function QTGetPixMapHandleGammaLevel( pm: PixMapHandle ): Fixed; external name '_QTGetPixMapHandleGammaLevel';
  2574. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2575. {
  2576. * QTSetPixMapHandleGammaLevel()
  2577. *
  2578. * Availability:
  2579. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2580. * CarbonLib: in CarbonLib 1.3 and later
  2581. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  2582. * Windows: in qtmlClient.lib 5.0 and later
  2583. }
  2584. function QTSetPixMapHandleGammaLevel( pm: PixMapHandle; gammaLevel: Fixed ): OSErr; external name '_QTSetPixMapHandleGammaLevel';
  2585. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2586. {
  2587. * QTGetPixMapPtrRequestedGammaLevel()
  2588. *
  2589. * Availability:
  2590. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2591. * CarbonLib: in CarbonLib 1.3 and later
  2592. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  2593. * Windows: in qtmlClient.lib 5.0 and later
  2594. }
  2595. function QTGetPixMapPtrRequestedGammaLevel( pm: PixMapPtr ): Fixed; external name '_QTGetPixMapPtrRequestedGammaLevel';
  2596. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2597. {
  2598. * QTSetPixMapPtrRequestedGammaLevel()
  2599. *
  2600. * Availability:
  2601. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2602. * CarbonLib: in CarbonLib 1.3 and later
  2603. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  2604. * Windows: in qtmlClient.lib 5.0 and later
  2605. }
  2606. function QTSetPixMapPtrRequestedGammaLevel( pm: PixMapPtr; requestedGammaLevel: Fixed ): OSErr; external name '_QTSetPixMapPtrRequestedGammaLevel';
  2607. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2608. {
  2609. * QTGetPixMapHandleRequestedGammaLevel()
  2610. *
  2611. * Availability:
  2612. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2613. * CarbonLib: in CarbonLib 1.3 and later
  2614. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  2615. * Windows: in qtmlClient.lib 5.0 and later
  2616. }
  2617. function QTGetPixMapHandleRequestedGammaLevel( pm: PixMapHandle ): Fixed; external name '_QTGetPixMapHandleRequestedGammaLevel';
  2618. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2619. {
  2620. * QTSetPixMapHandleRequestedGammaLevel()
  2621. *
  2622. * Availability:
  2623. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2624. * CarbonLib: in CarbonLib 1.3 and later
  2625. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  2626. * Windows: in qtmlClient.lib 5.0 and later
  2627. }
  2628. function QTSetPixMapHandleRequestedGammaLevel( pm: PixMapHandle; requestedGammaLevel: Fixed ): OSErr; external name '_QTSetPixMapHandleRequestedGammaLevel';
  2629. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2630. {
  2631. * QuadToQuadMatrix()
  2632. *
  2633. * Availability:
  2634. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2635. * CarbonLib: in CarbonLib 1.0.2 and later
  2636. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  2637. * Windows: in qtmlClient.lib 4.0 and later
  2638. }
  2639. type
  2640. FixedPoint4 = array[0..3] of FixedPoint;
  2641. function QuadToQuadMatrix( const (*var*) source: FixedPoint4; const (*var*) dest: FixedPoint4; var map: MatrixRecord ): OSErr; external name '_QuadToQuadMatrix';
  2642. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2643. const
  2644. identityMatrixType = $00; { result if matrix is identity }
  2645. translateMatrixType = $01; { result if matrix translates }
  2646. scaleMatrixType = $02; { result if matrix scales }
  2647. scaleTranslateMatrixType = $03; { result if matrix scales and translates }
  2648. linearMatrixType = $04; { result if matrix is general 2 x 2 }
  2649. linearTranslateMatrixType = $05; { result if matrix is general 2 x 2 and translates }
  2650. perspectiveMatrixType = $06; { result if matrix is general 3 x 3 }
  2651. type
  2652. MatrixFlags = UInt16;
  2653. {
  2654. * GetMatrixType()
  2655. *
  2656. * Availability:
  2657. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2658. * CarbonLib: in CarbonLib 1.0 and later
  2659. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2660. * Windows: in qtmlClient.lib 3.0 and later
  2661. }
  2662. function GetMatrixType( const (*var*) m: MatrixRecord ): SInt16; external name '_GetMatrixType';
  2663. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2664. {
  2665. * CopyMatrix()
  2666. *
  2667. * Availability:
  2668. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2669. * CarbonLib: in CarbonLib 1.0 and later
  2670. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2671. * Windows: in qtmlClient.lib 3.0 and later
  2672. }
  2673. procedure CopyMatrix( const (*var*) m1: MatrixRecord; var m2: MatrixRecord ); external name '_CopyMatrix';
  2674. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2675. {
  2676. * EqualMatrix()
  2677. *
  2678. * Availability:
  2679. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2680. * CarbonLib: in CarbonLib 1.0 and later
  2681. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2682. * Windows: in qtmlClient.lib 3.0 and later
  2683. }
  2684. function EqualMatrix( const (*var*) m1: MatrixRecord; const (*var*) m2: MatrixRecord ): Boolean; external name '_EqualMatrix';
  2685. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2686. {
  2687. * SetIdentityMatrix()
  2688. *
  2689. * Availability:
  2690. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2691. * CarbonLib: in CarbonLib 1.0 and later
  2692. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2693. * Windows: in qtmlClient.lib 3.0 and later
  2694. }
  2695. procedure SetIdentityMatrix( var matrix: MatrixRecord ); external name '_SetIdentityMatrix';
  2696. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2697. {
  2698. * TranslateMatrix()
  2699. *
  2700. * Availability:
  2701. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2702. * CarbonLib: in CarbonLib 1.0 and later
  2703. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2704. * Windows: in qtmlClient.lib 3.0 and later
  2705. }
  2706. procedure TranslateMatrix( var m: MatrixRecord; deltaH: Fixed; deltaV: Fixed ); external name '_TranslateMatrix';
  2707. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2708. {
  2709. * RotateMatrix()
  2710. *
  2711. * Availability:
  2712. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2713. * CarbonLib: in CarbonLib 1.0 and later
  2714. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2715. * Windows: in qtmlClient.lib 3.0 and later
  2716. }
  2717. procedure RotateMatrix( var m: MatrixRecord; degrees: Fixed; aboutX: Fixed; aboutY: Fixed ); external name '_RotateMatrix';
  2718. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2719. {
  2720. * ScaleMatrix()
  2721. *
  2722. * Availability:
  2723. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2724. * CarbonLib: in CarbonLib 1.0 and later
  2725. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2726. * Windows: in qtmlClient.lib 3.0 and later
  2727. }
  2728. procedure ScaleMatrix( var m: MatrixRecord; scaleX: Fixed; scaleY: Fixed; aboutX: Fixed; aboutY: Fixed ); external name '_ScaleMatrix';
  2729. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2730. {
  2731. * SkewMatrix()
  2732. *
  2733. * Availability:
  2734. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2735. * CarbonLib: in CarbonLib 1.0 and later
  2736. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2737. * Windows: in qtmlClient.lib 3.0 and later
  2738. }
  2739. procedure SkewMatrix( var m: MatrixRecord; skewX: Fixed; skewY: Fixed; aboutX: Fixed; aboutY: Fixed ); external name '_SkewMatrix';
  2740. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2741. {
  2742. * TransformFixedPoints()
  2743. *
  2744. * Availability:
  2745. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2746. * CarbonLib: in CarbonLib 1.0 and later
  2747. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2748. * Windows: in qtmlClient.lib 3.0 and later
  2749. }
  2750. function TransformFixedPoints( const (*var*) m: MatrixRecord; var fpt: FixedPoint; count: SIGNEDLONG ): OSErr; external name '_TransformFixedPoints';
  2751. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2752. {
  2753. * TransformPoints()
  2754. *
  2755. * Availability:
  2756. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2757. * CarbonLib: in CarbonLib 1.0 and later
  2758. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2759. * Windows: in qtmlClient.lib 3.0 and later
  2760. }
  2761. function TransformPoints( const (*var*) mp: MatrixRecord; var pt1: Point; count: SIGNEDLONG ): OSErr; external name '_TransformPoints';
  2762. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2763. {
  2764. * TransformFixedRect()
  2765. *
  2766. * Availability:
  2767. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2768. * CarbonLib: in CarbonLib 1.0 and later
  2769. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2770. * Windows: in qtmlClient.lib 3.0 and later
  2771. }
  2772. function TransformFixedRect( const (*var*) m: MatrixRecord; var fr: FixedRect; var fpp: FixedPoint ): Boolean; external name '_TransformFixedRect';
  2773. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2774. {
  2775. * TransformRect()
  2776. *
  2777. * Availability:
  2778. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2779. * CarbonLib: in CarbonLib 1.0 and later
  2780. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2781. * Windows: in qtmlClient.lib 3.0 and later
  2782. }
  2783. function TransformRect( const (*var*) m: MatrixRecord; var r: Rect; var fpp: FixedPoint ): Boolean; external name '_TransformRect';
  2784. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2785. {
  2786. * InverseMatrix()
  2787. *
  2788. * Availability:
  2789. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2790. * CarbonLib: in CarbonLib 1.0 and later
  2791. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2792. * Windows: in qtmlClient.lib 3.0 and later
  2793. }
  2794. function InverseMatrix( const (*var*) m: MatrixRecord; var im: MatrixRecord ): Boolean; external name '_InverseMatrix';
  2795. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2796. {
  2797. * ConcatMatrix()
  2798. *
  2799. * Availability:
  2800. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2801. * CarbonLib: in CarbonLib 1.0 and later
  2802. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2803. * Windows: in qtmlClient.lib 3.0 and later
  2804. }
  2805. procedure ConcatMatrix( const (*var*) a: MatrixRecord; var b: MatrixRecord ); external name '_ConcatMatrix';
  2806. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2807. {
  2808. * RectMatrix()
  2809. *
  2810. * Availability:
  2811. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2812. * CarbonLib: in CarbonLib 1.0 and later
  2813. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2814. * Windows: in qtmlClient.lib 3.0 and later
  2815. }
  2816. procedure RectMatrix( var matrix: MatrixRecord; const (*var*) srcRect: Rect; const (*var*) dstRect: Rect ); external name '_RectMatrix';
  2817. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2818. {
  2819. * MapMatrix()
  2820. *
  2821. * Availability:
  2822. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2823. * CarbonLib: in CarbonLib 1.0 and later
  2824. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2825. * Windows: in qtmlClient.lib 3.0 and later
  2826. }
  2827. procedure MapMatrix( var matrix: MatrixRecord; const (*var*) fromRect: Rect; const (*var*) toRect: Rect ); external name '_MapMatrix';
  2828. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2829. {
  2830. * CompAdd()
  2831. *
  2832. * Availability:
  2833. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2834. * CarbonLib: in CarbonLib 1.0 and later
  2835. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2836. * Windows: in qtmlClient.lib 3.0 and later
  2837. }
  2838. procedure CompAdd( var src: wide; var dst: wide ); external name '_CompAdd';
  2839. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2840. {
  2841. * CompSub()
  2842. *
  2843. * Availability:
  2844. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2845. * CarbonLib: in CarbonLib 1.0 and later
  2846. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2847. * Windows: in qtmlClient.lib 3.0 and later
  2848. }
  2849. procedure CompSub( var src: wide; var dst: wide ); external name '_CompSub';
  2850. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2851. {
  2852. * CompNeg()
  2853. *
  2854. * Availability:
  2855. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2856. * CarbonLib: in CarbonLib 1.0 and later
  2857. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2858. * Windows: in qtmlClient.lib 3.0 and later
  2859. }
  2860. procedure CompNeg( var dst: wide ); external name '_CompNeg';
  2861. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2862. {
  2863. * CompShift()
  2864. *
  2865. * Availability:
  2866. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2867. * CarbonLib: in CarbonLib 1.0 and later
  2868. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2869. * Windows: in qtmlClient.lib 3.0 and later
  2870. }
  2871. procedure CompShift( var src: wide; shift: SInt16 ); external name '_CompShift';
  2872. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2873. {
  2874. * CompMul()
  2875. *
  2876. * Availability:
  2877. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2878. * CarbonLib: in CarbonLib 1.0 and later
  2879. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2880. * Windows: in qtmlClient.lib 3.0 and later
  2881. }
  2882. procedure CompMul( src1: SIGNEDLONG; src2: SIGNEDLONG; var dst: wide ); external name '_CompMul';
  2883. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2884. {
  2885. * CompDiv()
  2886. *
  2887. * Availability:
  2888. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2889. * CarbonLib: in CarbonLib 1.0 and later
  2890. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2891. * Windows: in qtmlClient.lib 3.0 and later
  2892. }
  2893. function CompDiv( var numerator: wide; denominator: SIGNEDLONG; var remainder: SIGNEDLONG ): SIGNEDLONG; external name '_CompDiv';
  2894. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2895. {
  2896. * CompFixMul()
  2897. *
  2898. * Availability:
  2899. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2900. * CarbonLib: in CarbonLib 1.0 and later
  2901. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2902. * Windows: in qtmlClient.lib 3.0 and later
  2903. }
  2904. procedure CompFixMul( var compSrc: wide; fixSrc: Fixed; var compDst: wide ); external name '_CompFixMul';
  2905. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2906. {
  2907. * CompMulDiv()
  2908. *
  2909. * Availability:
  2910. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2911. * CarbonLib: in CarbonLib 1.0 and later
  2912. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2913. * Windows: in qtmlClient.lib 3.0 and later
  2914. }
  2915. procedure CompMulDiv( var co: wide; mul: SIGNEDLONG; divisor: SIGNEDLONG ); external name '_CompMulDiv';
  2916. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2917. {
  2918. * CompMulDivTrunc()
  2919. *
  2920. * Availability:
  2921. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2922. * CarbonLib: in CarbonLib 1.0 and later
  2923. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2924. * Windows: in qtmlClient.lib 3.0 and later
  2925. }
  2926. procedure CompMulDivTrunc( var co: wide; mul: SIGNEDLONG; divisor: SIGNEDLONG; var remainder: SIGNEDLONG ); external name '_CompMulDivTrunc';
  2927. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2928. {
  2929. * CompCompare()
  2930. *
  2931. * Availability:
  2932. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2933. * CarbonLib: in CarbonLib 1.0 and later
  2934. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2935. * Windows: in qtmlClient.lib 3.0 and later
  2936. }
  2937. function CompCompare( const (*var*) a: wide; const (*var*) minusb: wide ): SIGNEDLONG; external name '_CompCompare';
  2938. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2939. {
  2940. * CompSquareRoot()
  2941. *
  2942. * Availability:
  2943. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2944. * CarbonLib: in CarbonLib 1.0 and later
  2945. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2946. * Windows: in qtmlClient.lib 3.0 and later
  2947. }
  2948. function CompSquareRoot( const (*var*) src: wide ): UNSIGNEDLONG; external name '_CompSquareRoot';
  2949. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2950. {
  2951. * FixMulDiv()
  2952. *
  2953. * Availability:
  2954. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2955. * CarbonLib: in CarbonLib 1.0 and later
  2956. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2957. * Windows: in qtmlClient.lib 3.0 and later
  2958. }
  2959. function FixMulDiv( src: Fixed; mul: Fixed; divisor: Fixed ): Fixed; external name '_FixMulDiv';
  2960. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2961. {
  2962. * UnsignedFixMulDiv()
  2963. *
  2964. * Availability:
  2965. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2966. * CarbonLib: in CarbonLib 1.0 and later
  2967. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2968. * Windows: in qtmlClient.lib 3.0 and later
  2969. }
  2970. function UnsignedFixMulDiv( src: Fixed; mul: Fixed; divisor: Fixed ): Fixed; external name '_UnsignedFixMulDiv';
  2971. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2972. {
  2973. * FracSinCos()
  2974. *
  2975. * Availability:
  2976. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2977. * CarbonLib: in CarbonLib 1.0 and later
  2978. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2979. * Windows: in qtmlClient.lib 3.0 and later
  2980. }
  2981. function FracSinCos( degree: Fixed; var cosOut: Fract ): Fract; external name '_FracSinCos';
  2982. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2983. {
  2984. * FixExp2()
  2985. *
  2986. * Availability:
  2987. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2988. * CarbonLib: in CarbonLib 1.0 and later
  2989. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2990. * Windows: in qtmlClient.lib 3.0 and later
  2991. }
  2992. function FixExp2( src: Fixed ): Fixed; external name '_FixExp2';
  2993. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2994. {
  2995. * FixLog2()
  2996. *
  2997. * Availability:
  2998. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2999. * CarbonLib: in CarbonLib 1.0 and later
  3000. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3001. * Windows: in qtmlClient.lib 3.0 and later
  3002. }
  3003. function FixLog2( src: Fixed ): Fixed; external name '_FixLog2';
  3004. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3005. {
  3006. * FixPow()
  3007. *
  3008. * Availability:
  3009. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3010. * CarbonLib: in CarbonLib 1.0 and later
  3011. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3012. * Windows: in qtmlClient.lib 3.0 and later
  3013. }
  3014. function FixPow( base: Fixed; exp: Fixed ): Fixed; external name '_FixPow';
  3015. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3016. type
  3017. GraphicsImportComponent = ComponentInstance;
  3018. const
  3019. GraphicsImporterComponentType = FourCharCode('grip');
  3020. { Component flags for Graphics Importer components }
  3021. const
  3022. graphicsImporterIsBaseImporter = 1 shl 0;
  3023. graphicsImporterCanValidateFile = 1 shl 9;
  3024. graphicsImporterSubTypeIsFileExtension = 1 shl 12;
  3025. graphicsImporterHasMIMEList = 1 shl 14;
  3026. graphicsImporterUsesImageDecompressor = 1 shl 23;
  3027. { Atom types for QuickTime Image files }
  3028. const
  3029. quickTimeImageFileImageDescriptionAtom = FourCharCode('idsc');
  3030. quickTimeImageFileImageDataAtom = FourCharCode('idat');
  3031. quickTimeImageFileMetaDataAtom = FourCharCode('meta');
  3032. quickTimeImageFileColorSyncProfileAtom = FourCharCode('iicc');
  3033. { Flags for GraphicsImportDoesDrawAllPixels }
  3034. const
  3035. graphicsImporterDrawsAllPixels = 0;
  3036. graphicsImporterDoesntDrawAllPixels = 1;
  3037. graphicsImporterDontKnowIfDrawAllPixels = 2;
  3038. { Flags for GraphicsImportSetFlags }
  3039. const
  3040. kGraphicsImporterDontDoGammaCorrection = 1 shl 0;
  3041. kGraphicsImporterTrustResolutionFromFile = 1 shl 1;
  3042. kGraphicsImporterEnableSubPixelPositioning = 1 shl 2;
  3043. kGraphicsImporterDontUseColorMatching = 1 shl 3; { set this flag (*before* calling GraphicsImportGetColorSyncProfile) if you do matching yourself }
  3044. { Flags for GraphicsImportCreateCGImage }
  3045. const
  3046. kGraphicsImportCreateCGImageUsingCurrentSettings = 1 shl 0;
  3047. const
  3048. kGraphicsExportGroup = FourCharCode('expo');
  3049. kGraphicsExportFileType = FourCharCode('ftyp');
  3050. kGraphicsExportMIMEType = FourCharCode('mime');
  3051. kGraphicsExportExtension = FourCharCode('ext ');
  3052. kGraphicsExportDescription = FourCharCode('desc');
  3053. { User data types for layers of Photoshop files }
  3054. const
  3055. kQTPhotoshopLayerMode = FourCharCode('lmod'); { OSType }
  3056. kQTPhotoshopLayerOpacity = FourCharCode('lopa'); { UInt8, 0 = transparent .. 255 = opaque }
  3057. kQTPhotoshopLayerClipping = FourCharCode('lclp'); { UInt8, 0 = base, 1 = non-base }
  3058. kQTPhotoshopLayerFlags = FourCharCode('lflg'); { UInt8 }
  3059. kQTPhotoshopLayerName = FourCharCode('©lnm'); { Text }
  3060. kQTPhotoshopLayerUnicodeName = FourCharCode('luni'); { Unicode characters, not terminated }
  3061. { User data returned by graphics importers to suggest intended use for indexed images }
  3062. const
  3063. kQTIndexedImageType = FourCharCode('nth?'); { 1 or more OSTypes, such as the following values: }
  3064. kQTIndexedImageIsThumbnail = FourCharCode('n=th'); { The image at this index is a thumbnail. }
  3065. kQTIndexedImageIsLayer = FourCharCode('n=ly'); { The image at this index is a layer. }
  3066. kQTIndexedImageIsPage = FourCharCode('n=pg'); { The image at this index is a page. }
  3067. kQTIndexedImageIsMultiResolution = FourCharCode('n=rs'); { The image at this index is one of several identical images at different resolutions. }
  3068. { Other user data types returned by graphics importers }
  3069. const
  3070. kQTTIFFUserDataPrefix = $74690000; { Added to some tag values in TIFF IFDs to generate user data codes. (0x7469 is 'ti'.) }
  3071. { For example, YCbCrPositioning is tag 0x0213, so its user data code is 0x74690213. }
  3072. kQTTIFFExifUserDataPrefix = $65780000; { Added to tag values in Exif IFDs to generate user data codes. (0x6578 is 'ex'.) }
  3073. { For example, DateTimeOriginal is tag 0x9003, so its user data code is 0x65789003. }
  3074. kQTTIFFExifGPSUserDataPrefix = $67700000; { Added to tag values in Exif GPS IFDs to generate user data codes. (0x6770 is 'gp'.) }
  3075. { For example, GPSAltitude is tag 0x0006, so its user data code is 0x6770006. }
  3076. kQTAlphaMode = FourCharCode('almo'); { UInt32; eg, graphicsModeStraightAlpha or graphicsModePreBlackAlpha }
  3077. kQTAlphaModePreMulColor = FourCharCode('almp'); { RGBColor; used if kQTAlphaMode is graphicsModePreMulColorAlpha }
  3078. kUserDataIPTC = FourCharCode('iptc');
  3079. { Found in TIFF and Exif JPEG files }
  3080. const
  3081. kQTTIFFUserDataOrientation = $74690112; { 1 SHORT }
  3082. kQTTIFFUserDataTransferFunction = $7469012D; { n SHORTs }
  3083. kQTTIFFUserDataWhitePoint = $7469013E; { 2 RATIONALs }
  3084. kQTTIFFUserDataPrimaryChromaticities = $7469013F; { 6 RATIONALs }
  3085. kQTTIFFUserDataTransferRange = $74690156; { 6 SHORTs }
  3086. kQTTIFFUserDataYCbCrPositioning = $74690213; { 1 SHORT }
  3087. kQTTIFFUserDataReferenceBlackWhite = $74690214; { n LONGs }
  3088. { Found in GeoTIFF files; defined in the GeoTIFF 1.0 spec }
  3089. const
  3090. kQTTIFFUserDataModelPixelScale = $7469830E; { 3 DOUBLEs }
  3091. kQTTIFFUserDataModelTransformation = $746985D8; { 16 DOUBLEs }
  3092. kQTTIFFUserDataModelTiepoint = $74698482; { n DOUBLEs }
  3093. kQTTIFFUserDataGeoKeyDirectory = $746987AF; { n SHORTs }
  3094. kQTTIFFUserDataGeoDoubleParams = $746987B0; { n DOUBLEs }
  3095. kQTTIFFUserDataGeoAsciiParams = $746987B1; { n ASCIIs }
  3096. kQTTIFFUserDataIntergraphMatrix = $74698480; { 16 or 17 DOUBLEs }
  3097. { Found in Exif TIFF and Exif JPEG files; defined in the Exif 2.1 spec }
  3098. const
  3099. kQTExifUserDataExifVersion = $65789000; { 4 bytes (import only) }
  3100. kQTExifUserDataFlashPixVersion = $6578A000; { 4 bytes }
  3101. kQTExifUserDataColorSpace = $6578A001; { 1 SHORT }
  3102. kQTExifUserDataComponentsConfiguration = $65789101; { 4 bytes }
  3103. kQTExifUserDataCompressedBitsPerPixel = $65789102; { 1 RATIONAL }
  3104. kQTExifUserDataPixelXDimension = $6578A002; { 1 SHORT or LONG }
  3105. kQTExifUserDataPixelYDimension = $6578A003; { 1 SHORT or LONG }
  3106. kQTExifUserDataMakerNote = $6578927C; { n bytes }
  3107. kQTExifUserDataUserComment = $65789286; { n bytes (Note: this constant was erroneously 0x6578928C)}
  3108. kQTExifUserDataRelatedSoundFile = $6578A004; { 13 ASCIIs}
  3109. kQTExifUserDataDateTimeOriginal = $65789003; { 20 ASCIIs }
  3110. kQTExifUserDataDateTimeDigitized = $65789004; { 20 ASCIIs }
  3111. kQTExifUserDataSubSecTime = $65789290; { n ASCIIs }
  3112. kQTExifUserDataSubSecTimeOriginal = $65789291; { n ASCIIs }
  3113. kQTExifUserDataSubSecTimeDigitized = $65789292; { n ASCIIs }
  3114. kQTExifUserDataExposureTime = $6578829A; { 1 RATIONAL }
  3115. kQTExifUserDataFNumber = $6578829D; { 1 RATIONAL }
  3116. kQTExifUserDataExposureProgram = $65788822; { 1 SHORT }
  3117. kQTExifUserDataSpectralSensitivity = $65788824; { n ASCIIs }
  3118. kQTExifUserDataISOSpeedRatings = $65788827; { n SHORTs }
  3119. kQTExifUserDataShutterSpeedValue = $65789201; { 1 SIGNED RATIONAL }
  3120. kQTExifUserDataApertureValue = $65789202; { 1 RATIONAL }
  3121. kQTExifUserDataBrightnessValue = $65789203; { 1 SIGNED RATIONAL }
  3122. kQTExifUserDataExposureBiasValue = $65789204; { 1 SIGNED RATIONAL }
  3123. kQTExifUserDataMaxApertureValue = $65789205; { 1 RATIONAL }
  3124. kQTExifUserDataSubjectDistance = $65789206; { 1 RATIONAL }
  3125. kQTExifUserDataMeteringMode = $65789207; { 1 SHORT }
  3126. kQTExifUserDataLightSource = $65789208; { 1 SHORT }
  3127. kQTExifUserDataFlash = $65789209; { 1 SHORT }
  3128. kQTExifUserDataFocalLength = $6578920A; { 1 RATIONAL }
  3129. kQTExifUserDataFlashEnergy = $6578A20B; { 1 RATIONAL }
  3130. kQTExifUserDataFocalPlaneXResolution = $6578A20E; { 1 RATIONAL }
  3131. kQTExifUserDataFocalPlaneYResolution = $6578A20F; { 1 RATIONAL }
  3132. kQTExifUserDataFocalPlaneResolutionUnit = $6578A210; { 1 SHORT }
  3133. kQTExifUserDataSubjectLocation = $6578A214; { 1 SHORT }
  3134. kQTExifUserDataExposureIndex = $6578A215; { 1 RATIONAL }
  3135. kQTExifUserDataSensingMethod = $6578A217; { 1 SHORT }
  3136. kQTExifUserDataFileSource = $6578A300; { 1 UNDEFINED }
  3137. kQTExifUserDataSceneType = $6578A301; { 1 UNDEFINED }
  3138. { Found in some Exif TIFF and Exif JPEG files; defined in the Exif 2.1 spec }
  3139. { Note: these were wrong in the QuickTime 6.0 headers -- the high two bytes were 0x677 instead of 0x6770. }
  3140. const
  3141. kQTExifUserDataGPSVersionID = $67700000; { 4 BYTEs }
  3142. kQTExifUserDataGPSLatitudeRef = $67700001; { 2 ASCIIs}
  3143. kQTExifUserDataGPSLatitude = $67700002; { 3 RATIONALs }
  3144. kQTExifUserDataGPSLongitudeRef = $67700003; { 2 ASCIIs }
  3145. kQTExifUserDataGPSLongitude = $67700004; { 3 RATIONALs }
  3146. kQTExifUserDataGPSAltitudeRef = $67700005; { 1 BYTE }
  3147. kQTExifUserDataGPSAltitude = $67700006; { 1 RATIONAL }
  3148. kQTExifUserDataGPSTimeStamp = $67700007; { 3 RATIONALs }
  3149. kQTExifUserDataGPSSatellites = $67700008; { n ASCIIs }
  3150. kQTExifUserDataGPSStatus = $67700009; { 2 ASCIIs }
  3151. kQTExifUserDataGPSMeasureMode = $6770000A; { 2 ASCIIs }
  3152. kQTExifUserDataGPSDOP = $6770000B; { 1 RATIONAL }
  3153. kQTExifUserDataGPSSpeedRef = $6770000C; { 2 ASCIIs }
  3154. kQTExifUserDataGPSSpeed = $6770000D; { 1 RATIONAL }
  3155. kQTExifUserDataGPSTrackRef = $6770000E; { 2 ASCIIs }
  3156. kQTExifUserDataGPSTrack = $6770000F; { 1 RATIONAL }
  3157. kQTExifUserDataGPSImgDirectionRef = $67700010; { 2 ASCIIs }
  3158. kQTExifUserDataGPSImgDirection = $67700011; { 1 RATIONAL }
  3159. kQTExifUserDataGPSMapDatum = $67700012; { n ASCII }
  3160. kQTExifUserDataGPSDestLatitudeRef = $67700013; { 2 ASCIIs }
  3161. kQTExifUserDataGPSDestLatitude = $67700014; { 3 RATIONALs }
  3162. kQTExifUserDataGPSDestLongitudeRef = $67700015; { 2 ASCIIs }
  3163. kQTExifUserDataGPSDestLongitude = $67700016; { 3 RATIONALs }
  3164. kQTExifUserDataGPSDestBearingRef = $67700017; { 2 ASCIIs }
  3165. kQTExifUserDataGPSDestBearing = $67700018; { 1 RATIONAL }
  3166. kQTExifUserDataGPSDestDistanceRef = $67700019; { 2 ASCIIs }
  3167. kQTExifUserDataGPSDestDistance = $6770001A; { 1 RATIONAL }
  3168. {* These are GraphicsImport procedures *}
  3169. {
  3170. * GraphicsImportSetDataReference()
  3171. *
  3172. * Availability:
  3173. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3174. * CarbonLib: in CarbonLib 1.0 and later
  3175. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3176. * Windows: in qtmlClient.lib 3.0 and later
  3177. }
  3178. function GraphicsImportSetDataReference( ci: GraphicsImportComponent; dataRef: Handle; dataReType: OSType ): ComponentResult; external name '_GraphicsImportSetDataReference';
  3179. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3180. {
  3181. * GraphicsImportGetDataReference()
  3182. *
  3183. * Availability:
  3184. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3185. * CarbonLib: in CarbonLib 1.0 and later
  3186. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3187. * Windows: in qtmlClient.lib 3.0 and later
  3188. }
  3189. function GraphicsImportGetDataReference( ci: GraphicsImportComponent; var dataRef: Handle; var dataReType: OSType ): ComponentResult; external name '_GraphicsImportGetDataReference';
  3190. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3191. {
  3192. * GraphicsImportSetDataFile()
  3193. *
  3194. * Availability:
  3195. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3196. * CarbonLib: in CarbonLib 1.0 and later
  3197. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3198. * Windows: in qtmlClient.lib 3.0 and later
  3199. }
  3200. function GraphicsImportSetDataFile( ci: GraphicsImportComponent; const (*var*) theFile: FSSpec ): ComponentResult; external name '_GraphicsImportSetDataFile';
  3201. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3202. {
  3203. * GraphicsImportGetDataFile()
  3204. *
  3205. * Availability:
  3206. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3207. * CarbonLib: in CarbonLib 1.0 and later
  3208. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3209. * Windows: in qtmlClient.lib 3.0 and later
  3210. }
  3211. function GraphicsImportGetDataFile( ci: GraphicsImportComponent; var theFile: FSSpec ): ComponentResult; external name '_GraphicsImportGetDataFile';
  3212. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3213. {
  3214. * GraphicsImportSetDataHandle()
  3215. *
  3216. * Availability:
  3217. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3218. * CarbonLib: in CarbonLib 1.0 and later
  3219. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3220. * Windows: in qtmlClient.lib 3.0 and later
  3221. }
  3222. function GraphicsImportSetDataHandle( ci: GraphicsImportComponent; h: Handle ): ComponentResult; external name '_GraphicsImportSetDataHandle';
  3223. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3224. {
  3225. * GraphicsImportGetDataHandle()
  3226. *
  3227. * Availability:
  3228. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3229. * CarbonLib: in CarbonLib 1.0 and later
  3230. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3231. * Windows: in qtmlClient.lib 3.0 and later
  3232. }
  3233. function GraphicsImportGetDataHandle( ci: GraphicsImportComponent; var h: Handle ): ComponentResult; external name '_GraphicsImportGetDataHandle';
  3234. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3235. {
  3236. * GraphicsImportGetImageDescription()
  3237. *
  3238. * Availability:
  3239. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3240. * CarbonLib: in CarbonLib 1.0 and later
  3241. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3242. * Windows: in qtmlClient.lib 3.0 and later
  3243. }
  3244. function GraphicsImportGetImageDescription( ci: GraphicsImportComponent; var desc: ImageDescriptionHandle ): ComponentResult; external name '_GraphicsImportGetImageDescription';
  3245. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3246. {
  3247. * GraphicsImportGetDataOffsetAndSize()
  3248. *
  3249. * Availability:
  3250. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3251. * CarbonLib: in CarbonLib 1.0 and later
  3252. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3253. * Windows: in qtmlClient.lib 3.0 and later
  3254. }
  3255. function GraphicsImportGetDataOffsetAndSize( ci: GraphicsImportComponent; var offset: UNSIGNEDLONG; var size: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsImportGetDataOffsetAndSize';
  3256. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3257. {
  3258. * GraphicsImportReadData()
  3259. *
  3260. * Availability:
  3261. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3262. * CarbonLib: in CarbonLib 1.0 and later
  3263. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3264. * Windows: in qtmlClient.lib 3.0 and later
  3265. }
  3266. function GraphicsImportReadData( ci: GraphicsImportComponent; dataPtr: UnivPtr; dataOffset: UNSIGNEDLONG; dataSize: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsImportReadData';
  3267. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3268. {
  3269. * GraphicsImportSetClip()
  3270. *
  3271. * Availability:
  3272. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3273. * CarbonLib: in CarbonLib 1.0 and later
  3274. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3275. * Windows: in qtmlClient.lib 3.0 and later
  3276. }
  3277. function GraphicsImportSetClip( ci: GraphicsImportComponent; clipRgn: RgnHandle ): ComponentResult; external name '_GraphicsImportSetClip';
  3278. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3279. {
  3280. * GraphicsImportGetClip()
  3281. *
  3282. * Availability:
  3283. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3284. * CarbonLib: in CarbonLib 1.0 and later
  3285. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3286. * Windows: in qtmlClient.lib 3.0 and later
  3287. }
  3288. function GraphicsImportGetClip( ci: GraphicsImportComponent; var clipRgn: RgnHandle ): ComponentResult; external name '_GraphicsImportGetClip';
  3289. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3290. {
  3291. * GraphicsImportSetSourceRect()
  3292. *
  3293. * Availability:
  3294. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3295. * CarbonLib: in CarbonLib 1.0 and later
  3296. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3297. * Windows: in qtmlClient.lib 3.0 and later
  3298. }
  3299. function GraphicsImportSetSourceRect( ci: GraphicsImportComponent; const (*var*) sourceRect: Rect ): ComponentResult; external name '_GraphicsImportSetSourceRect';
  3300. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3301. {
  3302. * GraphicsImportGetSourceRect()
  3303. *
  3304. * Availability:
  3305. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3306. * CarbonLib: in CarbonLib 1.0 and later
  3307. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3308. * Windows: in qtmlClient.lib 3.0 and later
  3309. }
  3310. function GraphicsImportGetSourceRect( ci: GraphicsImportComponent; var sourceRect: Rect ): ComponentResult; external name '_GraphicsImportGetSourceRect';
  3311. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3312. {
  3313. * GraphicsImportGetNaturalBounds()
  3314. *
  3315. * Availability:
  3316. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3317. * CarbonLib: in CarbonLib 1.0 and later
  3318. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3319. * Windows: in qtmlClient.lib 3.0 and later
  3320. }
  3321. function GraphicsImportGetNaturalBounds( ci: GraphicsImportComponent; var naturalBounds: Rect ): ComponentResult; external name '_GraphicsImportGetNaturalBounds';
  3322. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3323. {
  3324. * GraphicsImportDraw()
  3325. *
  3326. * Availability:
  3327. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3328. * CarbonLib: in CarbonLib 1.0 and later
  3329. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3330. * Windows: in qtmlClient.lib 3.0 and later
  3331. }
  3332. function GraphicsImportDraw( ci: GraphicsImportComponent ): ComponentResult; external name '_GraphicsImportDraw';
  3333. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3334. {
  3335. * GraphicsImportSetGWorld()
  3336. *
  3337. * Availability:
  3338. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3339. * CarbonLib: in CarbonLib 1.0 and later
  3340. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3341. * Windows: in qtmlClient.lib 3.0 and later
  3342. }
  3343. function GraphicsImportSetGWorld( ci: GraphicsImportComponent; port: CGrafPtr; gd: GDHandle ): ComponentResult; external name '_GraphicsImportSetGWorld';
  3344. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3345. {
  3346. * GraphicsImportGetGWorld()
  3347. *
  3348. * Availability:
  3349. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3350. * CarbonLib: in CarbonLib 1.0 and later
  3351. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3352. * Windows: in qtmlClient.lib 3.0 and later
  3353. }
  3354. function GraphicsImportGetGWorld( ci: GraphicsImportComponent; var port: CGrafPtr; var gd: GDHandle ): ComponentResult; external name '_GraphicsImportGetGWorld';
  3355. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3356. {
  3357. * GraphicsImportSetMatrix()
  3358. *
  3359. * Availability:
  3360. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3361. * CarbonLib: in CarbonLib 1.0 and later
  3362. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3363. * Windows: in qtmlClient.lib 3.0 and later
  3364. }
  3365. function GraphicsImportSetMatrix( ci: GraphicsImportComponent; const (*var*) matrix: MatrixRecord ): ComponentResult; external name '_GraphicsImportSetMatrix';
  3366. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3367. {
  3368. * GraphicsImportGetMatrix()
  3369. *
  3370. * Availability:
  3371. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3372. * CarbonLib: in CarbonLib 1.0 and later
  3373. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3374. * Windows: in qtmlClient.lib 3.0 and later
  3375. }
  3376. function GraphicsImportGetMatrix( ci: GraphicsImportComponent; var matrix: MatrixRecord ): ComponentResult; external name '_GraphicsImportGetMatrix';
  3377. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3378. {
  3379. * GraphicsImportSetBoundsRect()
  3380. *
  3381. * Availability:
  3382. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3383. * CarbonLib: in CarbonLib 1.0 and later
  3384. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3385. * Windows: in qtmlClient.lib 3.0 and later
  3386. }
  3387. function GraphicsImportSetBoundsRect( ci: GraphicsImportComponent; const (*var*) bounds: Rect ): ComponentResult; external name '_GraphicsImportSetBoundsRect';
  3388. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3389. {
  3390. * GraphicsImportGetBoundsRect()
  3391. *
  3392. * Availability:
  3393. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3394. * CarbonLib: in CarbonLib 1.0 and later
  3395. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3396. * Windows: in qtmlClient.lib 3.0 and later
  3397. }
  3398. function GraphicsImportGetBoundsRect( ci: GraphicsImportComponent; var bounds: Rect ): ComponentResult; external name '_GraphicsImportGetBoundsRect';
  3399. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3400. {
  3401. * GraphicsImportSaveAsPicture()
  3402. *
  3403. * Availability:
  3404. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3405. * CarbonLib: in CarbonLib 1.0 and later
  3406. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3407. * Windows: in qtmlClient.lib 3.0 and later
  3408. }
  3409. function GraphicsImportSaveAsPicture( ci: GraphicsImportComponent; const (*var*) fss: FSSpec; scriptTag: ScriptCode ): ComponentResult; external name '_GraphicsImportSaveAsPicture';
  3410. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3411. {
  3412. * GraphicsImportSetGraphicsMode()
  3413. *
  3414. * Availability:
  3415. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3416. * CarbonLib: in CarbonLib 1.0 and later
  3417. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3418. * Windows: in qtmlClient.lib 3.0 and later
  3419. }
  3420. function GraphicsImportSetGraphicsMode( ci: GraphicsImportComponent; graphicsMode: SIGNEDLONG; const (*var*) opColor: RGBColor ): ComponentResult; external name '_GraphicsImportSetGraphicsMode';
  3421. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3422. {
  3423. * GraphicsImportGetGraphicsMode()
  3424. *
  3425. * Availability:
  3426. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3427. * CarbonLib: in CarbonLib 1.0 and later
  3428. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3429. * Windows: in qtmlClient.lib 3.0 and later
  3430. }
  3431. function GraphicsImportGetGraphicsMode( ci: GraphicsImportComponent; var graphicsMode: SIGNEDLONG; var opColor: RGBColor ): ComponentResult; external name '_GraphicsImportGetGraphicsMode';
  3432. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3433. {
  3434. * GraphicsImportSetQuality()
  3435. *
  3436. * Availability:
  3437. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3438. * CarbonLib: in CarbonLib 1.0 and later
  3439. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3440. * Windows: in qtmlClient.lib 3.0 and later
  3441. }
  3442. function GraphicsImportSetQuality( ci: GraphicsImportComponent; quality: CodecQ ): ComponentResult; external name '_GraphicsImportSetQuality';
  3443. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3444. {
  3445. * GraphicsImportGetQuality()
  3446. *
  3447. * Availability:
  3448. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3449. * CarbonLib: in CarbonLib 1.0 and later
  3450. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3451. * Windows: in qtmlClient.lib 3.0 and later
  3452. }
  3453. function GraphicsImportGetQuality( ci: GraphicsImportComponent; var quality: CodecQ ): ComponentResult; external name '_GraphicsImportGetQuality';
  3454. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3455. {
  3456. * GraphicsImportSaveAsQuickTimeImageFile()
  3457. *
  3458. * Availability:
  3459. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3460. * CarbonLib: in CarbonLib 1.0 and later
  3461. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3462. * Windows: in qtmlClient.lib 3.0 and later
  3463. }
  3464. function GraphicsImportSaveAsQuickTimeImageFile( ci: GraphicsImportComponent; const (*var*) fss: FSSpec; scriptTag: ScriptCode ): ComponentResult; external name '_GraphicsImportSaveAsQuickTimeImageFile';
  3465. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3466. {
  3467. * GraphicsImportSetDataReferenceOffsetAndLimit()
  3468. *
  3469. * Availability:
  3470. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3471. * CarbonLib: in CarbonLib 1.0 and later
  3472. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3473. * Windows: in qtmlClient.lib 3.0 and later
  3474. }
  3475. function GraphicsImportSetDataReferenceOffsetAndLimit( ci: GraphicsImportComponent; offset: UNSIGNEDLONG; limit: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsImportSetDataReferenceOffsetAndLimit';
  3476. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3477. {
  3478. * GraphicsImportGetDataReferenceOffsetAndLimit()
  3479. *
  3480. * Availability:
  3481. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3482. * CarbonLib: in CarbonLib 1.0 and later
  3483. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3484. * Windows: in qtmlClient.lib 3.0 and later
  3485. }
  3486. function GraphicsImportGetDataReferenceOffsetAndLimit( ci: GraphicsImportComponent; var offset: UNSIGNEDLONG; var limit: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsImportGetDataReferenceOffsetAndLimit';
  3487. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3488. {
  3489. * GraphicsImportGetAliasedDataReference()
  3490. *
  3491. * Availability:
  3492. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3493. * CarbonLib: in CarbonLib 1.0 and later
  3494. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3495. * Windows: in qtmlClient.lib 3.0 and later
  3496. }
  3497. function GraphicsImportGetAliasedDataReference( ci: GraphicsImportComponent; var dataRef: Handle; var dataRefType: OSType ): ComponentResult; external name '_GraphicsImportGetAliasedDataReference';
  3498. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3499. {
  3500. * GraphicsImportValidate()
  3501. *
  3502. * Availability:
  3503. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3504. * CarbonLib: in CarbonLib 1.0 and later
  3505. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  3506. * Windows: in qtmlClient.lib 3.0 and later
  3507. }
  3508. function GraphicsImportValidate( ci: GraphicsImportComponent; var valid: Boolean ): ComponentResult; external name '_GraphicsImportValidate';
  3509. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3510. {
  3511. * GraphicsImportGetMetaData()
  3512. *
  3513. * Availability:
  3514. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3515. * CarbonLib: in CarbonLib 1.0 and later
  3516. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  3517. * Windows: in qtmlClient.lib 3.0 and later
  3518. }
  3519. function GraphicsImportGetMetaData( ci: GraphicsImportComponent; userData: UnivPtr ): ComponentResult; external name '_GraphicsImportGetMetaData';
  3520. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3521. {
  3522. * GraphicsImportGetMIMETypeList()
  3523. *
  3524. * Availability:
  3525. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3526. * CarbonLib: in CarbonLib 1.0 and later
  3527. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  3528. * Windows: in qtmlClient.lib 3.0 and later
  3529. }
  3530. function GraphicsImportGetMIMETypeList( ci: GraphicsImportComponent; qtAtomContainerPtr: UnivPtr ): ComponentResult; external name '_GraphicsImportGetMIMETypeList';
  3531. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3532. {
  3533. * GraphicsImportDoesDrawAllPixels()
  3534. *
  3535. * Availability:
  3536. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3537. * CarbonLib: in CarbonLib 1.0 and later
  3538. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  3539. * Windows: in qtmlClient.lib 3.0 and later
  3540. }
  3541. function GraphicsImportDoesDrawAllPixels( ci: GraphicsImportComponent; var drawsAllPixels: SInt16 ): ComponentResult; external name '_GraphicsImportDoesDrawAllPixels';
  3542. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3543. {
  3544. * GraphicsImportGetAsPicture()
  3545. *
  3546. * Availability:
  3547. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3548. * CarbonLib: in CarbonLib 1.0 and later
  3549. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  3550. * Windows: in qtmlClient.lib 3.0 and later
  3551. }
  3552. function GraphicsImportGetAsPicture( ci: GraphicsImportComponent; var picture: PicHandle ): ComponentResult; external name '_GraphicsImportGetAsPicture';
  3553. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3554. {
  3555. * GraphicsImportExportImageFile()
  3556. *
  3557. * Availability:
  3558. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3559. * CarbonLib: in CarbonLib 1.0 and later
  3560. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  3561. * Windows: in qtmlClient.lib 3.0 and later
  3562. }
  3563. function GraphicsImportExportImageFile( ci: GraphicsImportComponent; fileType: OSType; fileCreator: OSType; const (*var*) fss: FSSpec; scriptTag: ScriptCode ): ComponentResult; external name '_GraphicsImportExportImageFile';
  3564. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3565. {
  3566. * GraphicsImportGetExportImageTypeList()
  3567. *
  3568. * Availability:
  3569. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3570. * CarbonLib: in CarbonLib 1.0 and later
  3571. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  3572. * Windows: in qtmlClient.lib 3.0 and later
  3573. }
  3574. function GraphicsImportGetExportImageTypeList( ci: GraphicsImportComponent; qtAtomContainerPtr: UnivPtr ): ComponentResult; external name '_GraphicsImportGetExportImageTypeList';
  3575. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3576. {
  3577. * GraphicsImportDoExportImageFileDialog()
  3578. *
  3579. * Availability:
  3580. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3581. * CarbonLib: in CarbonLib 1.0 and later
  3582. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  3583. * Windows: in qtmlClient.lib 3.0 and later
  3584. }
  3585. function GraphicsImportDoExportImageFileDialog( ci: GraphicsImportComponent; const (*var*) inDefaultSpec: FSSpec; prompt: StringPtr; filterProc: ModalFilterYDUPP; var outExportedType: OSType; var outExportedSpec: FSSpec; var outScriptTag: ScriptCode ): ComponentResult; external name '_GraphicsImportDoExportImageFileDialog';
  3586. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3587. {
  3588. * GraphicsImportGetExportSettingsAsAtomContainer()
  3589. *
  3590. * Availability:
  3591. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3592. * CarbonLib: in CarbonLib 1.0 and later
  3593. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  3594. * Windows: in qtmlClient.lib 3.0 and later
  3595. }
  3596. function GraphicsImportGetExportSettingsAsAtomContainer( ci: GraphicsImportComponent; qtAtomContainerPtr: UnivPtr ): ComponentResult; external name '_GraphicsImportGetExportSettingsAsAtomContainer';
  3597. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3598. {
  3599. * GraphicsImportSetExportSettingsFromAtomContainer()
  3600. *
  3601. * Availability:
  3602. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3603. * CarbonLib: in CarbonLib 1.0 and later
  3604. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  3605. * Windows: in qtmlClient.lib 3.0 and later
  3606. }
  3607. function GraphicsImportSetExportSettingsFromAtomContainer( ci: GraphicsImportComponent; qtAtomContainer: UnivPtr ): ComponentResult; external name '_GraphicsImportSetExportSettingsFromAtomContainer';
  3608. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3609. {
  3610. * GraphicsImportSetProgressProc()
  3611. *
  3612. * Availability:
  3613. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3614. * CarbonLib: in CarbonLib 1.0 and later
  3615. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  3616. * Windows: in qtmlClient.lib 3.0 and later
  3617. }
  3618. function GraphicsImportSetProgressProc( ci: GraphicsImportComponent; progressProc: ICMProgressProcRecordPtr ): ComponentResult; external name '_GraphicsImportSetProgressProc';
  3619. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3620. {
  3621. * GraphicsImportGetProgressProc()
  3622. *
  3623. * Availability:
  3624. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3625. * CarbonLib: in CarbonLib 1.0 and later
  3626. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  3627. * Windows: in qtmlClient.lib 3.0 and later
  3628. }
  3629. function GraphicsImportGetProgressProc( ci: GraphicsImportComponent; progressProc: ICMProgressProcRecordPtr ): ComponentResult; external name '_GraphicsImportGetProgressProc';
  3630. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3631. {
  3632. * GraphicsImportGetImageCount()
  3633. *
  3634. * Availability:
  3635. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3636. * CarbonLib: in CarbonLib 1.0.2 and later
  3637. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  3638. * Windows: in qtmlClient.lib 4.0 and later
  3639. }
  3640. function GraphicsImportGetImageCount( ci: GraphicsImportComponent; var imageCount: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsImportGetImageCount';
  3641. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3642. {
  3643. * GraphicsImportSetImageIndex()
  3644. *
  3645. * Availability:
  3646. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3647. * CarbonLib: in CarbonLib 1.0.2 and later
  3648. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  3649. * Windows: in qtmlClient.lib 4.0 and later
  3650. }
  3651. function GraphicsImportSetImageIndex( ci: GraphicsImportComponent; imageIndex: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsImportSetImageIndex';
  3652. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3653. {
  3654. * GraphicsImportGetImageIndex()
  3655. *
  3656. * Availability:
  3657. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3658. * CarbonLib: in CarbonLib 1.0.2 and later
  3659. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  3660. * Windows: in qtmlClient.lib 4.0 and later
  3661. }
  3662. function GraphicsImportGetImageIndex( ci: GraphicsImportComponent; var imageIndex: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsImportGetImageIndex';
  3663. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3664. {
  3665. * GraphicsImportGetDataOffsetAndSize64()
  3666. *
  3667. * Availability:
  3668. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3669. * CarbonLib: in CarbonLib 1.0.2 and later
  3670. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  3671. * Windows: in qtmlClient.lib 4.0 and later
  3672. }
  3673. function GraphicsImportGetDataOffsetAndSize64( ci: GraphicsImportComponent; var offset: wide; var size: wide ): ComponentResult; external name '_GraphicsImportGetDataOffsetAndSize64';
  3674. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3675. {
  3676. * GraphicsImportReadData64()
  3677. *
  3678. * Availability:
  3679. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3680. * CarbonLib: in CarbonLib 1.0.2 and later
  3681. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  3682. * Windows: in qtmlClient.lib 4.0 and later
  3683. }
  3684. function GraphicsImportReadData64( ci: GraphicsImportComponent; dataPtr: UnivPtr; const (*var*) dataOffset: wide; dataSize: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsImportReadData64';
  3685. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3686. {
  3687. * GraphicsImportSetDataReferenceOffsetAndLimit64()
  3688. *
  3689. * Availability:
  3690. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3691. * CarbonLib: in CarbonLib 1.0.2 and later
  3692. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  3693. * Windows: in qtmlClient.lib 4.0 and later
  3694. }
  3695. function GraphicsImportSetDataReferenceOffsetAndLimit64( ci: GraphicsImportComponent; const (*var*) offset: wide; const (*var*) limit: wide ): ComponentResult; external name '_GraphicsImportSetDataReferenceOffsetAndLimit64';
  3696. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3697. {
  3698. * GraphicsImportGetDataReferenceOffsetAndLimit64()
  3699. *
  3700. * Availability:
  3701. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3702. * CarbonLib: in CarbonLib 1.0.2 and later
  3703. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  3704. * Windows: in qtmlClient.lib 4.0 and later
  3705. }
  3706. function GraphicsImportGetDataReferenceOffsetAndLimit64( ci: GraphicsImportComponent; var offset: wide; var limit: wide ): ComponentResult; external name '_GraphicsImportGetDataReferenceOffsetAndLimit64';
  3707. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3708. {
  3709. * GraphicsImportGetDefaultMatrix()
  3710. *
  3711. * Availability:
  3712. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3713. * CarbonLib: in CarbonLib 1.0.2 and later
  3714. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  3715. * Windows: in qtmlClient.lib 4.0 and later
  3716. }
  3717. function GraphicsImportGetDefaultMatrix( ci: GraphicsImportComponent; var defaultMatrix: MatrixRecord ): ComponentResult; external name '_GraphicsImportGetDefaultMatrix';
  3718. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3719. {
  3720. * GraphicsImportGetDefaultClip()
  3721. *
  3722. * Availability:
  3723. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3724. * CarbonLib: in CarbonLib 1.0.2 and later
  3725. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  3726. * Windows: in qtmlClient.lib 4.0 and later
  3727. }
  3728. function GraphicsImportGetDefaultClip( ci: GraphicsImportComponent; var defaultRgn: RgnHandle ): ComponentResult; external name '_GraphicsImportGetDefaultClip';
  3729. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3730. {
  3731. * GraphicsImportGetDefaultGraphicsMode()
  3732. *
  3733. * Availability:
  3734. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3735. * CarbonLib: in CarbonLib 1.0.2 and later
  3736. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  3737. * Windows: in qtmlClient.lib 4.0 and later
  3738. }
  3739. function GraphicsImportGetDefaultGraphicsMode( ci: GraphicsImportComponent; var defaultGraphicsMode: SIGNEDLONG; var defaultOpColor: RGBColor ): ComponentResult; external name '_GraphicsImportGetDefaultGraphicsMode';
  3740. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3741. {
  3742. * GraphicsImportGetDefaultSourceRect()
  3743. *
  3744. * Availability:
  3745. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3746. * CarbonLib: in CarbonLib 1.0.2 and later
  3747. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  3748. * Windows: in qtmlClient.lib 4.0 and later
  3749. }
  3750. function GraphicsImportGetDefaultSourceRect( ci: GraphicsImportComponent; var defaultSourceRect: Rect ): ComponentResult; external name '_GraphicsImportGetDefaultSourceRect';
  3751. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3752. {
  3753. * GraphicsImportGetColorSyncProfile()
  3754. *
  3755. * Availability:
  3756. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3757. * CarbonLib: in CarbonLib 1.0.2 and later
  3758. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  3759. * Windows: in qtmlClient.lib 4.0 and later
  3760. }
  3761. function GraphicsImportGetColorSyncProfile( ci: GraphicsImportComponent; var profile: Handle ): ComponentResult; external name '_GraphicsImportGetColorSyncProfile';
  3762. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3763. {
  3764. * GraphicsImportSetDestRect()
  3765. *
  3766. * Availability:
  3767. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3768. * CarbonLib: in CarbonLib 1.0.2 and later
  3769. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  3770. * Windows: in qtmlClient.lib 4.0 and later
  3771. }
  3772. function GraphicsImportSetDestRect( ci: GraphicsImportComponent; const (*var*) destRect: Rect ): ComponentResult; external name '_GraphicsImportSetDestRect';
  3773. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3774. {
  3775. * GraphicsImportGetDestRect()
  3776. *
  3777. * Availability:
  3778. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3779. * CarbonLib: in CarbonLib 1.0.2 and later
  3780. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  3781. * Windows: in qtmlClient.lib 4.0 and later
  3782. }
  3783. function GraphicsImportGetDestRect( ci: GraphicsImportComponent; var destRect: Rect ): ComponentResult; external name '_GraphicsImportGetDestRect';
  3784. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3785. {
  3786. * GraphicsImportSetFlags()
  3787. *
  3788. * Availability:
  3789. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3790. * CarbonLib: in CarbonLib 1.0.2 and later
  3791. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  3792. * Windows: in qtmlClient.lib 4.0 and later
  3793. }
  3794. function GraphicsImportSetFlags( ci: GraphicsImportComponent; flags: SIGNEDLONG ): ComponentResult; external name '_GraphicsImportSetFlags';
  3795. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3796. {
  3797. * GraphicsImportGetFlags()
  3798. *
  3799. * Availability:
  3800. * Mac OS X: in version 10.0 and later in QuickTime.framework
  3801. * CarbonLib: in CarbonLib 1.0.2 and later
  3802. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  3803. * Windows: in qtmlClient.lib 4.0 and later
  3804. }
  3805. function GraphicsImportGetFlags( ci: GraphicsImportComponent; var flags: SIGNEDLONG ): ComponentResult; external name '_GraphicsImportGetFlags';
  3806. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  3807. { 2 private selectors }
  3808. {
  3809. * GraphicsImportGetBaseDataOffsetAndSize64()
  3810. *
  3811. * Availability:
  3812. * Mac OS X: in version 10.1 and later in QuickTime.framework
  3813. * CarbonLib: in CarbonLib 1.4 and later
  3814. * Non-Carbon CFM: in QuickTimeLib 5.0.2 and later
  3815. * Windows: in qtmlClient.lib 5.0.2 and later
  3816. }
  3817. function GraphicsImportGetBaseDataOffsetAndSize64( ci: GraphicsImportComponent; var offset: wide; var size: wide ): ComponentResult; external name '_GraphicsImportGetBaseDataOffsetAndSize64';
  3818. (* AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER *)
  3819. {
  3820. * GraphicsImportSetImageIndexToThumbnail()
  3821. *
  3822. * Availability:
  3823. * Mac OS X: in version 10.2 and later in QuickTime.framework
  3824. * CarbonLib: in CarbonLib 1.6 and later
  3825. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  3826. * Windows: in qtmlClient.lib 6.0 and later
  3827. }
  3828. function GraphicsImportSetImageIndexToThumbnail( ci: GraphicsImportComponent ): ComponentResult; external name '_GraphicsImportSetImageIndexToThumbnail';
  3829. (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
  3830. {$ifc TARGET_API_MAC_OSX}
  3831. {
  3832. * GraphicsImportCreateCGImage()
  3833. *
  3834. * Availability:
  3835. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  3836. * CarbonLib: not available
  3837. * Non-Carbon CFM: not available
  3838. }
  3839. function GraphicsImportCreateCGImage( ci: GraphicsImportComponent; var imageRefOut: CGImageRef; flags: UInt32 ): ComponentResult; external name '_GraphicsImportCreateCGImage';
  3840. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  3841. {$endc} {TARGET_API_MAC_OSX}
  3842. {
  3843. * GraphicsImportSaveAsPictureToDataRef()
  3844. *
  3845. * Availability:
  3846. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  3847. * CarbonLib: not available
  3848. * Non-Carbon CFM: not available
  3849. * Windows: in qtmlClient.lib 6.5 and later
  3850. }
  3851. function GraphicsImportSaveAsPictureToDataRef( ci: GraphicsImportComponent; dataRef: Handle; dataRefType: OSType ): ComponentResult; external name '_GraphicsImportSaveAsPictureToDataRef';
  3852. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  3853. {
  3854. * GraphicsImportSaveAsQuickTimeImageFileToDataRef()
  3855. *
  3856. * Availability:
  3857. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  3858. * CarbonLib: not available
  3859. * Non-Carbon CFM: not available
  3860. * Windows: in qtmlClient.lib 6.5 and later
  3861. }
  3862. function GraphicsImportSaveAsQuickTimeImageFileToDataRef( ci: GraphicsImportComponent; dataRef: Handle; dataRefType: OSType ): ComponentResult; external name '_GraphicsImportSaveAsQuickTimeImageFileToDataRef';
  3863. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  3864. {
  3865. * GraphicsImportExportImageFileToDataRef()
  3866. *
  3867. * Availability:
  3868. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  3869. * CarbonLib: not available
  3870. * Non-Carbon CFM: not available
  3871. * Windows: in qtmlClient.lib 6.5 and later
  3872. }
  3873. function GraphicsImportExportImageFileToDataRef( ci: GraphicsImportComponent; fileType: OSType; fileCreator: OSType; dataRef: Handle; dataRefType: OSType ): ComponentResult; external name '_GraphicsImportExportImageFileToDataRef';
  3874. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  3875. {
  3876. * GraphicsImportDoExportImageFileToDataRefDialog()
  3877. *
  3878. * Availability:
  3879. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  3880. * CarbonLib: not available
  3881. * Non-Carbon CFM: not available
  3882. * Windows: in qtmlClient.lib 6.5 and later
  3883. }
  3884. function GraphicsImportDoExportImageFileToDataRefDialog( ci: GraphicsImportComponent; inDataRef: Handle; inDataRefType: OSType; prompt: CFStringRef; filterProc: ModalFilterYDUPP; var outExportedType: OSType; var outDataRef: Handle; var outDataRefType: OSType ): ComponentResult; external name '_GraphicsImportDoExportImageFileToDataRefDialog';
  3885. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  3886. {$ifc TARGET_API_MAC_OSX}
  3887. { NOTE: If the source override ColorSync profile is NULL, then the image's ColorSync profile may be used if available, otherwise a generic ColorSync profile may be used. }
  3888. {
  3889. * GraphicsImportSetOverrideSourceColorSyncProfileRef()
  3890. *
  3891. * Availability:
  3892. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  3893. * CarbonLib: not available
  3894. * Non-Carbon CFM: not available
  3895. }
  3896. function GraphicsImportSetOverrideSourceColorSyncProfileRef( ci: GraphicsImportComponent; newOverrideSourceProfileRef: CMProfileRef ): ComponentResult; external name '_GraphicsImportSetOverrideSourceColorSyncProfileRef';
  3897. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  3898. {
  3899. * GraphicsImportGetOverrideSourceColorSyncProfileRef()
  3900. *
  3901. * Availability:
  3902. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  3903. * CarbonLib: not available
  3904. * Non-Carbon CFM: not available
  3905. }
  3906. function GraphicsImportGetOverrideSourceColorSyncProfileRef( ci: GraphicsImportComponent; var outOverrideSourceProfileRef: CMProfileRef ): ComponentResult; external name '_GraphicsImportGetOverrideSourceColorSyncProfileRef';
  3907. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  3908. { NOTE: If the destination ColorSync profile is NULL, then a generic ColorSync profile may be used. }
  3909. {
  3910. * GraphicsImportSetDestinationColorSyncProfileRef()
  3911. *
  3912. * Availability:
  3913. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  3914. * CarbonLib: not available
  3915. * Non-Carbon CFM: not available
  3916. }
  3917. function GraphicsImportSetDestinationColorSyncProfileRef( ci: GraphicsImportComponent; newDestinationProfileRef: CMProfileRef ): ComponentResult; external name '_GraphicsImportSetDestinationColorSyncProfileRef';
  3918. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  3919. {
  3920. * GraphicsImportGetDestinationColorSyncProfileRef()
  3921. *
  3922. * Availability:
  3923. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  3924. * CarbonLib: not available
  3925. * Non-Carbon CFM: not available
  3926. }
  3927. function GraphicsImportGetDestinationColorSyncProfileRef( ci: GraphicsImportComponent; var destinationProfileRef: CMProfileRef ): ComponentResult; external name '_GraphicsImportGetDestinationColorSyncProfileRef';
  3928. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  3929. {$endc} {TARGET_API_MAC_OSX}
  3930. {
  3931. * GraphicsImportWillUseColorMatching()
  3932. *
  3933. * Availability:
  3934. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  3935. * CarbonLib: not available
  3936. * Non-Carbon CFM: not available
  3937. * Windows: in qtmlClient.lib 6.5 and later
  3938. }
  3939. function GraphicsImportWillUseColorMatching( ci: GraphicsImportComponent; var outWillMatch: Boolean ): ComponentResult; external name '_GraphicsImportWillUseColorMatching';
  3940. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  3941. {$ifc TARGET_API_MAC_OSX}
  3942. { This convenience API is implemented by the base graphics importer for format-specific importers. }
  3943. {
  3944. * GraphicsImportGetGenericColorSyncProfile()
  3945. *
  3946. * Availability:
  3947. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  3948. * CarbonLib: not available
  3949. * Non-Carbon CFM: not available
  3950. }
  3951. function GraphicsImportGetGenericColorSyncProfile( ci: GraphicsImportComponent; pixelFormat: OSType; reservedSetToNULL: UnivPtr; flags: UInt32; var genericColorSyncProfileOut: Handle ): ComponentResult; external name '_GraphicsImportGetGenericColorSyncProfile';
  3952. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  3953. {$endc} {TARGET_API_MAC_OSX}
  3954. { Format-specific importers that implement GetColorSyncProfile and that want the base graphics
  3955. importer to automatically support ColorSync matching should:
  3956. (a) implement GraphicsImportSetReturnGenericColorSyncProfile; when it is called, set an internal flag
  3957. (b) change GraphicsImportGetColorSyncProfile so that, if this internal flag is set,
  3958. when the source image file contains a profile
  3959. and the kGraphicsImporterDontUseColorMatching flag is NOT set,
  3960. it returns a generic profile of the appropriate colorspace instead.
  3961. Other importers should *not* implement GraphicsImportSetReturnGenericColorSyncProfile. }
  3962. { WARNING: Applications should not call this API; it is internal graphics importer plumbing.
  3963. Set kGraphicsImporterDontUseColorMatching instead. }
  3964. {
  3965. * GraphicsImportSetReturnGenericColorSyncProfile()
  3966. *
  3967. * Availability:
  3968. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  3969. * CarbonLib: not available
  3970. * Non-Carbon CFM: not available
  3971. * Windows: in qtmlClient.lib 6.5 and later
  3972. }
  3973. function GraphicsImportSetReturnGenericColorSyncProfile( ci: GraphicsImportComponent; returnGenericProfilesUnlessDontMatchFlagSet: Boolean ): ComponentResult; external name '_GraphicsImportSetReturnGenericColorSyncProfile';
  3974. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  3975. { WARNING: Applications should not call this API; it is internal graphics importer plumbing. }
  3976. {
  3977. * GraphicsImportGetReturnGenericColorSyncProfile()
  3978. *
  3979. * Availability:
  3980. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  3981. * CarbonLib: not available
  3982. * Non-Carbon CFM: not available
  3983. * Windows: in qtmlClient.lib 6.5 and later
  3984. }
  3985. function GraphicsImportGetReturnGenericColorSyncProfile( ci: GraphicsImportComponent; var returnGenericProfilesUnlessDontMatchFlagSet: Boolean ): ComponentResult; external name '_GraphicsImportGetReturnGenericColorSyncProfile';
  3986. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  3987. type
  3988. GraphicsExportComponent = ComponentInstance;
  3989. const
  3990. GraphicsExporterComponentType = FourCharCode('grex');
  3991. kBaseGraphicsExporterSubType = FourCharCode('base');
  3992. { Component flags for Graphics Exporter components }
  3993. const
  3994. graphicsExporterIsBaseExporter = 1 shl 0;
  3995. graphicsExporterCanTranscode = 1 shl 1;
  3996. graphicsExporterUsesImageCompressor = 1 shl 2;
  3997. type
  3998. QTResolutionSettingsPtr = ^QTResolutionSettings;
  3999. QTResolutionSettings = record
  4000. horizontalResolution: Fixed;
  4001. verticalResolution: Fixed;
  4002. end;
  4003. type
  4004. QTTargetDataSizePtr = ^QTTargetDataSize;
  4005. QTTargetDataSize = record
  4006. targetDataSize: UNSIGNEDLONG;
  4007. end;
  4008. type
  4009. QTThumbnailSettingsPtr = ^QTThumbnailSettings;
  4010. QTThumbnailSettings = record
  4011. enableThumbnail: SIGNEDLONG; { a thoroughly padded Boolean}
  4012. maxThumbnailWidth: SIGNEDLONG; { set to zero to let someone else decide}
  4013. maxThumbnailHeight: SIGNEDLONG; { set to zero to let someone else decide}
  4014. end;
  4015. const
  4016. kQTResolutionSettings = FourCharCode('reso');
  4017. kQTTargetDataSize = FourCharCode('dasz');
  4018. kQTDontRecompress = FourCharCode('dntr');
  4019. kQTInterlaceStyle = FourCharCode('ilac');
  4020. kQTColorSyncProfile = FourCharCode('iccp');
  4021. kQTThumbnailSettings = FourCharCode('thum');
  4022. kQTEnableExif = FourCharCode('exif'); { UInt8 (boolean)}
  4023. kQTMetaData = FourCharCode('meta');
  4024. const
  4025. kQTTIFFCompressionMethod = FourCharCode('tifc'); { UInt32}
  4026. kQTTIFFCompression_None = 1;
  4027. kQTTIFFCompression_PackBits = 32773;
  4028. kQTTIFFLittleEndian = FourCharCode('tife'); { UInt8 (boolean)}
  4029. const
  4030. kQTPNGFilterPreference = FourCharCode('pngf'); { UInt32}
  4031. kQTPNGFilterBestForColorType = FourCharCode('bflt');
  4032. kQTPNGFilterNone = 0;
  4033. kQTPNGFilterSub = 1;
  4034. kQTPNGFilterUp = 2;
  4035. kQTPNGFilterAverage = 3;
  4036. kQTPNGFilterPaeth = 4;
  4037. kQTPNGFilterAdaptivePerRow = FourCharCode('aflt');
  4038. kQTPNGInterlaceStyle = FourCharCode('ilac'); { UInt32}
  4039. kQTPNGInterlaceNone = 0;
  4040. kQTPNGInterlaceAdam7 = 1;
  4041. const
  4042. kQTJPEGQuantizationTables = FourCharCode('jpqt');
  4043. kQTJPEGHuffmanTables = FourCharCode('jpht');
  4044. {* These are GraphicsExport procedures *}
  4045. { To use: set the input and output (and other settings as desired) and call GEDoExport. }
  4046. {
  4047. * GraphicsExportDoExport()
  4048. *
  4049. * Availability:
  4050. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4051. * CarbonLib: in CarbonLib 1.0.2 and later
  4052. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4053. * Windows: in qtmlClient.lib 4.0 and later
  4054. }
  4055. function GraphicsExportDoExport( ci: GraphicsExportComponent; var actualSizeWritten: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsExportDoExport';
  4056. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4057. { Used for internal communication between the base and format-specific graphics exporter: }
  4058. {
  4059. * GraphicsExportCanTranscode()
  4060. *
  4061. * Availability:
  4062. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4063. * CarbonLib: in CarbonLib 1.0.2 and later
  4064. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4065. * Windows: in qtmlClient.lib 4.0 and later
  4066. }
  4067. function GraphicsExportCanTranscode( ci: GraphicsExportComponent; var canTranscode: Boolean ): ComponentResult; external name '_GraphicsExportCanTranscode';
  4068. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4069. {
  4070. * GraphicsExportDoTranscode()
  4071. *
  4072. * Availability:
  4073. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4074. * CarbonLib: in CarbonLib 1.0.2 and later
  4075. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4076. * Windows: in qtmlClient.lib 4.0 and later
  4077. }
  4078. function GraphicsExportDoTranscode( ci: GraphicsExportComponent ): ComponentResult; external name '_GraphicsExportDoTranscode';
  4079. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4080. {
  4081. * GraphicsExportCanUseCompressor()
  4082. *
  4083. * Availability:
  4084. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4085. * CarbonLib: in CarbonLib 1.0.2 and later
  4086. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4087. * Windows: in qtmlClient.lib 4.0 and later
  4088. }
  4089. function GraphicsExportCanUseCompressor( ci: GraphicsExportComponent; var canUseCompressor: Boolean; codecSettingsAtomContainerPtr: UnivPtr ): ComponentResult; external name '_GraphicsExportCanUseCompressor';
  4090. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4091. {
  4092. * GraphicsExportDoUseCompressor()
  4093. *
  4094. * Availability:
  4095. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4096. * CarbonLib: in CarbonLib 1.0.2 and later
  4097. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4098. * Windows: in qtmlClient.lib 4.0 and later
  4099. }
  4100. function GraphicsExportDoUseCompressor( ci: GraphicsExportComponent; codecSettingsAtomContainer: UnivPtr; var outDesc: ImageDescriptionHandle ): ComponentResult; external name '_GraphicsExportDoUseCompressor';
  4101. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4102. {
  4103. * GraphicsExportDoStandaloneExport()
  4104. *
  4105. * Availability:
  4106. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4107. * CarbonLib: in CarbonLib 1.0.2 and later
  4108. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4109. * Windows: in qtmlClient.lib 4.0 and later
  4110. }
  4111. function GraphicsExportDoStandaloneExport( ci: GraphicsExportComponent ): ComponentResult; external name '_GraphicsExportDoStandaloneExport';
  4112. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4113. { Queries applications can make of a format-specific graphics exporter: }
  4114. {
  4115. * GraphicsExportGetDefaultFileTypeAndCreator()
  4116. *
  4117. * Availability:
  4118. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4119. * CarbonLib: in CarbonLib 1.0.2 and later
  4120. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4121. * Windows: in qtmlClient.lib 4.0 and later
  4122. }
  4123. function GraphicsExportGetDefaultFileTypeAndCreator( ci: GraphicsExportComponent; var fileType: OSType; var fileCreator: OSType ): ComponentResult; external name '_GraphicsExportGetDefaultFileTypeAndCreator';
  4124. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4125. {
  4126. * GraphicsExportGetDefaultFileNameExtension()
  4127. *
  4128. * Availability:
  4129. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4130. * CarbonLib: in CarbonLib 1.0.2 and later
  4131. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4132. * Windows: in qtmlClient.lib 4.0 and later
  4133. }
  4134. function GraphicsExportGetDefaultFileNameExtension( ci: GraphicsExportComponent; var fileNameExtension: OSType ): ComponentResult; external name '_GraphicsExportGetDefaultFileNameExtension';
  4135. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4136. {
  4137. * GraphicsExportGetMIMETypeList()
  4138. *
  4139. * Availability:
  4140. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4141. * CarbonLib: in CarbonLib 1.0.2 and later
  4142. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4143. * Windows: in qtmlClient.lib 4.0 and later
  4144. }
  4145. function GraphicsExportGetMIMETypeList( ci: GraphicsExportComponent; qtAtomContainerPtr: UnivPtr ): ComponentResult; external name '_GraphicsExportGetMIMETypeList';
  4146. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4147. { (1 unused selector) }
  4148. { Graphics exporter settings: }
  4149. {
  4150. * GraphicsExportRequestSettings()
  4151. *
  4152. * Availability:
  4153. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4154. * CarbonLib: in CarbonLib 1.0.2 and later
  4155. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4156. * Windows: in qtmlClient.lib 4.0 and later
  4157. }
  4158. function GraphicsExportRequestSettings( ci: GraphicsExportComponent; filterProc: ModalFilterYDUPP; yourDataProc: UnivPtr ): ComponentResult; external name '_GraphicsExportRequestSettings';
  4159. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4160. {
  4161. * GraphicsExportSetSettingsFromAtomContainer()
  4162. *
  4163. * Availability:
  4164. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4165. * CarbonLib: in CarbonLib 1.0.2 and later
  4166. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4167. * Windows: in qtmlClient.lib 4.0 and later
  4168. }
  4169. function GraphicsExportSetSettingsFromAtomContainer( ci: GraphicsExportComponent; qtAtomContainer: UnivPtr ): ComponentResult; external name '_GraphicsExportSetSettingsFromAtomContainer';
  4170. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4171. {
  4172. * GraphicsExportGetSettingsAsAtomContainer()
  4173. *
  4174. * Availability:
  4175. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4176. * CarbonLib: in CarbonLib 1.0.2 and later
  4177. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4178. * Windows: in qtmlClient.lib 4.0 and later
  4179. }
  4180. function GraphicsExportGetSettingsAsAtomContainer( ci: GraphicsExportComponent; qtAtomContainerPtr: UnivPtr ): ComponentResult; external name '_GraphicsExportGetSettingsAsAtomContainer';
  4181. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4182. {
  4183. * GraphicsExportGetSettingsAsText()
  4184. *
  4185. * Availability:
  4186. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4187. * CarbonLib: in CarbonLib 1.0.2 and later
  4188. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4189. * Windows: in qtmlClient.lib 4.0 and later
  4190. }
  4191. function GraphicsExportGetSettingsAsText( ci: GraphicsExportComponent; var theText: Handle ): ComponentResult; external name '_GraphicsExportGetSettingsAsText';
  4192. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4193. { Graphics exporters may implement some or none of the following: }
  4194. {
  4195. * GraphicsExportSetDontRecompress()
  4196. *
  4197. * Availability:
  4198. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4199. * CarbonLib: in CarbonLib 1.0.2 and later
  4200. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4201. * Windows: in qtmlClient.lib 4.0 and later
  4202. }
  4203. function GraphicsExportSetDontRecompress( ci: GraphicsExportComponent; dontRecompress: Boolean ): ComponentResult; external name '_GraphicsExportSetDontRecompress';
  4204. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4205. {
  4206. * GraphicsExportGetDontRecompress()
  4207. *
  4208. * Availability:
  4209. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4210. * CarbonLib: in CarbonLib 1.0.2 and later
  4211. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4212. * Windows: in qtmlClient.lib 4.0 and later
  4213. }
  4214. function GraphicsExportGetDontRecompress( ci: GraphicsExportComponent; var dontRecompress: Boolean ): ComponentResult; external name '_GraphicsExportGetDontRecompress';
  4215. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4216. {
  4217. * GraphicsExportSetInterlaceStyle()
  4218. *
  4219. * Availability:
  4220. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4221. * CarbonLib: in CarbonLib 1.0.2 and later
  4222. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4223. * Windows: in qtmlClient.lib 4.0 and later
  4224. }
  4225. function GraphicsExportSetInterlaceStyle( ci: GraphicsExportComponent; interlaceStyle: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsExportSetInterlaceStyle';
  4226. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4227. {
  4228. * GraphicsExportGetInterlaceStyle()
  4229. *
  4230. * Availability:
  4231. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4232. * CarbonLib: in CarbonLib 1.0.2 and later
  4233. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4234. * Windows: in qtmlClient.lib 4.0 and later
  4235. }
  4236. function GraphicsExportGetInterlaceStyle( ci: GraphicsExportComponent; var interlaceStyle: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsExportGetInterlaceStyle';
  4237. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4238. {
  4239. * GraphicsExportSetMetaData()
  4240. *
  4241. * Availability:
  4242. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4243. * CarbonLib: in CarbonLib 1.0.2 and later
  4244. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4245. * Windows: in qtmlClient.lib 4.0 and later
  4246. }
  4247. function GraphicsExportSetMetaData( ci: GraphicsExportComponent; userData: UnivPtr ): ComponentResult; external name '_GraphicsExportSetMetaData';
  4248. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4249. {
  4250. * GraphicsExportGetMetaData()
  4251. *
  4252. * Availability:
  4253. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4254. * CarbonLib: in CarbonLib 1.0.2 and later
  4255. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4256. * Windows: in qtmlClient.lib 4.0 and later
  4257. }
  4258. function GraphicsExportGetMetaData( ci: GraphicsExportComponent; userData: UnivPtr ): ComponentResult; external name '_GraphicsExportGetMetaData';
  4259. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4260. {
  4261. * GraphicsExportSetTargetDataSize()
  4262. *
  4263. * Availability:
  4264. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4265. * CarbonLib: in CarbonLib 1.0.2 and later
  4266. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4267. * Windows: in qtmlClient.lib 4.0 and later
  4268. }
  4269. function GraphicsExportSetTargetDataSize( ci: GraphicsExportComponent; targetDataSize: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsExportSetTargetDataSize';
  4270. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4271. {
  4272. * GraphicsExportGetTargetDataSize()
  4273. *
  4274. * Availability:
  4275. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4276. * CarbonLib: in CarbonLib 1.0.2 and later
  4277. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4278. * Windows: in qtmlClient.lib 4.0 and later
  4279. }
  4280. function GraphicsExportGetTargetDataSize( ci: GraphicsExportComponent; var targetDataSize: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsExportGetTargetDataSize';
  4281. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4282. {
  4283. * GraphicsExportSetCompressionMethod()
  4284. *
  4285. * Availability:
  4286. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4287. * CarbonLib: in CarbonLib 1.0.2 and later
  4288. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4289. * Windows: in qtmlClient.lib 4.0 and later
  4290. }
  4291. function GraphicsExportSetCompressionMethod( ci: GraphicsExportComponent; compressionMethod: SIGNEDLONG ): ComponentResult; external name '_GraphicsExportSetCompressionMethod';
  4292. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4293. {
  4294. * GraphicsExportGetCompressionMethod()
  4295. *
  4296. * Availability:
  4297. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4298. * CarbonLib: in CarbonLib 1.0.2 and later
  4299. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4300. * Windows: in qtmlClient.lib 4.0 and later
  4301. }
  4302. function GraphicsExportGetCompressionMethod( ci: GraphicsExportComponent; var compressionMethod: SIGNEDLONG ): ComponentResult; external name '_GraphicsExportGetCompressionMethod';
  4303. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4304. {
  4305. * GraphicsExportSetCompressionQuality()
  4306. *
  4307. * Availability:
  4308. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4309. * CarbonLib: in CarbonLib 1.0.2 and later
  4310. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4311. * Windows: in qtmlClient.lib 4.0 and later
  4312. }
  4313. function GraphicsExportSetCompressionQuality( ci: GraphicsExportComponent; spatialQuality: CodecQ ): ComponentResult; external name '_GraphicsExportSetCompressionQuality';
  4314. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4315. {
  4316. * GraphicsExportGetCompressionQuality()
  4317. *
  4318. * Availability:
  4319. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4320. * CarbonLib: in CarbonLib 1.0.2 and later
  4321. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4322. * Windows: in qtmlClient.lib 4.0 and later
  4323. }
  4324. function GraphicsExportGetCompressionQuality( ci: GraphicsExportComponent; var spatialQuality: CodecQ ): ComponentResult; external name '_GraphicsExportGetCompressionQuality';
  4325. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4326. {
  4327. * GraphicsExportSetResolution()
  4328. *
  4329. * Availability:
  4330. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4331. * CarbonLib: in CarbonLib 1.0.2 and later
  4332. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4333. * Windows: in qtmlClient.lib 4.0 and later
  4334. }
  4335. function GraphicsExportSetResolution( ci: GraphicsExportComponent; horizontalResolution: Fixed; verticalResolution: Fixed ): ComponentResult; external name '_GraphicsExportSetResolution';
  4336. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4337. {
  4338. * GraphicsExportGetResolution()
  4339. *
  4340. * Availability:
  4341. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4342. * CarbonLib: in CarbonLib 1.0.2 and later
  4343. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4344. * Windows: in qtmlClient.lib 4.0 and later
  4345. }
  4346. function GraphicsExportGetResolution( ci: GraphicsExportComponent; var horizontalResolution: Fixed; var verticalResolution: Fixed ): ComponentResult; external name '_GraphicsExportGetResolution';
  4347. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4348. {
  4349. * GraphicsExportSetDepth()
  4350. *
  4351. * Availability:
  4352. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4353. * CarbonLib: in CarbonLib 1.0.2 and later
  4354. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4355. * Windows: in qtmlClient.lib 4.0 and later
  4356. }
  4357. function GraphicsExportSetDepth( ci: GraphicsExportComponent; depth: SIGNEDLONG ): ComponentResult; external name '_GraphicsExportSetDepth';
  4358. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4359. {
  4360. * GraphicsExportGetDepth()
  4361. *
  4362. * Availability:
  4363. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4364. * CarbonLib: in CarbonLib 1.0.2 and later
  4365. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4366. * Windows: in qtmlClient.lib 4.0 and later
  4367. }
  4368. function GraphicsExportGetDepth( ci: GraphicsExportComponent; var depth: SIGNEDLONG ): ComponentResult; external name '_GraphicsExportGetDepth';
  4369. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4370. { (2 unused selectors) }
  4371. {
  4372. * GraphicsExportSetColorSyncProfile()
  4373. *
  4374. * Availability:
  4375. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4376. * CarbonLib: in CarbonLib 1.0.2 and later
  4377. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4378. * Windows: in qtmlClient.lib 4.0 and later
  4379. }
  4380. function GraphicsExportSetColorSyncProfile( ci: GraphicsExportComponent; colorSyncProfile: Handle ): ComponentResult; external name '_GraphicsExportSetColorSyncProfile';
  4381. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4382. {
  4383. * GraphicsExportGetColorSyncProfile()
  4384. *
  4385. * Availability:
  4386. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4387. * CarbonLib: in CarbonLib 1.0.2 and later
  4388. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4389. * Windows: in qtmlClient.lib 4.0 and later
  4390. }
  4391. function GraphicsExportGetColorSyncProfile( ci: GraphicsExportComponent; var colorSyncProfile: Handle ): ComponentResult; external name '_GraphicsExportGetColorSyncProfile';
  4392. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4393. { Always implemented by the base graphics exporter: }
  4394. {
  4395. * GraphicsExportSetProgressProc()
  4396. *
  4397. * Availability:
  4398. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4399. * CarbonLib: in CarbonLib 1.0.2 and later
  4400. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4401. * Windows: in qtmlClient.lib 4.0 and later
  4402. }
  4403. function GraphicsExportSetProgressProc( ci: GraphicsExportComponent; progressProc: ICMProgressProcRecordPtr ): ComponentResult; external name '_GraphicsExportSetProgressProc';
  4404. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4405. {
  4406. * GraphicsExportGetProgressProc()
  4407. *
  4408. * Availability:
  4409. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4410. * CarbonLib: in CarbonLib 1.0.2 and later
  4411. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4412. * Windows: in qtmlClient.lib 4.0 and later
  4413. }
  4414. function GraphicsExportGetProgressProc( ci: GraphicsExportComponent; progressProc: ICMProgressProcRecordPtr ): ComponentResult; external name '_GraphicsExportGetProgressProc';
  4415. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4416. { Sources for the input image: }
  4417. {
  4418. * GraphicsExportSetInputDataReference()
  4419. *
  4420. * Availability:
  4421. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4422. * CarbonLib: in CarbonLib 1.0.2 and later
  4423. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4424. * Windows: in qtmlClient.lib 4.0 and later
  4425. }
  4426. function GraphicsExportSetInputDataReference( ci: GraphicsExportComponent; dataRef: Handle; dataRefType: OSType; desc: ImageDescriptionHandle ): ComponentResult; external name '_GraphicsExportSetInputDataReference';
  4427. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4428. {
  4429. * GraphicsExportGetInputDataReference()
  4430. *
  4431. * Availability:
  4432. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4433. * CarbonLib: in CarbonLib 1.0.2 and later
  4434. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4435. * Windows: in qtmlClient.lib 4.0 and later
  4436. }
  4437. function GraphicsExportGetInputDataReference( ci: GraphicsExportComponent; var dataRef: Handle; var dataRefType: OSType ): ComponentResult; external name '_GraphicsExportGetInputDataReference';
  4438. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4439. {
  4440. * GraphicsExportSetInputFile()
  4441. *
  4442. * Availability:
  4443. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4444. * CarbonLib: in CarbonLib 1.0.2 and later
  4445. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4446. * Windows: in qtmlClient.lib 4.0 and later
  4447. }
  4448. function GraphicsExportSetInputFile( ci: GraphicsExportComponent; const (*var*) theFile: FSSpec; desc: ImageDescriptionHandle ): ComponentResult; external name '_GraphicsExportSetInputFile';
  4449. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4450. {
  4451. * GraphicsExportGetInputFile()
  4452. *
  4453. * Availability:
  4454. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4455. * CarbonLib: in CarbonLib 1.0.2 and later
  4456. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4457. * Windows: in qtmlClient.lib 4.0 and later
  4458. }
  4459. function GraphicsExportGetInputFile( ci: GraphicsExportComponent; var theFile: FSSpec ): ComponentResult; external name '_GraphicsExportGetInputFile';
  4460. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4461. {
  4462. * GraphicsExportSetInputHandle()
  4463. *
  4464. * Availability:
  4465. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4466. * CarbonLib: in CarbonLib 1.0.2 and later
  4467. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4468. * Windows: in qtmlClient.lib 4.0 and later
  4469. }
  4470. function GraphicsExportSetInputHandle( ci: GraphicsExportComponent; h: Handle; desc: ImageDescriptionHandle ): ComponentResult; external name '_GraphicsExportSetInputHandle';
  4471. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4472. {
  4473. * GraphicsExportGetInputHandle()
  4474. *
  4475. * Availability:
  4476. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4477. * CarbonLib: in CarbonLib 1.0.2 and later
  4478. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4479. * Windows: in qtmlClient.lib 4.0 and later
  4480. }
  4481. function GraphicsExportGetInputHandle( ci: GraphicsExportComponent; var h: Handle ): ComponentResult; external name '_GraphicsExportGetInputHandle';
  4482. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4483. {
  4484. * GraphicsExportSetInputPtr()
  4485. *
  4486. * Availability:
  4487. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4488. * CarbonLib: in CarbonLib 1.0.2 and later
  4489. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4490. * Windows: in qtmlClient.lib 4.0 and later
  4491. }
  4492. function GraphicsExportSetInputPtr( ci: GraphicsExportComponent; p: Ptr; size: UNSIGNEDLONG; desc: ImageDescriptionHandle ): ComponentResult; external name '_GraphicsExportSetInputPtr';
  4493. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4494. {
  4495. * GraphicsExportGetInputPtr()
  4496. *
  4497. * Availability:
  4498. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4499. * CarbonLib: in CarbonLib 1.0.2 and later
  4500. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4501. * Windows: in qtmlClient.lib 4.0 and later
  4502. }
  4503. function GraphicsExportGetInputPtr( ci: GraphicsExportComponent; var p: Ptr; var size: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsExportGetInputPtr';
  4504. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4505. {
  4506. * GraphicsExportSetInputGraphicsImporter()
  4507. *
  4508. * Availability:
  4509. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4510. * CarbonLib: in CarbonLib 1.0.2 and later
  4511. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4512. * Windows: in qtmlClient.lib 4.0 and later
  4513. }
  4514. function GraphicsExportSetInputGraphicsImporter( ci: GraphicsExportComponent; grip: GraphicsImportComponent ): ComponentResult; external name '_GraphicsExportSetInputGraphicsImporter';
  4515. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4516. {
  4517. * GraphicsExportGetInputGraphicsImporter()
  4518. *
  4519. * Availability:
  4520. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4521. * CarbonLib: in CarbonLib 1.0.2 and later
  4522. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4523. * Windows: in qtmlClient.lib 4.0 and later
  4524. }
  4525. function GraphicsExportGetInputGraphicsImporter( ci: GraphicsExportComponent; var grip: GraphicsImportComponent ): ComponentResult; external name '_GraphicsExportGetInputGraphicsImporter';
  4526. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4527. {
  4528. * GraphicsExportSetInputPicture()
  4529. *
  4530. * Availability:
  4531. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4532. * CarbonLib: in CarbonLib 1.0.2 and later
  4533. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4534. * Windows: in qtmlClient.lib 4.0 and later
  4535. }
  4536. function GraphicsExportSetInputPicture( ci: GraphicsExportComponent; picture: PicHandle ): ComponentResult; external name '_GraphicsExportSetInputPicture';
  4537. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4538. {
  4539. * GraphicsExportGetInputPicture()
  4540. *
  4541. * Availability:
  4542. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4543. * CarbonLib: in CarbonLib 1.0.2 and later
  4544. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4545. * Windows: in qtmlClient.lib 4.0 and later
  4546. }
  4547. function GraphicsExportGetInputPicture( ci: GraphicsExportComponent; var picture: PicHandle ): ComponentResult; external name '_GraphicsExportGetInputPicture';
  4548. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4549. {
  4550. * GraphicsExportSetInputGWorld()
  4551. *
  4552. * Availability:
  4553. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4554. * CarbonLib: in CarbonLib 1.0.2 and later
  4555. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4556. * Windows: in qtmlClient.lib 4.0 and later
  4557. }
  4558. function GraphicsExportSetInputGWorld( ci: GraphicsExportComponent; gworld: GWorldPtr ): ComponentResult; external name '_GraphicsExportSetInputGWorld';
  4559. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4560. {
  4561. * GraphicsExportGetInputGWorld()
  4562. *
  4563. * Availability:
  4564. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4565. * CarbonLib: in CarbonLib 1.0.2 and later
  4566. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4567. * Windows: in qtmlClient.lib 4.0 and later
  4568. }
  4569. function GraphicsExportGetInputGWorld( ci: GraphicsExportComponent; var gworld: GWorldPtr ): ComponentResult; external name '_GraphicsExportGetInputGWorld';
  4570. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4571. {
  4572. * GraphicsExportSetInputPixmap()
  4573. *
  4574. * Availability:
  4575. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4576. * CarbonLib: in CarbonLib 1.0.2 and later
  4577. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4578. * Windows: in qtmlClient.lib 4.0 and later
  4579. }
  4580. function GraphicsExportSetInputPixmap( ci: GraphicsExportComponent; pixmap: PixMapHandle ): ComponentResult; external name '_GraphicsExportSetInputPixmap';
  4581. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4582. {
  4583. * GraphicsExportGetInputPixmap()
  4584. *
  4585. * Availability:
  4586. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4587. * CarbonLib: in CarbonLib 1.0.2 and later
  4588. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4589. * Windows: in qtmlClient.lib 4.0 and later
  4590. }
  4591. function GraphicsExportGetInputPixmap( ci: GraphicsExportComponent; var pixmap: PixMapHandle ): ComponentResult; external name '_GraphicsExportGetInputPixmap';
  4592. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4593. { Only applicable when the input is a data reference, file, handle or ptr: }
  4594. {
  4595. * GraphicsExportSetInputOffsetAndLimit()
  4596. *
  4597. * Availability:
  4598. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4599. * CarbonLib: in CarbonLib 1.0.2 and later
  4600. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4601. * Windows: in qtmlClient.lib 4.0 and later
  4602. }
  4603. function GraphicsExportSetInputOffsetAndLimit( ci: GraphicsExportComponent; offset: UNSIGNEDLONG; limit: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsExportSetInputOffsetAndLimit';
  4604. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4605. {
  4606. * GraphicsExportGetInputOffsetAndLimit()
  4607. *
  4608. * Availability:
  4609. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4610. * CarbonLib: in CarbonLib 1.0.2 and later
  4611. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4612. * Windows: in qtmlClient.lib 4.0 and later
  4613. }
  4614. function GraphicsExportGetInputOffsetAndLimit( ci: GraphicsExportComponent; var offset: UNSIGNEDLONG; var limit: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsExportGetInputOffsetAndLimit';
  4615. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4616. { Used by format-specific graphics exporters when transcoding: }
  4617. {
  4618. * GraphicsExportMayExporterReadInputData()
  4619. *
  4620. * Availability:
  4621. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4622. * CarbonLib: in CarbonLib 1.0.2 and later
  4623. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4624. * Windows: in qtmlClient.lib 4.0 and later
  4625. }
  4626. function GraphicsExportMayExporterReadInputData( ci: GraphicsExportComponent; var mayReadInputData: Boolean ): ComponentResult; external name '_GraphicsExportMayExporterReadInputData';
  4627. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4628. {
  4629. * GraphicsExportGetInputDataSize()
  4630. *
  4631. * Availability:
  4632. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4633. * CarbonLib: in CarbonLib 1.0.2 and later
  4634. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4635. * Windows: in qtmlClient.lib 4.0 and later
  4636. }
  4637. function GraphicsExportGetInputDataSize( ci: GraphicsExportComponent; var size: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsExportGetInputDataSize';
  4638. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4639. {
  4640. * GraphicsExportReadInputData()
  4641. *
  4642. * Availability:
  4643. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4644. * CarbonLib: in CarbonLib 1.0.2 and later
  4645. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4646. * Windows: in qtmlClient.lib 4.0 and later
  4647. }
  4648. function GraphicsExportReadInputData( ci: GraphicsExportComponent; dataPtr: UnivPtr; dataOffset: UNSIGNEDLONG; dataSize: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsExportReadInputData';
  4649. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4650. { Used by format-specific graphics exporters, especially when doing standalone export: }
  4651. {
  4652. * GraphicsExportGetInputImageDescription()
  4653. *
  4654. * Availability:
  4655. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4656. * CarbonLib: in CarbonLib 1.0.2 and later
  4657. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4658. * Windows: in qtmlClient.lib 4.0 and later
  4659. }
  4660. function GraphicsExportGetInputImageDescription( ci: GraphicsExportComponent; var desc: ImageDescriptionHandle ): ComponentResult; external name '_GraphicsExportGetInputImageDescription';
  4661. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4662. {
  4663. * GraphicsExportGetInputImageDimensions()
  4664. *
  4665. * Availability:
  4666. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4667. * CarbonLib: in CarbonLib 1.0.2 and later
  4668. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4669. * Windows: in qtmlClient.lib 4.0 and later
  4670. }
  4671. function GraphicsExportGetInputImageDimensions( ci: GraphicsExportComponent; var dimensions: Rect ): ComponentResult; external name '_GraphicsExportGetInputImageDimensions';
  4672. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4673. {
  4674. * GraphicsExportGetInputImageDepth()
  4675. *
  4676. * Availability:
  4677. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4678. * CarbonLib: in CarbonLib 1.0.2 and later
  4679. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4680. * Windows: in qtmlClient.lib 4.0 and later
  4681. }
  4682. function GraphicsExportGetInputImageDepth( ci: GraphicsExportComponent; var inputDepth: SIGNEDLONG ): ComponentResult; external name '_GraphicsExportGetInputImageDepth';
  4683. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4684. {
  4685. * GraphicsExportDrawInputImage()
  4686. *
  4687. * Availability:
  4688. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4689. * CarbonLib: in CarbonLib 1.0.2 and later
  4690. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4691. * Windows: in qtmlClient.lib 4.0 and later
  4692. }
  4693. function GraphicsExportDrawInputImage( ci: GraphicsExportComponent; gw: CGrafPtr; gd: GDHandle; const (*var*) srcRect: Rect; const (*var*) dstRect: Rect ): ComponentResult; external name '_GraphicsExportDrawInputImage';
  4694. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4695. { Destinations for the output image: }
  4696. {
  4697. * GraphicsExportSetOutputDataReference()
  4698. *
  4699. * Availability:
  4700. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4701. * CarbonLib: in CarbonLib 1.0.2 and later
  4702. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4703. * Windows: in qtmlClient.lib 4.0 and later
  4704. }
  4705. function GraphicsExportSetOutputDataReference( ci: GraphicsExportComponent; dataRef: Handle; dataRefType: OSType ): ComponentResult; external name '_GraphicsExportSetOutputDataReference';
  4706. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4707. {
  4708. * GraphicsExportGetOutputDataReference()
  4709. *
  4710. * Availability:
  4711. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4712. * CarbonLib: in CarbonLib 1.0.2 and later
  4713. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4714. * Windows: in qtmlClient.lib 4.0 and later
  4715. }
  4716. function GraphicsExportGetOutputDataReference( ci: GraphicsExportComponent; var dataRef: Handle; var dataRefType: OSType ): ComponentResult; external name '_GraphicsExportGetOutputDataReference';
  4717. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4718. {
  4719. * GraphicsExportSetOutputFile()
  4720. *
  4721. * Availability:
  4722. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4723. * CarbonLib: in CarbonLib 1.0.2 and later
  4724. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4725. * Windows: in qtmlClient.lib 4.0 and later
  4726. }
  4727. function GraphicsExportSetOutputFile( ci: GraphicsExportComponent; const (*var*) theFile: FSSpec ): ComponentResult; external name '_GraphicsExportSetOutputFile';
  4728. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4729. {
  4730. * GraphicsExportGetOutputFile()
  4731. *
  4732. * Availability:
  4733. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4734. * CarbonLib: in CarbonLib 1.0.2 and later
  4735. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4736. * Windows: in qtmlClient.lib 4.0 and later
  4737. }
  4738. function GraphicsExportGetOutputFile( ci: GraphicsExportComponent; var theFile: FSSpec ): ComponentResult; external name '_GraphicsExportGetOutputFile';
  4739. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4740. {
  4741. * GraphicsExportSetOutputHandle()
  4742. *
  4743. * Availability:
  4744. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4745. * CarbonLib: in CarbonLib 1.0.2 and later
  4746. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4747. * Windows: in qtmlClient.lib 4.0 and later
  4748. }
  4749. function GraphicsExportSetOutputHandle( ci: GraphicsExportComponent; h: Handle ): ComponentResult; external name '_GraphicsExportSetOutputHandle';
  4750. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4751. {
  4752. * GraphicsExportGetOutputHandle()
  4753. *
  4754. * Availability:
  4755. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4756. * CarbonLib: in CarbonLib 1.0.2 and later
  4757. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4758. * Windows: in qtmlClient.lib 4.0 and later
  4759. }
  4760. function GraphicsExportGetOutputHandle( ci: GraphicsExportComponent; var h: Handle ): ComponentResult; external name '_GraphicsExportGetOutputHandle';
  4761. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4762. {
  4763. * GraphicsExportSetOutputOffsetAndMaxSize()
  4764. *
  4765. * Availability:
  4766. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4767. * CarbonLib: in CarbonLib 1.0.2 and later
  4768. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4769. * Windows: in qtmlClient.lib 4.0 and later
  4770. }
  4771. function GraphicsExportSetOutputOffsetAndMaxSize( ci: GraphicsExportComponent; offset: UNSIGNEDLONG; maxSize: UNSIGNEDLONG; truncateFile: Boolean ): ComponentResult; external name '_GraphicsExportSetOutputOffsetAndMaxSize';
  4772. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4773. {
  4774. * GraphicsExportGetOutputOffsetAndMaxSize()
  4775. *
  4776. * Availability:
  4777. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4778. * CarbonLib: in CarbonLib 1.0.2 and later
  4779. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4780. * Windows: in qtmlClient.lib 4.0 and later
  4781. }
  4782. function GraphicsExportGetOutputOffsetAndMaxSize( ci: GraphicsExportComponent; var offset: UNSIGNEDLONG; var maxSize: UNSIGNEDLONG; var truncateFile: Boolean ): ComponentResult; external name '_GraphicsExportGetOutputOffsetAndMaxSize';
  4783. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4784. {
  4785. * GraphicsExportSetOutputFileTypeAndCreator()
  4786. *
  4787. * Availability:
  4788. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4789. * CarbonLib: in CarbonLib 1.0.2 and later
  4790. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4791. * Windows: in qtmlClient.lib 4.0 and later
  4792. }
  4793. function GraphicsExportSetOutputFileTypeAndCreator( ci: GraphicsExportComponent; fileType: OSType; fileCreator: OSType ): ComponentResult; external name '_GraphicsExportSetOutputFileTypeAndCreator';
  4794. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4795. {
  4796. * GraphicsExportGetOutputFileTypeAndCreator()
  4797. *
  4798. * Availability:
  4799. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4800. * CarbonLib: in CarbonLib 1.0.2 and later
  4801. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4802. * Windows: in qtmlClient.lib 4.0 and later
  4803. }
  4804. function GraphicsExportGetOutputFileTypeAndCreator( ci: GraphicsExportComponent; var fileType: OSType; var fileCreator: OSType ): ComponentResult; external name '_GraphicsExportGetOutputFileTypeAndCreator';
  4805. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4806. { Used by format-specific graphics exporters: }
  4807. {
  4808. * GraphicsExportWriteOutputData()
  4809. *
  4810. * Availability:
  4811. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4812. * CarbonLib: in CarbonLib 1.0.2 and later
  4813. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4814. * Windows: in qtmlClient.lib 4.0 and later
  4815. }
  4816. function GraphicsExportWriteOutputData( ci: GraphicsExportComponent; dataPtr: {const} UnivPtr; dataSize: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsExportWriteOutputData';
  4817. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4818. {
  4819. * GraphicsExportSetOutputMark()
  4820. *
  4821. * Availability:
  4822. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4823. * CarbonLib: in CarbonLib 1.0.2 and later
  4824. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4825. * Windows: in qtmlClient.lib 4.0 and later
  4826. }
  4827. function GraphicsExportSetOutputMark( ci: GraphicsExportComponent; mark: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsExportSetOutputMark';
  4828. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4829. {
  4830. * GraphicsExportGetOutputMark()
  4831. *
  4832. * Availability:
  4833. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4834. * CarbonLib: in CarbonLib 1.0.2 and later
  4835. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4836. * Windows: in qtmlClient.lib 4.0 and later
  4837. }
  4838. function GraphicsExportGetOutputMark( ci: GraphicsExportComponent; var mark: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsExportGetOutputMark';
  4839. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4840. {
  4841. * GraphicsExportReadOutputData()
  4842. *
  4843. * Availability:
  4844. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4845. * CarbonLib: in CarbonLib 1.0.2 and later
  4846. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  4847. * Windows: in qtmlClient.lib 4.0 and later
  4848. }
  4849. function GraphicsExportReadOutputData( ci: GraphicsExportComponent; dataPtr: UnivPtr; dataOffset: UNSIGNEDLONG; dataSize: UNSIGNEDLONG ): ComponentResult; external name '_GraphicsExportReadOutputData';
  4850. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4851. { Allows embedded thumbnail creation, if supported. }
  4852. {
  4853. * GraphicsExportSetThumbnailEnabled()
  4854. *
  4855. * Availability:
  4856. * Mac OS X: in version 10.1 and later in QuickTime.framework
  4857. * CarbonLib: in CarbonLib 1.4 and later
  4858. * Non-Carbon CFM: in QuickTimeLib 5.0.2 and later
  4859. * Windows: in qtmlClient.lib 5.0.2 and later
  4860. }
  4861. function GraphicsExportSetThumbnailEnabled( ci: GraphicsExportComponent; enableThumbnail: Boolean; maxThumbnailWidth: SIGNEDLONG; maxThumbnailHeight: SIGNEDLONG ): ComponentResult; external name '_GraphicsExportSetThumbnailEnabled';
  4862. (* AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER *)
  4863. {
  4864. * GraphicsExportGetThumbnailEnabled()
  4865. *
  4866. * Availability:
  4867. * Mac OS X: in version 10.1 and later in QuickTime.framework
  4868. * CarbonLib: in CarbonLib 1.4 and later
  4869. * Non-Carbon CFM: in QuickTimeLib 5.0.2 and later
  4870. * Windows: in qtmlClient.lib 5.0.2 and later
  4871. }
  4872. function GraphicsExportGetThumbnailEnabled( ci: GraphicsExportComponent; var thumbnailEnabled: Boolean; var maxThumbnailWidth: SIGNEDLONG; var maxThumbnailHeight: SIGNEDLONG ): ComponentResult; external name '_GraphicsExportGetThumbnailEnabled';
  4873. (* AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER *)
  4874. { Allows export of Exif files, if supported. This disables Exif-incompatible settings such as grayscale JPEG and compressed TIFF, and enables export of Exif metadata. }
  4875. {
  4876. * GraphicsExportSetExifEnabled()
  4877. *
  4878. * Availability:
  4879. * Mac OS X: in version 10.1 and later in QuickTime.framework
  4880. * CarbonLib: in CarbonLib 1.4 and later
  4881. * Non-Carbon CFM: in QuickTimeLib 5.0.2 and later
  4882. * Windows: in qtmlClient.lib 5.0.2 and later
  4883. }
  4884. function GraphicsExportSetExifEnabled( ci: GraphicsExportComponent; enableExif: Boolean ): ComponentResult; external name '_GraphicsExportSetExifEnabled';
  4885. (* AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER *)
  4886. {
  4887. * GraphicsExportGetExifEnabled()
  4888. *
  4889. * Availability:
  4890. * Mac OS X: in version 10.1 and later in QuickTime.framework
  4891. * CarbonLib: in CarbonLib 1.4 and later
  4892. * Non-Carbon CFM: in QuickTimeLib 5.0.2 and later
  4893. * Windows: in qtmlClient.lib 5.0.2 and later
  4894. }
  4895. function GraphicsExportGetExifEnabled( ci: GraphicsExportComponent; var exifEnabled: Boolean ): ComponentResult; external name '_GraphicsExportGetExifEnabled';
  4896. (* AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER *)
  4897. {$ifc TARGET_API_MAC_OSX}
  4898. {
  4899. * GraphicsExportSetInputCGImage()
  4900. *
  4901. * Availability:
  4902. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  4903. * CarbonLib: not available
  4904. * Non-Carbon CFM: not available
  4905. }
  4906. function GraphicsExportSetInputCGImage( ci: GraphicsExportComponent; imageRef: CGImageRef ): ComponentResult; external name '_GraphicsExportSetInputCGImage';
  4907. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  4908. {
  4909. * GraphicsExportGetInputCGImage()
  4910. *
  4911. * Availability:
  4912. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  4913. * CarbonLib: not available
  4914. * Non-Carbon CFM: not available
  4915. }
  4916. function GraphicsExportGetInputCGImage( ci: GraphicsExportComponent; var imageRefOut: CGImageRef ): ComponentResult; external name '_GraphicsExportGetInputCGImage';
  4917. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  4918. {
  4919. * GraphicsExportSetInputCGBitmapContext()
  4920. *
  4921. * Availability:
  4922. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  4923. * CarbonLib: not available
  4924. * Non-Carbon CFM: not available
  4925. }
  4926. function GraphicsExportSetInputCGBitmapContext( ci: GraphicsExportComponent; bitmapContextRef: CGContextRef ): ComponentResult; external name '_GraphicsExportSetInputCGBitmapContext';
  4927. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  4928. {
  4929. * GraphicsExportGetInputCGBitmapContext()
  4930. *
  4931. * Availability:
  4932. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  4933. * CarbonLib: not available
  4934. * Non-Carbon CFM: not available
  4935. }
  4936. function GraphicsExportGetInputCGBitmapContext( ci: GraphicsExportComponent; var bitmapContextRefOut: CGContextRef ): ComponentResult; external name '_GraphicsExportGetInputCGBitmapContext';
  4937. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  4938. {$endc} {TARGET_API_MAC_OSX}
  4939. {
  4940. * GraphicsExportSetFlags()
  4941. *
  4942. * Availability:
  4943. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  4944. * CarbonLib: not available
  4945. * Non-Carbon CFM: not available
  4946. }
  4947. function GraphicsExportSetFlags( ci: GraphicsExportComponent; flags: UInt32 ): ComponentResult; external name '_GraphicsExportSetFlags';
  4948. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  4949. {
  4950. * GraphicsExportGetFlags()
  4951. *
  4952. * Availability:
  4953. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  4954. * CarbonLib: not available
  4955. * Non-Carbon CFM: not available
  4956. }
  4957. function GraphicsExportGetFlags( ci: GraphicsExportComponent; var flagsOut: UInt32 ): ComponentResult; external name '_GraphicsExportGetFlags';
  4958. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  4959. type
  4960. ImageTranscoderComponent = ComponentInstance;
  4961. const
  4962. ImageTranscodererComponentType = FourCharCode('imtc');
  4963. {* These are ImageTranscoder procedures *}
  4964. {
  4965. * ImageTranscoderBeginSequence()
  4966. *
  4967. * Availability:
  4968. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4969. * CarbonLib: in CarbonLib 1.0 and later
  4970. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  4971. * Windows: in qtmlClient.lib 3.0 and later
  4972. }
  4973. function ImageTranscoderBeginSequence( itc: ImageTranscoderComponent; srcDesc: ImageDescriptionHandle; var dstDesc: ImageDescriptionHandle; data: UnivPtr; dataSize: SIGNEDLONG ): ComponentResult; external name '_ImageTranscoderBeginSequence';
  4974. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4975. {
  4976. * ImageTranscoderConvert()
  4977. *
  4978. * Availability:
  4979. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4980. * CarbonLib: in CarbonLib 1.0 and later
  4981. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  4982. * Windows: in qtmlClient.lib 3.0 and later
  4983. }
  4984. function ImageTranscoderConvert( itc: ImageTranscoderComponent; srcData: UnivPtr; srcDataSize: SIGNEDLONG; var dstData: UnivPtr; var dstDataSize: SIGNEDLONG ): ComponentResult; external name '_ImageTranscoderConvert';
  4985. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4986. {
  4987. * ImageTranscoderDisposeData()
  4988. *
  4989. * Availability:
  4990. * Mac OS X: in version 10.0 and later in QuickTime.framework
  4991. * CarbonLib: in CarbonLib 1.0 and later
  4992. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  4993. * Windows: in qtmlClient.lib 3.0 and later
  4994. }
  4995. function ImageTranscoderDisposeData( itc: ImageTranscoderComponent; dstData: UnivPtr ): ComponentResult; external name '_ImageTranscoderDisposeData';
  4996. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  4997. {
  4998. * ImageTranscoderEndSequence()
  4999. *
  5000. * Availability:
  5001. * Mac OS X: in version 10.0 and later in QuickTime.framework
  5002. * CarbonLib: in CarbonLib 1.0 and later
  5003. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  5004. * Windows: in qtmlClient.lib 3.0 and later
  5005. }
  5006. function ImageTranscoderEndSequence( itc: ImageTranscoderComponent ): ComponentResult; external name '_ImageTranscoderEndSequence';
  5007. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  5008. //#if (MAC_OS_X_VERSION_MAX_ALLOWED == MAC_OS_X_VERSION_10_2) || //!defined(kComponentPropertyListenerCollectionContextVersion)
  5009. { MixedMode ProcInfo constants for component property calls }
  5010. const
  5011. uppCallComponentGetComponentPropertyInfoProcInfo = $0003FFF0;
  5012. uppCallComponentGetComponentPropertyProcInfo = $0003FFF0;
  5013. uppCallComponentSetComponentPropertyProcInfo = $0000FFF0;
  5014. uppCallComponentAddComponentPropertyListenerProcInfo = $0000FFF0;
  5015. uppCallComponentRemoveComponentPropertyListenerProcInfo = $0000FFF0;
  5016. { == CallComponentGetComponentPropertyInfo flags == }
  5017. const
  5018. kComponentPropertyFlagCanSetLater = 1 shl 0;
  5019. kComponentPropertyFlagCanSetNow = 1 shl 1;
  5020. kComponentPropertyFlagCanGetLater = 1 shl 2;
  5021. kComponentPropertyFlagCanGetNow = 1 shl 3;
  5022. kComponentPropertyFlagHasExtendedInfo = 1 shl 4;
  5023. kComponentPropertyFlagValueMustBeReleased = 1 shl 5;
  5024. kComponentPropertyFlagValueIsCFTypeRef = 1 shl 6;
  5025. kComponentPropertyFlagGetBufferMustBeInitialized = 1 shl 7;
  5026. kComponentPropertyFlagWillNotifyListeners = 1 shl 8;
  5027. type
  5028. ComponentPropertyClass = OSType;
  5029. ComponentPropertyClassPtr = ^ComponentPropertyClass;
  5030. ComponentPropertyID = OSType;
  5031. ComponentPropertyIDPtr = ^ComponentPropertyID;
  5032. ComponentValueType = OSType;
  5033. ComponentValueTypePtr = ^ComponentValueType;
  5034. ComponentValuePtr = UnivPtr;
  5035. ComponentValuePtrPtr = ^ComponentValuePtr;
  5036. ConstComponentValuePtr = {const} UnivPtr;
  5037. ConstComponentValuePtrPtr = ^ConstComponentValuePtr;
  5038. { == standard property class constants == }
  5039. const
  5040. kComponentPropertyClassPropertyInfo = FourCharCode('pnfo'); { property info class }
  5041. { property info property IDs }
  5042. kComponentPropertyInfoList = FourCharCode('list'); { array of ComponentPropertyInfo (CFData), one for each property }
  5043. kComponentPropertyCacheSeed = FourCharCode('seed'); { property cache seed value }
  5044. kComponentPropertyCacheFlags = FourCharCode('flgs'); { see kComponentPropertyCache flags }
  5045. kComponentPropertyExtendedInfo = FourCharCode('meta'); { CFDictionary with extended property information}
  5046. { values for kComponentPropertyClassPropertyInfo/kComponentPropertyCacheFlags standard component property }
  5047. const
  5048. kComponentPropertyCacheFlagNotPersistent = 1 shl 0; { property metadata should not be saved in persistent cache}
  5049. kComponentPropertyCacheFlagIsDynamic = 1 shl 1; { property metadata should not cached at all}
  5050. type
  5051. ComponentPropertyInfoPtr = ^ComponentPropertyInfo;
  5052. ComponentPropertyInfo = record
  5053. propClass: ComponentPropertyClass;
  5054. propID: ComponentPropertyID;
  5055. propType: ComponentValueType;
  5056. propSize: ByteCount;
  5057. propFlags: UInt32;
  5058. end;
  5059. //#endif { #MAC_OS_X_VERSION_10_3 <= MAC_OS_X_VERSION_MAX_ALLOWED }
  5060. { == "QT" prefixed Component Property calls == }
  5061. type
  5062. QTComponentPropertyListenerProcPtr = procedure( inComponent: ComponentInstance; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inUserData: UnivPtr );
  5063. QTComponentPropertyListenerUPP = QTComponentPropertyListenerProcPtr;
  5064. {
  5065. * QTGetComponentPropertyInfo()
  5066. *
  5067. * Availability:
  5068. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5069. * CarbonLib: not available
  5070. * Non-Carbon CFM: not available
  5071. }
  5072. function QTGetComponentPropertyInfo( inComponent: ComponentInstance; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; outPropType: ComponentValueTypePtr { can be NULL }; outPropValueSize: ByteCountPtr { can be NULL }; outPropertyFlags: UInt32Ptr { can be NULL } ): ComponentResult; external name '_QTGetComponentPropertyInfo';
  5073. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5074. {
  5075. * QTGetComponentProperty()
  5076. *
  5077. * Availability:
  5078. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5079. * CarbonLib: not available
  5080. * Non-Carbon CFM: not available
  5081. }
  5082. function QTGetComponentProperty( inComponent: ComponentInstance; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inPropValueSize: ByteCount; outPropValueAddress: ComponentValuePtr; outPropValueSizeUsed: ByteCountPtr { can be NULL } ): ComponentResult; external name '_QTGetComponentProperty';
  5083. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5084. {
  5085. * QTSetComponentProperty()
  5086. *
  5087. * Availability:
  5088. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5089. * CarbonLib: not available
  5090. * Non-Carbon CFM: not available
  5091. }
  5092. function QTSetComponentProperty( inComponent: ComponentInstance; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inPropValueSize: ByteCount; inPropValueAddress: ConstComponentValuePtr ): ComponentResult; external name '_QTSetComponentProperty';
  5093. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5094. {
  5095. * QTAddComponentPropertyListener()
  5096. *
  5097. * Availability:
  5098. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5099. * CarbonLib: not available
  5100. * Non-Carbon CFM: not available
  5101. }
  5102. function QTAddComponentPropertyListener( inComponent: ComponentInstance; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inDispatchProc: QTComponentPropertyListenerUPP; inUserData: UnivPtr { can be NULL } ): ComponentResult; external name '_QTAddComponentPropertyListener';
  5103. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5104. {
  5105. * QTRemoveComponentPropertyListener()
  5106. *
  5107. * Availability:
  5108. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5109. * CarbonLib: not available
  5110. * Non-Carbon CFM: not available
  5111. }
  5112. function QTRemoveComponentPropertyListener( inComponent: ComponentInstance; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inDispatchProc: QTComponentPropertyListenerUPP; inUserData: UnivPtr { can be NULL } ): ComponentResult; external name '_QTRemoveComponentPropertyListener';
  5113. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5114. { == "QT" prefixed Component Property Listener helpers == }
  5115. type
  5116. QTComponentPropertyListenerCollectionContextPtr = ^QTComponentPropertyListenerCollectionContext;
  5117. QTComponentPropertyListenersRef = CFTypeRef;
  5118. QTComponentPropertyListenerFilterProcPtr = function( inCollection: QTComponentPropertyListenersRef; inCollectionContext: QTComponentPropertyListenerCollectionContextPtr { ptr to avoid circular reference with QTComponentPropertyListenerCollectionContext}; inNotifier: ComponentInstance; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inListenerCallbackProc: QTComponentPropertyListenerUPP; inListenerProcRefCon: {const} UnivPtr; inFilterProcRefCon: {const} UnivPtr ): Boolean;
  5119. QTComponentPropertyListenerFilterUPP = QTComponentPropertyListenerFilterProcPtr;
  5120. QTComponentPropertyListenerCollectionContext = record
  5121. version: UInt32; { struct version }
  5122. filterProcUPP: QTComponentPropertyListenerFilterUPP;
  5123. filterProcData: UnivPtr;
  5124. end;
  5125. const
  5126. kQTComponentPropertyListenerCollectionContextVersion = 1;
  5127. {
  5128. * NewQTComponentPropertyListenerUPP()
  5129. *
  5130. * Availability:
  5131. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5132. * CarbonLib: not available
  5133. * Non-Carbon CFM: available as macro/inline
  5134. }
  5135. function NewQTComponentPropertyListenerUPP( userRoutine: QTComponentPropertyListenerProcPtr ): QTComponentPropertyListenerUPP; external name '_NewQTComponentPropertyListenerUPP';
  5136. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5137. {
  5138. * NewQTComponentPropertyListenerFilterUPP()
  5139. *
  5140. * Availability:
  5141. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5142. * CarbonLib: not available
  5143. * Non-Carbon CFM: available as macro/inline
  5144. }
  5145. function NewQTComponentPropertyListenerFilterUPP( userRoutine: QTComponentPropertyListenerFilterProcPtr ): QTComponentPropertyListenerFilterUPP; external name '_NewQTComponentPropertyListenerFilterUPP';
  5146. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5147. {
  5148. * DisposeQTComponentPropertyListenerUPP()
  5149. *
  5150. * Availability:
  5151. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5152. * CarbonLib: not available
  5153. * Non-Carbon CFM: available as macro/inline
  5154. }
  5155. procedure DisposeQTComponentPropertyListenerUPP( userUPP: QTComponentPropertyListenerUPP ); external name '_DisposeQTComponentPropertyListenerUPP';
  5156. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5157. {
  5158. * DisposeQTComponentPropertyListenerFilterUPP()
  5159. *
  5160. * Availability:
  5161. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5162. * CarbonLib: not available
  5163. * Non-Carbon CFM: available as macro/inline
  5164. }
  5165. procedure DisposeQTComponentPropertyListenerFilterUPP( userUPP: QTComponentPropertyListenerFilterUPP ); external name '_DisposeQTComponentPropertyListenerFilterUPP';
  5166. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5167. {
  5168. * InvokeQTComponentPropertyListenerUPP()
  5169. *
  5170. * Availability:
  5171. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5172. * CarbonLib: not available
  5173. * Non-Carbon CFM: available as macro/inline
  5174. }
  5175. procedure InvokeQTComponentPropertyListenerUPP( inComponent: ComponentInstance; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inUserData: UnivPtr; userUPP: QTComponentPropertyListenerUPP ); external name '_InvokeQTComponentPropertyListenerUPP';
  5176. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5177. {
  5178. * InvokeQTComponentPropertyListenerFilterUPP()
  5179. *
  5180. * Availability:
  5181. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5182. * CarbonLib: not available
  5183. * Non-Carbon CFM: available as macro/inline
  5184. }
  5185. function InvokeQTComponentPropertyListenerFilterUPP( inCollection: QTComponentPropertyListenersRef; const (*var*) inCollectionContext: QTComponentPropertyListenerCollectionContext; inNotifier: ComponentInstance; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inListenerCallbackProc: QTComponentPropertyListenerUPP; inListenerProcRefCon: {const} UnivPtr; inFilterProcRefCon: {const} UnivPtr; userUPP: QTComponentPropertyListenerFilterUPP ): Boolean; external name '_InvokeQTComponentPropertyListenerFilterUPP';
  5186. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5187. {
  5188. * QTComponentPropertyListenerCollectionCreate()
  5189. *
  5190. * Summary:
  5191. * Create a collection to use with the functions
  5192. * ComponentPropertyListenerCollectionAddListener,
  5193. * ComponentPropertyListenerCollectionRemoveListener,
  5194. * ComponentPropertyListenerCollectionNotifyListeners,
  5195. * ComponentPropertyListenerCollectionIsEmpty, and
  5196. * ComponentPropertyListenerCollectionHasListenersForProperty.
  5197. *
  5198. * Parameters:
  5199. *
  5200. * outCollection:
  5201. * Returns the new, empty, listener collection.
  5202. *
  5203. * inAllocator:
  5204. * Allocator used to create the collection and it's contents.
  5205. *
  5206. * inContext:
  5207. * The listener collection context. May be NULL. A copy of the
  5208. * contents of the structure is made, so a pointer to a structure
  5209. * on the stack can be passed.
  5210. *
  5211. * Availability:
  5212. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5213. * CarbonLib: not available
  5214. * Non-Carbon CFM: not available
  5215. }
  5216. function QTComponentPropertyListenerCollectionCreate( inAllocator: CFAllocatorRef { can be NULL }; {const} inContext: QTComponentPropertyListenerCollectionContextPtr { can be NULL }; var outCollection: QTComponentPropertyListenersRef ): OSStatus; external name '_QTComponentPropertyListenerCollectionCreate';
  5217. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5218. {
  5219. * QTComponentPropertyListenerCollectionAddListener()
  5220. *
  5221. * Summary:
  5222. * Add a listener callback for the specified property class and ID
  5223. * to a property listener collection.
  5224. *
  5225. * Parameters:
  5226. *
  5227. * inCollection:
  5228. * The property listener collection.
  5229. *
  5230. * inPropClass:
  5231. * The property class.
  5232. *
  5233. * inPropID:
  5234. * The property ID.
  5235. *
  5236. * inListenerProc:
  5237. * The property listener callback function.
  5238. *
  5239. * inListenerProcRefCon:
  5240. * The data parameter to pass to the listener callback function.
  5241. *
  5242. * Availability:
  5243. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5244. * CarbonLib: not available
  5245. * Non-Carbon CFM: not available
  5246. }
  5247. function QTComponentPropertyListenerCollectionAddListener( inCollection: QTComponentPropertyListenersRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inListenerProc: QTComponentPropertyListenerUPP; inListenerProcRefCon: {const} UnivPtr ): OSStatus; external name '_QTComponentPropertyListenerCollectionAddListener';
  5248. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5249. {
  5250. * QTComponentPropertyListenerCollectionRemoveListener()
  5251. *
  5252. * Summary:
  5253. * Remove a listener callback for the specified property class and
  5254. * ID from a property listener collection.
  5255. *
  5256. * Parameters:
  5257. *
  5258. * inCollection:
  5259. * The property listener collection.
  5260. *
  5261. * inPropClass:
  5262. * The property class.
  5263. *
  5264. * inPropID:
  5265. * The property ID.
  5266. *
  5267. * inListenerProc:
  5268. * The property listener callback function.
  5269. *
  5270. * inListenerProcRefCon:
  5271. * The data parameter to pass to the listener callback function.
  5272. *
  5273. * Availability:
  5274. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5275. * CarbonLib: not available
  5276. * Non-Carbon CFM: not available
  5277. }
  5278. function QTComponentPropertyListenerCollectionRemoveListener( inCollection: QTComponentPropertyListenersRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inListenerProc: QTComponentPropertyListenerUPP; inListenerProcRefCon: {const} UnivPtr ): OSStatus; external name '_QTComponentPropertyListenerCollectionRemoveListener';
  5279. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5280. {
  5281. * QTComponentPropertyListenerCollectionNotifyListeners()
  5282. *
  5283. * Summary:
  5284. * Call all listener callbacks in the collection registered for the
  5285. * specified property class and ID.
  5286. *
  5287. * Discussion:
  5288. * If the "filterProcUPP" in the collection's context is non-NULL,
  5289. * the filter function will be called before each registered
  5290. * listener that matches the specified property class and ID. If the
  5291. * filter function return false, the listener proc will not be
  5292. * called. This is intended to allow a component to change the
  5293. * calling semantics (call another thread, etc), to use a different
  5294. * listener callback signature, etc.
  5295. *
  5296. * Parameters:
  5297. *
  5298. * inCollection:
  5299. * The property listener collection.
  5300. *
  5301. * inNotifier:
  5302. * The calling ComponentInstance.
  5303. *
  5304. * inPropClass:
  5305. * The property class.
  5306. *
  5307. * inPropID:
  5308. * The property ID.
  5309. *
  5310. * inFilterProcRefCon:
  5311. * The data parameter to pass to the filter function.
  5312. *
  5313. * inFlags:
  5314. * Flags. Must be set to 0.
  5315. *
  5316. * Availability:
  5317. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5318. * CarbonLib: not available
  5319. * Non-Carbon CFM: not available
  5320. }
  5321. function QTComponentPropertyListenerCollectionNotifyListeners( inCollection: QTComponentPropertyListenersRef; inNotifier: ComponentInstance; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inFilterProcRefCon: {const} UnivPtr { can be NULL }; inFlags: UInt32 ): OSStatus; external name '_QTComponentPropertyListenerCollectionNotifyListeners';
  5322. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5323. {
  5324. * QTComponentPropertyListenerCollectionIsEmpty()
  5325. *
  5326. * Summary:
  5327. * Return true if the listener collection is empty.
  5328. *
  5329. * Parameters:
  5330. *
  5331. * inCollection:
  5332. * The property listener collection.
  5333. *
  5334. * Availability:
  5335. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5336. * CarbonLib: not available
  5337. * Non-Carbon CFM: not available
  5338. }
  5339. function QTComponentPropertyListenerCollectionIsEmpty( inCollection: QTComponentPropertyListenersRef ): Boolean; external name '_QTComponentPropertyListenerCollectionIsEmpty';
  5340. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5341. {
  5342. * QTComponentPropertyListenerCollectionHasListenersForProperty()
  5343. *
  5344. * Summary:
  5345. * Returns true if there are any listeners registered for the
  5346. * specified property class and ID.
  5347. *
  5348. * Parameters:
  5349. *
  5350. * inCollection:
  5351. * The property listener collection.
  5352. *
  5353. * inPropClass:
  5354. * The property class.
  5355. *
  5356. * inPropID:
  5357. * The property ID.
  5358. *
  5359. * Availability:
  5360. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  5361. * CarbonLib: not available
  5362. * Non-Carbon CFM: not available
  5363. }
  5364. function QTComponentPropertyListenerCollectionHasListenersForProperty( inCollection: QTComponentPropertyListenersRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID ): Boolean; external name '_QTComponentPropertyListenerCollectionHasListenersForProperty';
  5365. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  5366. { DRM properties}
  5367. const
  5368. kQTPropertyClass_DRM = FourCharCode('drm ');
  5369. const
  5370. kQTDRMPropertyID_InteractWithUser = FourCharCode('shui'); { Boolean*}
  5371. kQTDRMPropertyID_IsProtected = FourCharCode('prot'); { Boolean*}
  5372. kQTDRMPropertyID_IsAuthorized = FourCharCode('auth'); { Boolean*}
  5373. { UPP call backs }
  5374. { selectors for component calls }
  5375. const
  5376. kGraphicsImportSetDataReferenceSelect = $0001;
  5377. kGraphicsImportGetDataReferenceSelect = $0002;
  5378. kGraphicsImportSetDataFileSelect = $0003;
  5379. kGraphicsImportGetDataFileSelect = $0004;
  5380. kGraphicsImportSetDataHandleSelect = $0005;
  5381. kGraphicsImportGetDataHandleSelect = $0006;
  5382. kGraphicsImportGetImageDescriptionSelect = $0007;
  5383. kGraphicsImportGetDataOffsetAndSizeSelect = $0008;
  5384. kGraphicsImportReadDataSelect = $0009;
  5385. kGraphicsImportSetClipSelect = $000A;
  5386. kGraphicsImportGetClipSelect = $000B;
  5387. kGraphicsImportSetSourceRectSelect = $000C;
  5388. kGraphicsImportGetSourceRectSelect = $000D;
  5389. kGraphicsImportGetNaturalBoundsSelect = $000E;
  5390. kGraphicsImportDrawSelect = $000F;
  5391. kGraphicsImportSetGWorldSelect = $0010;
  5392. kGraphicsImportGetGWorldSelect = $0011;
  5393. kGraphicsImportSetMatrixSelect = $0012;
  5394. kGraphicsImportGetMatrixSelect = $0013;
  5395. kGraphicsImportSetBoundsRectSelect = $0014;
  5396. kGraphicsImportGetBoundsRectSelect = $0015;
  5397. kGraphicsImportSaveAsPictureSelect = $0016;
  5398. kGraphicsImportSetGraphicsModeSelect = $0017;
  5399. kGraphicsImportGetGraphicsModeSelect = $0018;
  5400. kGraphicsImportSetQualitySelect = $0019;
  5401. kGraphicsImportGetQualitySelect = $001A;
  5402. kGraphicsImportSaveAsQuickTimeImageFileSelect = $001B;
  5403. kGraphicsImportSetDataReferenceOffsetAndLimitSelect = $001C;
  5404. kGraphicsImportGetDataReferenceOffsetAndLimitSelect = $001D;
  5405. kGraphicsImportGetAliasedDataReferenceSelect = $001E;
  5406. kGraphicsImportValidateSelect = $001F;
  5407. kGraphicsImportGetMetaDataSelect = $0020;
  5408. kGraphicsImportGetMIMETypeListSelect = $0021;
  5409. kGraphicsImportDoesDrawAllPixelsSelect = $0022;
  5410. kGraphicsImportGetAsPictureSelect = $0023;
  5411. kGraphicsImportExportImageFileSelect = $0024;
  5412. kGraphicsImportGetExportImageTypeListSelect = $0025;
  5413. kGraphicsImportDoExportImageFileDialogSelect = $0026;
  5414. kGraphicsImportGetExportSettingsAsAtomContainerSelect = $0027;
  5415. kGraphicsImportSetExportSettingsFromAtomContainerSelect = $0028;
  5416. kGraphicsImportSetProgressProcSelect = $0029;
  5417. kGraphicsImportGetProgressProcSelect = $002A;
  5418. kGraphicsImportGetImageCountSelect = $002B;
  5419. kGraphicsImportSetImageIndexSelect = $002C;
  5420. kGraphicsImportGetImageIndexSelect = $002D;
  5421. kGraphicsImportGetDataOffsetAndSize64Select = $002E;
  5422. kGraphicsImportReadData64Select = $002F;
  5423. kGraphicsImportSetDataReferenceOffsetAndLimit64Select = $0030;
  5424. kGraphicsImportGetDataReferenceOffsetAndLimit64Select = $0031;
  5425. kGraphicsImportGetDefaultMatrixSelect = $0032;
  5426. kGraphicsImportGetDefaultClipSelect = $0033;
  5427. kGraphicsImportGetDefaultGraphicsModeSelect = $0034;
  5428. kGraphicsImportGetDefaultSourceRectSelect = $0035;
  5429. kGraphicsImportGetColorSyncProfileSelect = $0036;
  5430. kGraphicsImportSetDestRectSelect = $0037;
  5431. kGraphicsImportGetDestRectSelect = $0038;
  5432. kGraphicsImportSetFlagsSelect = $0039;
  5433. kGraphicsImportGetFlagsSelect = $003A;
  5434. kGraphicsImportGetBaseDataOffsetAndSize64Select = $003D;
  5435. kGraphicsImportSetImageIndexToThumbnailSelect = $003E;
  5436. kGraphicsImportCreateCGImageSelect = $003F;
  5437. kGraphicsImportSaveAsPictureToDataRefSelect = $0040;
  5438. kGraphicsImportSaveAsQuickTimeImageFileToDataRefSelect = $0041;
  5439. kGraphicsImportExportImageFileToDataRefSelect = $0042;
  5440. kGraphicsImportDoExportImageFileToDataRefDialogSelect = $0043;
  5441. kGraphicsImportSetOverrideSourceColorSyncProfileRefSelect = $0044;
  5442. kGraphicsImportGetOverrideSourceColorSyncProfileRefSelect = $0045;
  5443. kGraphicsImportSetDestinationColorSyncProfileRefSelect = $0046;
  5444. kGraphicsImportGetDestinationColorSyncProfileRefSelect = $0047;
  5445. kGraphicsImportWillUseColorMatchingSelect = $0048;
  5446. kGraphicsImportGetGenericColorSyncProfileSelect = $0049;
  5447. kGraphicsImportSetReturnGenericColorSyncProfileSelect = $004A;
  5448. kGraphicsImportGetReturnGenericColorSyncProfileSelect = $004B;
  5449. kGraphicsExportDoExportSelect = $0001;
  5450. kGraphicsExportCanTranscodeSelect = $0002;
  5451. kGraphicsExportDoTranscodeSelect = $0003;
  5452. kGraphicsExportCanUseCompressorSelect = $0004;
  5453. kGraphicsExportDoUseCompressorSelect = $0005;
  5454. kGraphicsExportDoStandaloneExportSelect = $0006;
  5455. kGraphicsExportGetDefaultFileTypeAndCreatorSelect = $0007;
  5456. kGraphicsExportGetDefaultFileNameExtensionSelect = $0008;
  5457. kGraphicsExportGetMIMETypeListSelect = $0009;
  5458. kGraphicsExportRequestSettingsSelect = $000B;
  5459. kGraphicsExportSetSettingsFromAtomContainerSelect = $000C;
  5460. kGraphicsExportGetSettingsAsAtomContainerSelect = $000D;
  5461. kGraphicsExportGetSettingsAsTextSelect = $000E;
  5462. kGraphicsExportSetDontRecompressSelect = $000F;
  5463. kGraphicsExportGetDontRecompressSelect = $0010;
  5464. kGraphicsExportSetInterlaceStyleSelect = $0011;
  5465. kGraphicsExportGetInterlaceStyleSelect = $0012;
  5466. kGraphicsExportSetMetaDataSelect = $0013;
  5467. kGraphicsExportGetMetaDataSelect = $0014;
  5468. kGraphicsExportSetTargetDataSizeSelect = $0015;
  5469. kGraphicsExportGetTargetDataSizeSelect = $0016;
  5470. kGraphicsExportSetCompressionMethodSelect = $0017;
  5471. kGraphicsExportGetCompressionMethodSelect = $0018;
  5472. kGraphicsExportSetCompressionQualitySelect = $0019;
  5473. kGraphicsExportGetCompressionQualitySelect = $001A;
  5474. kGraphicsExportSetResolutionSelect = $001B;
  5475. kGraphicsExportGetResolutionSelect = $001C;
  5476. kGraphicsExportSetDepthSelect = $001D;
  5477. kGraphicsExportGetDepthSelect = $001E;
  5478. kGraphicsExportSetColorSyncProfileSelect = $0021;
  5479. kGraphicsExportGetColorSyncProfileSelect = $0022;
  5480. kGraphicsExportSetProgressProcSelect = $0023;
  5481. kGraphicsExportGetProgressProcSelect = $0024;
  5482. kGraphicsExportSetInputDataReferenceSelect = $0025;
  5483. kGraphicsExportGetInputDataReferenceSelect = $0026;
  5484. kGraphicsExportSetInputFileSelect = $0027;
  5485. kGraphicsExportGetInputFileSelect = $0028;
  5486. kGraphicsExportSetInputHandleSelect = $0029;
  5487. kGraphicsExportGetInputHandleSelect = $002A;
  5488. kGraphicsExportSetInputPtrSelect = $002B;
  5489. kGraphicsExportGetInputPtrSelect = $002C;
  5490. kGraphicsExportSetInputGraphicsImporterSelect = $002D;
  5491. kGraphicsExportGetInputGraphicsImporterSelect = $002E;
  5492. kGraphicsExportSetInputPictureSelect = $002F;
  5493. kGraphicsExportGetInputPictureSelect = $0030;
  5494. kGraphicsExportSetInputGWorldSelect = $0031;
  5495. kGraphicsExportGetInputGWorldSelect = $0032;
  5496. kGraphicsExportSetInputPixmapSelect = $0033;
  5497. kGraphicsExportGetInputPixmapSelect = $0034;
  5498. kGraphicsExportSetInputOffsetAndLimitSelect = $0035;
  5499. kGraphicsExportGetInputOffsetAndLimitSelect = $0036;
  5500. kGraphicsExportMayExporterReadInputDataSelect = $0037;
  5501. kGraphicsExportGetInputDataSizeSelect = $0038;
  5502. kGraphicsExportReadInputDataSelect = $0039;
  5503. kGraphicsExportGetInputImageDescriptionSelect = $003A;
  5504. kGraphicsExportGetInputImageDimensionsSelect = $003B;
  5505. kGraphicsExportGetInputImageDepthSelect = $003C;
  5506. kGraphicsExportDrawInputImageSelect = $003D;
  5507. kGraphicsExportSetOutputDataReferenceSelect = $003E;
  5508. kGraphicsExportGetOutputDataReferenceSelect = $003F;
  5509. kGraphicsExportSetOutputFileSelect = $0040;
  5510. kGraphicsExportGetOutputFileSelect = $0041;
  5511. kGraphicsExportSetOutputHandleSelect = $0042;
  5512. kGraphicsExportGetOutputHandleSelect = $0043;
  5513. kGraphicsExportSetOutputOffsetAndMaxSizeSelect = $0044;
  5514. kGraphicsExportGetOutputOffsetAndMaxSizeSelect = $0045;
  5515. kGraphicsExportSetOutputFileTypeAndCreatorSelect = $0046;
  5516. kGraphicsExportGetOutputFileTypeAndCreatorSelect = $0047;
  5517. kGraphicsExportWriteOutputDataSelect = $0048;
  5518. kGraphicsExportSetOutputMarkSelect = $0049;
  5519. kGraphicsExportGetOutputMarkSelect = $004A;
  5520. kGraphicsExportReadOutputDataSelect = $004B;
  5521. kGraphicsExportSetThumbnailEnabledSelect = $004C;
  5522. kGraphicsExportGetThumbnailEnabledSelect = $004D;
  5523. kGraphicsExportSetExifEnabledSelect = $004E;
  5524. kGraphicsExportGetExifEnabledSelect = $004F;
  5525. kGraphicsExportSetInputCGImageSelect = $0050;
  5526. kGraphicsExportGetInputCGImageSelect = $0051;
  5527. kGraphicsExportSetInputCGBitmapContextSelect = $0052;
  5528. kGraphicsExportGetInputCGBitmapContextSelect = $0053;
  5529. kGraphicsExportSetFlagsSelect = $0054;
  5530. kGraphicsExportGetFlagsSelect = $0055;
  5531. kImageTranscoderBeginSequenceSelect = $0001;
  5532. kImageTranscoderConvertSelect = $0002;
  5533. kImageTranscoderDisposeDataSelect = $0003;
  5534. kImageTranscoderEndSequenceSelect = $0004;
  5535. kQTGetComponentPropertyInfoSelect = -11;
  5536. kQTGetComponentPropertySelect = -12;
  5537. kQTSetComponentPropertySelect = -13;
  5538. kQTAddComponentPropertyListenerSelect = -14;
  5539. kQTRemoveComponentPropertyListenerSelect = -15;
  5540. { Aperture modes }
  5541. {
  5542. * Summary:
  5543. * Aperture modes
  5544. *
  5545. * Discussion:
  5546. * You can set the aperture mode property on a movie to indicate
  5547. * whether aspect ratio and clean aperture correction should be
  5548. * performed (kQTPropertyClass_Visual /
  5549. * kQTVisualPropertyID_ApertureMode). When a movie is in clean,
  5550. * production or encoded pixels aperture mode, each track's
  5551. * dimensions are overriden by special dimensions for that mode. The
  5552. * original track dimensions are preserved and can be restored by
  5553. * setting the movie into classic aperture mode. Aperture modes are
  5554. * not saved in movies.
  5555. * You can set the aperture mode property on a decompression session
  5556. * options object to indicate whether pixel buffers should be tagged
  5557. * to enable aspect ratio and clean aperture correction
  5558. * (kQTPropertyClass_ICMDecompressionSessionOptions /
  5559. * kICMDecompressionSessionOptionsPropertyID_ApertureMode).
  5560. }
  5561. const
  5562. {
  5563. * An aperture mode which gives compatibility with behavior in
  5564. * QuickTime 7.0.x and earlier.
  5565. * A movie in classic aperture mode uses track dimensions as set in
  5566. * NewMovieTrack and SetTrackDimensions.
  5567. * A decompression session in classic aperture mode does not set the
  5568. * clean aperture or pixel aspect ratio attachments on emitted pixel
  5569. * buffers.
  5570. * Movies default to classic aperture mode. If you call
  5571. * SetTrackDimensions on a track, the movie is automatically switched
  5572. * into classic aperture mode.
  5573. }
  5574. kQTApertureMode_Classic = FourCharCode('clas');
  5575. {
  5576. * An aperture mode for general display.
  5577. * Where possible, video will be displayed at the correct pixel
  5578. * aspect ratio, trimmed to the clean aperture. A movie in clean
  5579. * aperture mode sets each track's dimensions to match its
  5580. * kQTVisualPropertyID_CleanApertureDimensions.
  5581. * A decompression session in clean aperture mode sets the clean
  5582. * aperture and pixel aspect ratio attachments on emitted pixel
  5583. * buffers based on the image description.
  5584. }
  5585. kQTApertureMode_CleanAperture = FourCharCode('clea');
  5586. {
  5587. * An aperture mode for modal use in authoring applications.
  5588. * Where possible, video will be displayed at the correct pixel
  5589. * aspect ratio, but without trimming to the clean aperture so that
  5590. * the edge processing region can be viewed. A movie in production
  5591. * aperture mode sets each track's dimensions to match its
  5592. * kQTVisualPropertyID_ProductionApertureDimensions.
  5593. * A decompression session in production aperture mode sets the pixel
  5594. * aspect ratio attachments on emitted pixel buffers based on the
  5595. * image description.
  5596. }
  5597. kQTApertureMode_ProductionAperture = FourCharCode('prod');
  5598. {
  5599. * An aperture mode for technical use.
  5600. * Displays all encoded pixels with no aspect ratio or clean aperture
  5601. * compensation. A movie in encoded pixels aperture mode sets each
  5602. * track's dimensions to match its
  5603. * kQTVisualPropertyID_EncodedPixelsDimensions.
  5604. * A decompression session in encoded pixels aperture mode does not
  5605. * set the clean aperture or pixel aspect ratio attachments on
  5606. * emitted pixel buffers.
  5607. }
  5608. kQTApertureMode_EncodedPixels = FourCharCode('enco');
  5609. { Property interface for Image Descriptions }
  5610. {
  5611. * Summary:
  5612. * Properties of image descriptions.
  5613. }
  5614. const
  5615. {
  5616. * Class identifier for image description properties.
  5617. }
  5618. kQTPropertyClass_ImageDescription = FourCharCode('idsc');
  5619. {
  5620. * The width of the encoded image. Usually, but not always, this is
  5621. * the ImageDescription's width field.
  5622. }
  5623. kICMImageDescriptionPropertyID_EncodedWidth = FourCharCode('encw'); { SInt32, Read/Write }
  5624. {
  5625. * The height of the encoded image. Usually, but not always, this is
  5626. * the ImageDescription's height field.
  5627. }
  5628. kICMImageDescriptionPropertyID_EncodedHeight = FourCharCode('ench'); { SInt32, Read/Write }
  5629. {
  5630. * Describes the clean aperture of the buffer. If not specified
  5631. * explicitly in the image description, the default clean aperture
  5632. * (full encoded width and height) will be returned.
  5633. }
  5634. kICMImageDescriptionPropertyID_CleanAperture = FourCharCode('clap'); { Native-endian CleanApertureImageDescriptionExtension, Read/Write }
  5635. {
  5636. * Describes the pixel aspect ratio. If not specified explicitly in
  5637. * the image description, a square (1:1) pixel aspect ratio will be
  5638. * returned.
  5639. }
  5640. kICMImageDescriptionPropertyID_PixelAspectRatio = FourCharCode('pasp'); { Native-endian PixelAspectRatioImageDescriptionExtension, Read/Write }
  5641. {
  5642. * Dimensions at which the image could be displayed on a square-pixel
  5643. * display, generally calculated using the clean aperture and pixel
  5644. * aspect ratio.
  5645. * Note that this value is returned as a FixedPoint; the width and
  5646. * height can also be read separately as rounded SInt32s via
  5647. * kICMImageDescriptionPropertyID_CleanApertureDisplayWidth and
  5648. * kICMImageDescriptionPropertyID_CleanApertureDisplayHeight.
  5649. }
  5650. kICMImageDescriptionPropertyID_CleanApertureDisplayDimensions = FourCharCode('cadi'); { FixedPoint, Read }
  5651. {
  5652. * Dimensions at which the image could be displayed on a square-pixel
  5653. * display, disregarding any clean aperture but honoring the pixel
  5654. * aspect ratio. This may be useful for authoring applications that
  5655. * want to expose the edge processing region. For general viewing,
  5656. * use kICMImageDescriptionPropertyID_CleanApertureDimensions
  5657. * instead.
  5658. * Note that this value is returned as a FixedPoint; the width and
  5659. * height can also be read separately as rounded SInt32s via
  5660. * kICMImageDescriptionPropertyID_ProductionApertureDisplayWidth and
  5661. * kICMImageDescriptionPropertyID_ProductionApertureDisplayHeight.
  5662. }
  5663. kICMImageDescriptionPropertyID_ProductionApertureDisplayDimensions = FourCharCode('prdi'); { FixedPoint, Read }
  5664. {
  5665. * Dimensions of the encoded image.
  5666. * Note that this value is returned as a FixedPoint for convenience;
  5667. * the width and height can also be read separately as SInt32s via
  5668. * kICMImageDescriptionPropertyID_EncodedWidth and
  5669. * kICMImageDescriptionPropertyID_EncodedHeight.
  5670. }
  5671. kICMImageDescriptionPropertyID_EncodedPixelsDimensions = FourCharCode('endi'); { FixedPoint, Read }
  5672. {
  5673. * A width at which the image could be displayed on a square-pixel
  5674. * display, possibly calculated using the clean aperture and pixel
  5675. * aspect ratio.
  5676. }
  5677. kICMImageDescriptionPropertyID_CleanApertureDisplayWidth = FourCharCode('disw'); { SInt32, Read }
  5678. {
  5679. * A height at which the image could be displayed on a square-pixel
  5680. * display, possibly calculated using the clean aperture and pixel
  5681. * aspect ratio.
  5682. }
  5683. kICMImageDescriptionPropertyID_CleanApertureDisplayHeight = FourCharCode('dish'); { SInt32, Read }
  5684. {
  5685. * A width at which the image could be displayed on a square-pixel
  5686. * display, disregarding any clean aperture but honoring the pixel
  5687. * aspect ratio. This may be useful for authoring applications that
  5688. * want to expose the edge processing region. For general viewing,
  5689. * use kICMImageDescriptionPropertyID_CleanApertureDisplayWidth
  5690. * instead.
  5691. }
  5692. kICMImageDescriptionPropertyID_ProductionApertureDisplayWidth = FourCharCode('pdsw'); { SInt32, Read }
  5693. {
  5694. * A height at which the image could be displayed on a square-pixel
  5695. * display, disregarding any clean aperture but honoring the pixel
  5696. * aspect ratio. This may be useful for authoring applications that
  5697. * want to expose the edge processing region. For general viewing,
  5698. * use kICMImageDescriptionPropertyID_CleanApertureDisplayHeight
  5699. * instead.
  5700. }
  5701. kICMImageDescriptionPropertyID_ProductionApertureDisplayHeight = FourCharCode('pdsh'); { SInt32, Read }
  5702. {
  5703. * Synonym for
  5704. * kICMImageDescriptionPropertyID_CleanApertureDisplayWidth.
  5705. }
  5706. kICMImageDescriptionPropertyID_DisplayWidth = FourCharCode('disw'); { SInt32, Read }
  5707. {
  5708. * Synonym for
  5709. * kICMImageDescriptionPropertyID_CleanApertureDisplayHeight.
  5710. }
  5711. kICMImageDescriptionPropertyID_DisplayHeight = FourCharCode('dish'); { SInt32, Read }
  5712. {
  5713. * Synonym for
  5714. * kICMImageDescriptionPropertyID_ProductionApertureDisplayWidth.
  5715. }
  5716. kICMImageDescriptionPropertyID_ProductionDisplayWidth = FourCharCode('pdsw'); { SInt32, Read }
  5717. {
  5718. * Synonym for
  5719. * kICMImageDescriptionPropertyID_ProductionApertureDisplayHeight.
  5720. }
  5721. kICMImageDescriptionPropertyID_ProductionDisplayHeight = FourCharCode('pdsh'); { SInt32, Read }
  5722. {
  5723. * Color information, if available in the
  5724. * NCLCColorInfoImageDescriptionExtension format.
  5725. }
  5726. kICMImageDescriptionPropertyID_NCLCColorInfo = FourCharCode('nclc'); { Native-endian NCLCColorInfoImageDescriptionExtension, Read/Write }
  5727. {
  5728. * A CGColorSpaceRef for the colorspace described by the image
  5729. * description, constructed from video color info or ICC Profile.
  5730. * IMPORTANT NOTE: The YCbCr matrix from the video color info is not
  5731. * represented in the CGColorSpaceRef. The caller of GetProperty is
  5732. * responsible for releasing this, eg, by calling
  5733. * CGColorSpaceRelease. Only supported on Mac OS X.
  5734. }
  5735. kICMImageDescriptionPropertyID_CGColorSpace = FourCharCode('cgcs'); { CGColorSpaceRef, Read -- caller of GetProperty must call CGColorSpaceRelease }
  5736. {
  5737. * A CFDataRef containing the serialized ICC profile described by the
  5738. * image description. The caller of GetProperty is responsible for
  5739. * releasing this, eg, by calling CFRelease.
  5740. }
  5741. kICMImageDescriptionPropertyID_ICCProfile = FourCharCode('iccp'); { CFDataRef, Read/Write -- caller of GetProperty must call CFRelease }
  5742. {
  5743. * The gamma level described by the image description.
  5744. }
  5745. kICMImageDescriptionPropertyID_GammaLevel = FourCharCode('gama'); { Fixed, Read/Write }
  5746. {
  5747. * Information about the number and order of fields, if available.
  5748. }
  5749. kICMImageDescriptionPropertyID_FieldInfo = FourCharCode('fiel'); { FieldInfoImageDescriptionExtension2, Read/Write }
  5750. {
  5751. * The offset in bytes from the start of one row to the next. Only
  5752. * valid if the codec type is a chunky pixel format.
  5753. }
  5754. kICMImageDescriptionPropertyID_RowBytes = FourCharCode('rowb'); { SInt32, Read/Write }
  5755. {
  5756. * A track width suitable for passing to NewMovieTrack when creating
  5757. * a new track to hold this image data.
  5758. }
  5759. kICMImageDescriptionPropertyID_ClassicTrackWidth = FourCharCode('claw'); { Fixed, Read }
  5760. {
  5761. * A track height suitable for passing to NewMovieTrack when creating
  5762. * a new track to hold this image data.
  5763. }
  5764. kICMImageDescriptionPropertyID_ClassicTrackHeight = FourCharCode('clah'); { Fixed, Read }
  5765. {
  5766. * Defines a duration for quantizing time. This is applicable for
  5767. * cases where a single media sample generates visual output that
  5768. * varies continuously through its duration. By interpreting this
  5769. * property, such a sample may be considered to have internal "step
  5770. * points" at multiples of the stepping duration. This can be used to
  5771. * throttle frame generation during playback, and when stepping using
  5772. * InterestingTime APIs. Setting a step duration with value zero
  5773. * removes any current step duration.
  5774. }
  5775. kICMImageDescriptionPropertyID_StepDuration = FourCharCode('step'); { TimeRecord (base ignored), Read/Write }
  5776. {
  5777. * The clean aperture as a FixedRect in source coordinates, within
  5778. * the rectangle defined by the image description width and height,
  5779. * suitable for use as a source rectangle in a decompression
  5780. * sequence.
  5781. * For historical reasons, the DVCPROHD codecs store the production
  5782. * aperture display dimensions in the image description width and
  5783. * height; the actual encoded dimensions are smaller. For DVCPROHD,
  5784. * the clip rect will be relative to the image description width and
  5785. * height, not the encoded dimensions.
  5786. }
  5787. kICMImageDescriptionPropertyID_CleanApertureClipRect = FourCharCode('cacr'); { FixedRect, Read }
  5788. {
  5789. * A matrix transforming the clean aperture clip rect to the origin,
  5790. * scaled to the clean aperture display dimensions.
  5791. * For historical reasons, the DVCPROHD codecs store the production
  5792. * aperture display dimensions in the image description width and
  5793. * height; the actual encoded dimensions are smaller. For DVCPROHD,
  5794. * the matrix will be relative to the image description width and
  5795. * height, not the encoded dimensions.
  5796. }
  5797. kICMImageDescriptionPropertyID_CleanApertureMatrix = FourCharCode('camx'); { MatrixRecord, Read }
  5798. {
  5799. * A matrix transforming the image to the origin, scaled to the
  5800. * production aperture display dimensions.
  5801. * For historical reasons, the DVCPROHD codecs store the production
  5802. * aperture display dimensions in the image description width and
  5803. * height; the actual encoded dimensions are smaller. For DVCPROHD,
  5804. * the matrix will be relative to the image description width and
  5805. * height, not the encoded dimensions.
  5806. }
  5807. kICMImageDescriptionPropertyID_ProductionApertureMatrix = FourCharCode('pamx'); { MatrixRecord, Read }
  5808. {
  5809. * A localized, human readable string summarizing the image as a
  5810. * CFString, ie: "Apple DV, 720 x 480 (640 x 480), Millions".
  5811. * The elements are: the codec name, the encoded pixels dimensions,
  5812. * then parenthetically the clean aperture mode dimensions, but only
  5813. * if they are different from the encoded pixels dimensions; then the
  5814. * depth.
  5815. * The codec name shall be from the localized decompressor component
  5816. * name string if exactly one decompressor with the correct cType is
  5817. * available; otherwise the string in the image description shall be
  5818. * used. The caller of GetProperty is responsible for releasing this
  5819. * CFString, eg, by calling CFRelease.
  5820. }
  5821. kICMImageDescriptionPropertyID_SummaryString = FourCharCode('isum'); { CFStringRef, Read - caller of GetProperty must call CFRelease}
  5822. {
  5823. * ICMImageDescriptionGetPropertyInfo()
  5824. *
  5825. * Summary:
  5826. * Gets info about a particular property of a ImageDescription.
  5827. *
  5828. * Parameters:
  5829. *
  5830. * inDesc:
  5831. * ImageDescriptionHandle being interrogated
  5832. *
  5833. * inPropClass:
  5834. * The class of property being requested
  5835. *
  5836. * inPropID:
  5837. * The ID of the property being requested
  5838. *
  5839. * outPropType:
  5840. * The type of property is returned here (can be NULL)
  5841. *
  5842. * outPropValueSize:
  5843. * The size of property is returned here (can be NULL)
  5844. *
  5845. * outPropertyFlags:
  5846. * The property flags are returned here (can be NULL)
  5847. *
  5848. * Availability:
  5849. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  5850. * CarbonLib: not available
  5851. * Non-Carbon CFM: not available
  5852. }
  5853. function ICMImageDescriptionGetPropertyInfo( inDesc: ImageDescriptionHandle; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; outPropType: ComponentValueTypePtr { can be NULL }; outPropValueSize: ByteCountPtr { can be NULL }; outPropertyFlags: UInt32Ptr { can be NULL } ): OSStatus; external name '_ICMImageDescriptionGetPropertyInfo';
  5854. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  5855. {
  5856. * ICMImageDescriptionGetProperty()
  5857. *
  5858. * Summary:
  5859. * Gets a particular property of a ImageDescriptionHandle.
  5860. *
  5861. * Parameters:
  5862. *
  5863. * inDesc:
  5864. * ImageDescriptionHandle being interrogated
  5865. *
  5866. * inPropClass:
  5867. * The class of property being requested
  5868. *
  5869. * inPropID:
  5870. * The ID of the property being requested
  5871. *
  5872. * inPropValueSize:
  5873. * The size of the property value buffer
  5874. *
  5875. * outPropValueAddress:
  5876. * Points to the buffer to receive the property value
  5877. *
  5878. * outPropValueSizeUsed:
  5879. * Points to a variable to receive the actual size of returned
  5880. * property value (can be NULL)
  5881. *
  5882. * Availability:
  5883. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  5884. * CarbonLib: not available
  5885. * Non-Carbon CFM: not available
  5886. }
  5887. function ICMImageDescriptionGetProperty( inDesc: ImageDescriptionHandle; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inPropValueSize: ByteCount; outPropValueAddress: ComponentValuePtr; outPropValueSizeUsed: ByteCountPtr { can be NULL } ): OSStatus; external name '_ICMImageDescriptionGetProperty';
  5888. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  5889. {
  5890. * ICMImageDescriptionSetProperty()
  5891. *
  5892. * Summary:
  5893. * Sets a particular property of a ImageDescriptionHandle.
  5894. *
  5895. * Parameters:
  5896. *
  5897. * inDesc:
  5898. * ImageDescriptionHandle being modified
  5899. *
  5900. * inPropClass:
  5901. * The class of property being set
  5902. *
  5903. * inPropID:
  5904. * The ID of the property being set
  5905. *
  5906. * inPropValueSize:
  5907. * The size of property value
  5908. *
  5909. * inPropValueAddress:
  5910. * Points to the property value buffer
  5911. *
  5912. * Availability:
  5913. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  5914. * CarbonLib: not available
  5915. * Non-Carbon CFM: not available
  5916. }
  5917. function ICMImageDescriptionSetProperty( inDesc: ImageDescriptionHandle; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inPropValueSize: ByteCount; inPropValueAddress: ConstComponentValuePtr ): OSStatus; external name '_ICMImageDescriptionSetProperty';
  5918. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  5919. {
  5920. * ICMValidTimeFlags
  5921. *
  5922. * Summary:
  5923. * Flags to describe which time values are valid.
  5924. }
  5925. type
  5926. ICMValidTimeFlagsPtr = ^ICMValidTimeFlags;
  5927. ICMValidTimeFlags = UInt32;
  5928. const
  5929. {
  5930. * Indicates that a display time stamp is valid.
  5931. }
  5932. kICMValidTime_DisplayTimeStampIsValid = 1 shl 0;
  5933. {
  5934. * Indicates that a display duration is valid.
  5935. }
  5936. kICMValidTime_DisplayDurationIsValid = 1 shl 1;
  5937. {
  5938. * Indicates that a decode time stamp is valid.
  5939. }
  5940. kICMValidTime_DecodeTimeStampIsValid = 1 shl 2;
  5941. {
  5942. * Indicates that a decode duration is valid.
  5943. }
  5944. kICMValidTime_DecodeDurationIsValid = 1 shl 3;
  5945. {
  5946. * Indicates that a display offset (the offset from a decode time
  5947. * stamp to a display time stamp) is valid.
  5948. }
  5949. kICMValidTime_DisplayOffsetIsValid = 1 shl 4;
  5950. {
  5951. * ICMDecompressionSessionRef
  5952. *
  5953. * Summary:
  5954. * Represents a decompression session that emits CVPixelBufferRefs
  5955. * containing frames, tagged with display times.
  5956. *
  5957. * Discussion:
  5958. * ICMDecompressionSession does not support source extraction,
  5959. * matrix transformations, graphics transfer modes, region-based
  5960. * clipping or data-loading procedures. Note that the pixel buffers
  5961. * may be output out of display order, provided that the client opts
  5962. * in.
  5963. }
  5964. type
  5965. ICMDecompressionSessionRef = ^OpaqueICMDecompressionSession; { an opaque type }
  5966. OpaqueICMDecompressionSession = record end;
  5967. {
  5968. * QTVisualContextRef
  5969. *
  5970. * Summary:
  5971. * Represents a destination visual rendering environment.
  5972. *
  5973. * Discussion:
  5974. * The QTVisualContextRef type encapsulates a connection to a
  5975. * generic visual destination. A single visual context object may
  5976. * not be associated with more than one movie at a time.
  5977. }
  5978. type
  5979. QTVisualContextRef = ^OpaqueQTVisualContext; { an opaque type }
  5980. OpaqueQTVisualContext = record end;
  5981. {
  5982. * ICMDecompressionSessionOptionsRef
  5983. *
  5984. * Summary:
  5985. * Holds options for a decompression session.
  5986. }
  5987. type
  5988. ICMDecompressionSessionOptionsRef = ^OpaqueICMDecompressionSessionOptions; { an opaque type }
  5989. OpaqueICMDecompressionSessionOptions = record end;
  5990. {
  5991. * ICMDecompressionFrameOptionsRef
  5992. *
  5993. * Summary:
  5994. * Holds options for decompressing an individual frame.
  5995. }
  5996. type
  5997. ICMDecompressionFrameOptionsRef = ^OpaqueICMDecompressionFrameOptions; { an opaque type }
  5998. OpaqueICMDecompressionFrameOptions = record end;
  5999. {
  6000. * ICMDecompressionTrackingFlags
  6001. *
  6002. * Summary:
  6003. * Describes changes in state of a frame queued with an ICM
  6004. * decompression session.
  6005. }
  6006. type
  6007. ICMDecompressionTrackingFlags = UInt32;
  6008. const
  6009. {
  6010. * Indicates that this is the last call for this sourceFrameRefCon.
  6011. }
  6012. kICMDecompressionTracking_LastCall = 1 shl 0;
  6013. {
  6014. * Indicates that the session no longer needs the source data pointer.
  6015. }
  6016. kICMDecompressionTracking_ReleaseSourceData = 1 shl 1;
  6017. {
  6018. * Indicates that a frame is being emitted. The pixelBuffer parameter
  6019. * contains the decompressed frame. If the decompression session is
  6020. * targetting a visual context, the frame has not yet been sent to
  6021. * the visual context but will be after the callback returns.
  6022. }
  6023. kICMDecompressionTracking_EmittingFrame = 1 shl 2;
  6024. {
  6025. * Indicates that this frame was decoded.
  6026. }
  6027. kICMDecompressionTracking_FrameDecoded = 1 shl 3;
  6028. {
  6029. * Indicates that the codec decided to drop this frame.
  6030. }
  6031. kICMDecompressionTracking_FrameDropped = 1 shl 4;
  6032. {
  6033. * Indicates that this frame will not be able to be displayed unless
  6034. * it is queued for redecode (also known as FrameNotDisplayable).
  6035. }
  6036. kICMDecompressionTracking_FrameNeedsRequeueing = 1 shl 5;
  6037. {
  6038. * ICMDecompressionTrackingCallback
  6039. *
  6040. * Summary:
  6041. * The callback through which a client of an ICM decompression
  6042. * session receives decoded frames and information about decoding.
  6043. *
  6044. * Discussion:
  6045. * The client may retain the emitted pixel buffers as long as it
  6046. * needs; they will not be reused before the client releases them.
  6047. *
  6048. * Parameters:
  6049. *
  6050. * decompressionTrackingRefCon:
  6051. * The callback's reference value, copied from the
  6052. * decompressionTrackingRefCon field of the
  6053. * ICMDecompressionTrackingCallbackRecord structure.
  6054. *
  6055. * result:
  6056. * Indicates whether there was an error in decompression.
  6057. *
  6058. * decompressionTrackingFlags:
  6059. * One or more flags describing the a frame's state transitions.
  6060. *
  6061. * pixelBuffer:
  6062. * When the kICMDecompressionTracking_EmittingFrame flag is set in
  6063. * decompressionTrackingFlags, a pixel buffer containing the
  6064. * decompressed frame. Otherwise, NULL.
  6065. *
  6066. * displayTime:
  6067. * If kICMValidTime_DisplayTimeStampIsValid is set in
  6068. * validTimeFlags, the display time of the frame.
  6069. *
  6070. * displayDuration:
  6071. * If kICMValidTime_DisplayDurationIsValid is set in
  6072. * validTimeFlags, the display duration of the frame.
  6073. *
  6074. * validTimeFlags:
  6075. * Indicates which of displayTime and displayDuration is valid.
  6076. *
  6077. * reserved:
  6078. * Reserved for future use. Ignore the value of this parameter.
  6079. *
  6080. * sourceFrameRefCon:
  6081. * The frame's reference value, copied from the sourceFrameRefCon
  6082. * parameter to ICMDecompressionSessionDecodeFrame.
  6083. }
  6084. type
  6085. ICMDecompressionTrackingCallback = procedure( decompressionTrackingRefCon: UnivPtr; result: OSStatus; decompressionTrackingFlags: ICMDecompressionTrackingFlags; pixelBuffer: CVPixelBufferRef; displayTime: TimeValue64; displayDuration: TimeValue64; validTimeFlags: ICMValidTimeFlags; reserved: UnivPtr; sourceFrameRefCon: UnivPtr );
  6086. {
  6087. * ICMDecompressionTrackingCallbackRecord
  6088. *
  6089. * Summary:
  6090. * A tracking callback for an ICM decompression session.
  6091. }
  6092. type
  6093. ICMDecompressionTrackingCallbackRecordPtr = ^ICMDecompressionTrackingCallbackRecord;
  6094. ICMDecompressionTrackingCallbackRecord = record
  6095. {
  6096. * The callback function pointer.
  6097. }
  6098. decompressionTrackingCallback: ICMDecompressionTrackingCallback;
  6099. {
  6100. * The callback's reference value.
  6101. }
  6102. decompressionTrackingRefCon: UnivPtr;
  6103. end;
  6104. {
  6105. * ICMDecompressionSessionCreate()
  6106. *
  6107. * Summary:
  6108. * Creates a session for decompressing video frames.
  6109. *
  6110. * Discussion:
  6111. * Frames will be output through calls to trackingCallback.
  6112. *
  6113. * Parameters:
  6114. *
  6115. * allocator:
  6116. * An allocator for the session. Pass NULL to use the default
  6117. * allocator.
  6118. *
  6119. * desc:
  6120. * An image description for the source frames.
  6121. *
  6122. * decompressionOptions:
  6123. * Options for the session. The session will retain this options
  6124. * object. You may change some options during the session by
  6125. * modifying the object.
  6126. *
  6127. * destinationPixelBufferAttributes:
  6128. * Describes requirements for emitted pixel buffers.
  6129. *
  6130. * trackingCallback:
  6131. * The callback to be called with information about queued frames,
  6132. * and pixel buffers containing the decompressed frames.
  6133. *
  6134. * decompressionSessionOut:
  6135. * Points to a variable to receive the new decompression session.
  6136. *
  6137. * Availability:
  6138. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6139. * CarbonLib: not available
  6140. * Non-Carbon CFM: not available
  6141. }
  6142. function ICMDecompressionSessionCreate( allocator: CFAllocatorRef { can be NULL }; desc: ImageDescriptionHandle; decompressionOptions: ICMDecompressionSessionOptionsRef { can be NULL }; destinationPixelBufferAttributes: CFDictionaryRef { can be NULL }; var trackingCallback: ICMDecompressionTrackingCallbackRecord; var decompressionSessionOut: ICMDecompressionSessionRef ): OSStatus; external name '_ICMDecompressionSessionCreate';
  6143. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6144. {
  6145. * ICMDecompressionSessionCreateForVisualContext()
  6146. *
  6147. * Summary:
  6148. * Creates a session for decompressing video frames.
  6149. *
  6150. * Discussion:
  6151. * Frames will be output to a visual context. If desired, the
  6152. * trackingCallback may attach additional data to pixel buffers
  6153. * before they are sent to the visual context.
  6154. *
  6155. * Parameters:
  6156. *
  6157. * allocator:
  6158. * An allocator for the session. Pass NULL to use the default
  6159. * allocator.
  6160. *
  6161. * desc:
  6162. * An image description for the source frames.
  6163. *
  6164. * decompressionOptions:
  6165. * Options for the session. The session will retain this options
  6166. * object. You may change some options during the session by
  6167. * modifying the object.
  6168. *
  6169. * visualContext:
  6170. * The target visual context.
  6171. *
  6172. * trackingCallback:
  6173. * The callback to be called with information about queued frames,
  6174. * and pixel buffers containing the decompressed frames.
  6175. *
  6176. * decompressionSessionOut:
  6177. * Points to a variable to receive the new decompression session.
  6178. *
  6179. * Availability:
  6180. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6181. * CarbonLib: not available
  6182. * Non-Carbon CFM: not available
  6183. }
  6184. function ICMDecompressionSessionCreateForVisualContext( allocator: CFAllocatorRef { can be NULL }; desc: ImageDescriptionHandle; decompressionOptions: ICMDecompressionSessionOptionsRef { can be NULL }; visualContext: QTVisualContextRef; var trackingCallback: ICMDecompressionTrackingCallbackRecord; var decompressionSessionOut: ICMDecompressionSessionRef ): OSStatus; external name '_ICMDecompressionSessionCreateForVisualContext';
  6185. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6186. {
  6187. * ICMDecompressionSessionRetain()
  6188. *
  6189. * Summary:
  6190. * Increments the retain count of a decompression session.
  6191. *
  6192. * Discussion:
  6193. * If you pass NULL to this function, nothing happens.
  6194. *
  6195. * Availability:
  6196. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6197. * CarbonLib: not available
  6198. * Non-Carbon CFM: not available
  6199. }
  6200. function ICMDecompressionSessionRetain( session: ICMDecompressionSessionRef ): ICMDecompressionSessionRef; external name '_ICMDecompressionSessionRetain';
  6201. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6202. {
  6203. * ICMDecompressionSessionRelease()
  6204. *
  6205. * Summary:
  6206. * Decrements the retain count of a decompression session. If it
  6207. * drops to zero, the session is disposed.
  6208. *
  6209. * Discussion:
  6210. * If you pass NULL to this function, nothing happens.
  6211. *
  6212. * Availability:
  6213. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6214. * CarbonLib: not available
  6215. * Non-Carbon CFM: not available
  6216. }
  6217. procedure ICMDecompressionSessionRelease( session: ICMDecompressionSessionRef ); external name '_ICMDecompressionSessionRelease';
  6218. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6219. {
  6220. * ICMDecompressionSessionGetTypeID()
  6221. *
  6222. * Summary:
  6223. * Returns the CFTypeID for decompression sessions.
  6224. *
  6225. * Availability:
  6226. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6227. * CarbonLib: not available
  6228. * Non-Carbon CFM: not available
  6229. }
  6230. function ICMDecompressionSessionGetTypeID: CFTypeID; external name '_ICMDecompressionSessionGetTypeID';
  6231. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6232. {
  6233. * ICMDecompressionSessionDecodeFrame()
  6234. *
  6235. * Summary:
  6236. * Queues a frame for decompression.
  6237. *
  6238. * Parameters:
  6239. *
  6240. * session:
  6241. * The decompression session.
  6242. *
  6243. * data:
  6244. * Points to the compressed data for this frame. The data must
  6245. * remain in this location until the tracking callback is called
  6246. * with the kICMDecompressionTracking_ReleaseSourceData flag set
  6247. * in decompressionTrackingFlags.
  6248. *
  6249. * dataSize:
  6250. * The number of bytes of compressed data. You may not pass zero
  6251. * in this parameter.
  6252. *
  6253. * frameOptions:
  6254. * Options for this frame.
  6255. *
  6256. * frameTime:
  6257. * Points to a structure describing the frame's timing information.
  6258. *
  6259. * sourceFrameRefCon:
  6260. * Your reference value for the frame.
  6261. *
  6262. * Availability:
  6263. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6264. * CarbonLib: not available
  6265. * Non-Carbon CFM: not available
  6266. }
  6267. function ICMDecompressionSessionDecodeFrame( session: ICMDecompressionSessionRef; data: {const} UnivPtr; dataSize: ByteCount; frameOptions: ICMDecompressionFrameOptionsRef { can be NULL }; const (*var*) frameTime: ICMFrameTimeRecord; sourceFrameRefCon: UnivPtr ): OSStatus; external name '_ICMDecompressionSessionDecodeFrame';
  6268. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6269. {
  6270. * ICMDecompressionSessionGetPropertyInfo()
  6271. *
  6272. * Summary:
  6273. * Retrieves information about properties of a decompression session.
  6274. *
  6275. * Availability:
  6276. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6277. * CarbonLib: not available
  6278. * Non-Carbon CFM: not available
  6279. }
  6280. function ICMDecompressionSessionGetPropertyInfo( session: ICMDecompressionSessionRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; outPropType: ComponentValueTypePtr { can be NULL }; outPropValueSize: ByteCountPtr { can be NULL }; outPropertyFlags: UInt32Ptr { can be NULL } ): OSStatus; external name '_ICMDecompressionSessionGetPropertyInfo';
  6281. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6282. {
  6283. * ICMDecompressionSessionGetProperty()
  6284. *
  6285. * Summary:
  6286. * Retrieves the value of a specific property of a decompression
  6287. * session.
  6288. *
  6289. * Availability:
  6290. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6291. * CarbonLib: not available
  6292. * Non-Carbon CFM: not available
  6293. }
  6294. function ICMDecompressionSessionGetProperty( session: ICMDecompressionSessionRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inPropValueSize: ByteCount; outPropValueAddress: ComponentValuePtr; outPropValueSizeUsed: ByteCountPtr { can be NULL } ): OSStatus; external name '_ICMDecompressionSessionGetProperty';
  6295. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6296. {
  6297. * ICMDecompressionSessionSetProperty()
  6298. *
  6299. * Summary:
  6300. * Sets the value of a specific property of a decompression session.
  6301. *
  6302. * Availability:
  6303. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6304. * CarbonLib: not available
  6305. * Non-Carbon CFM: not available
  6306. }
  6307. function ICMDecompressionSessionSetProperty( session: ICMDecompressionSessionRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inPropValueSize: ByteCount; inPropValueAddress: ConstComponentValuePtr ): OSStatus; external name '_ICMDecompressionSessionSetProperty';
  6308. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6309. {
  6310. * ICMNonScheduledDisplayTime
  6311. *
  6312. * Discussion:
  6313. * The display time for a decompression session.
  6314. }
  6315. type
  6316. ICMNonScheduledDisplayTime = record
  6317. {
  6318. * A display time. Usually this is the display time of a
  6319. * non-scheduled queued frame.
  6320. }
  6321. displayTime: TimeValue64;
  6322. {
  6323. * The timescale according to which displayTime should be interpreted.
  6324. }
  6325. displayTimeScale: TimeScale;
  6326. {
  6327. * Reserved, set to zero.
  6328. }
  6329. flags: UInt32;
  6330. end;
  6331. {
  6332. * Summary:
  6333. * Properties of decompression sessions.
  6334. }
  6335. const
  6336. {
  6337. * Class identifier for decompression session properties.
  6338. }
  6339. kQTPropertyClass_ICMDecompressionSession = FourCharCode('icds');
  6340. {
  6341. * The non-scheduled display time for a decompression session.
  6342. * Setting this requests display of the non-scheduled queued frame at
  6343. * that display time, if there is one.
  6344. * See ICMDecompressionSessionSetNonScheduledDisplayTime.
  6345. }
  6346. kICMDecompressionSessionPropertyID_NonScheduledDisplayTime = FourCharCode('nsti'); { ICMNonScheduledDisplayTime, Read/Write }
  6347. {
  6348. * The direction for non-scheduled display time.
  6349. * See ICMDecompressionSessionSetNonScheduledDisplayDirection.
  6350. }
  6351. kICMDecompressionSessionPropertyID_NonScheduledDisplayDirection = FourCharCode('nsdu'); { Fixed, Read/Write }
  6352. {
  6353. * The pixel buffer pool from which emitted pixel buffers are
  6354. * allocated. Getting this does not change the retain count of the
  6355. * pool.
  6356. }
  6357. kICMDecompressionSessionPropertyID_PixelBufferPool = FourCharCode('pool'); { CVPixelBufferPoolRef, Read }
  6358. {
  6359. * Indicates whether the a common pixel buffer pool is shared between
  6360. * the decompressor and the session client. This is false if separate
  6361. * pools are used because the decompressor's and the client's pixel
  6362. * buffer attributes were incompatible.
  6363. }
  6364. kICMDecompressionSessionPropertyID_PixelBufferPoolIsShared = FourCharCode('plsh'); { Boolean, Read }
  6365. {
  6366. * ICMDecompressionSessionSetNonScheduledDisplayTime()
  6367. *
  6368. * Summary:
  6369. * Sets the display time for a decompression session, and requests
  6370. * display of the non-scheduled queued frame at that display time,
  6371. * if there is one.
  6372. *
  6373. * Discussion:
  6374. * Call ICMDecompressionSessionSetNonScheduledDisplayTime after
  6375. * queueing non-scheduled frames with
  6376. * ICMDecompressionSessionDecodeFrame with the
  6377. * icmFrameTimeIsNonScheduledDisplayTime flag set to request display
  6378. * of the frame at a particular display time.
  6379. * If there is no queued non-scheduled frame with this display time,
  6380. * the frame with the next earlier display time is displayed. (Which
  6381. * of two display times is earlier is determined using the
  6382. * non-scheduled display time direction, which you can set with
  6383. * ICMDecompressionSessionSetNonScheduledDisplayDirection.) If there
  6384. * is no such frame, nothing happens.
  6385. * This has no effect if frames are scheduled against a timebase.
  6386. *
  6387. * Parameters:
  6388. *
  6389. * session:
  6390. * The decompression session.
  6391. *
  6392. * displayTime:
  6393. * A display time. Usually this is the display time of a
  6394. * non-scheduled queued frame.
  6395. *
  6396. * displayTimeScale:
  6397. * The timescale according to which displayTime should be
  6398. * interpreted.
  6399. *
  6400. * flags:
  6401. * Reserved, set to zero.
  6402. *
  6403. * Availability:
  6404. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6405. * CarbonLib: not available
  6406. * Non-Carbon CFM: not available
  6407. }
  6408. function ICMDecompressionSessionSetNonScheduledDisplayTime( session: ICMDecompressionSessionRef; displayTime: TimeValue64; displayTimeScale: TimeScale; flags: UInt32 ): OSStatus; external name '_ICMDecompressionSessionSetNonScheduledDisplayTime';
  6409. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6410. {
  6411. * ICMDecompressionSessionSetNonScheduledDisplayDirection()
  6412. *
  6413. * Summary:
  6414. * Sets the direction for non-scheduled display time.
  6415. *
  6416. * Discussion:
  6417. * If rate is zero or positive, direction is forwards. If negative,
  6418. * direction is backwards.
  6419. * Any frames queued under the opposite direction will be flushed.
  6420. *
  6421. * The non-scheduled display direction defaults to forwards (rate
  6422. * 1.0).
  6423. *
  6424. * Parameters:
  6425. *
  6426. * session:
  6427. * The decompression session.
  6428. *
  6429. * rate:
  6430. * Indicates the direction.
  6431. *
  6432. * Availability:
  6433. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6434. * CarbonLib: not available
  6435. * Non-Carbon CFM: not available
  6436. }
  6437. function ICMDecompressionSessionSetNonScheduledDisplayDirection( session: ICMDecompressionSessionRef; rate: Fixed ): OSStatus; external name '_ICMDecompressionSessionSetNonScheduledDisplayDirection';
  6438. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6439. {
  6440. * ICMDecompressionSessionFlush()
  6441. *
  6442. * Summary:
  6443. * Flushes frames queued with a decompression session.
  6444. *
  6445. * Discussion:
  6446. * The tracking callback will be called for each frame with the
  6447. * result -1.
  6448. *
  6449. * Parameters:
  6450. *
  6451. * session:
  6452. * The decompression session.
  6453. *
  6454. * Availability:
  6455. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6456. * CarbonLib: not available
  6457. * Non-Carbon CFM: not available
  6458. }
  6459. function ICMDecompressionSessionFlush( session: ICMDecompressionSessionRef ): OSStatus; external name '_ICMDecompressionSessionFlush';
  6460. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6461. {
  6462. * ICMDecompressionSessionOptionsCreate()
  6463. *
  6464. * Summary:
  6465. * Creates a decompression session options object.
  6466. *
  6467. * Availability:
  6468. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6469. * CarbonLib: not available
  6470. * Non-Carbon CFM: not available
  6471. }
  6472. function ICMDecompressionSessionOptionsCreate( allocator: CFAllocatorRef { can be NULL }; var options: ICMDecompressionSessionOptionsRef ): OSStatus; external name '_ICMDecompressionSessionOptionsCreate';
  6473. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6474. {
  6475. * ICMDecompressionSessionOptionsCreateCopy()
  6476. *
  6477. * Summary:
  6478. * Copies a decompression session options object.
  6479. *
  6480. * Availability:
  6481. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6482. * CarbonLib: not available
  6483. * Non-Carbon CFM: not available
  6484. }
  6485. function ICMDecompressionSessionOptionsCreateCopy( allocator: CFAllocatorRef { can be NULL }; originalOptions: ICMDecompressionSessionOptionsRef; var copiedOptions: ICMDecompressionSessionOptionsRef ): OSStatus; external name '_ICMDecompressionSessionOptionsCreateCopy';
  6486. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6487. {
  6488. * ICMDecompressionSessionOptionsRetain()
  6489. *
  6490. * Summary:
  6491. * Increments the retain count of a decompression session options
  6492. * object.
  6493. *
  6494. * Discussion:
  6495. * If you pass NULL to this function, nothing happens.
  6496. *
  6497. * Availability:
  6498. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6499. * CarbonLib: not available
  6500. * Non-Carbon CFM: not available
  6501. }
  6502. function ICMDecompressionSessionOptionsRetain( options: ICMDecompressionSessionOptionsRef ): ICMDecompressionSessionOptionsRef; external name '_ICMDecompressionSessionOptionsRetain';
  6503. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6504. {
  6505. * ICMDecompressionSessionOptionsRelease()
  6506. *
  6507. * Summary:
  6508. * Decrements the retain count of a decompression session options
  6509. * object. If it drops to zero, the object is disposed.
  6510. *
  6511. * Discussion:
  6512. * If you pass NULL to this function, nothing happens.
  6513. *
  6514. * Availability:
  6515. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6516. * CarbonLib: not available
  6517. * Non-Carbon CFM: not available
  6518. }
  6519. procedure ICMDecompressionSessionOptionsRelease( options: ICMDecompressionSessionOptionsRef ); external name '_ICMDecompressionSessionOptionsRelease';
  6520. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6521. {
  6522. * ICMDecompressionSessionOptionsGetTypeID()
  6523. *
  6524. * Summary:
  6525. * Returns the CFTypeID for decompression session options objects.
  6526. *
  6527. * Availability:
  6528. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6529. * CarbonLib: not available
  6530. * Non-Carbon CFM: not available
  6531. }
  6532. function ICMDecompressionSessionOptionsGetTypeID: CFTypeID; external name '_ICMDecompressionSessionOptionsGetTypeID';
  6533. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6534. {
  6535. * ICMDecompressionSessionOptionsGetPropertyInfo()
  6536. *
  6537. * Summary:
  6538. * Retrieves information about properties of a decompression session
  6539. * options object.
  6540. *
  6541. * Availability:
  6542. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6543. * CarbonLib: not available
  6544. * Non-Carbon CFM: not available
  6545. }
  6546. function ICMDecompressionSessionOptionsGetPropertyInfo( options: ICMDecompressionSessionOptionsRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; outPropType: ComponentValueTypePtr { can be NULL }; outPropValueSize: ByteCountPtr { can be NULL }; outPropertyFlags: UInt32Ptr { can be NULL } ): OSStatus; external name '_ICMDecompressionSessionOptionsGetPropertyInfo';
  6547. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6548. {
  6549. * ICMDecompressionSessionOptionsGetProperty()
  6550. *
  6551. * Summary:
  6552. * Retrieves the value of a specific property of a decompression
  6553. * session options object.
  6554. *
  6555. * Availability:
  6556. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6557. * CarbonLib: not available
  6558. * Non-Carbon CFM: not available
  6559. }
  6560. function ICMDecompressionSessionOptionsGetProperty( options: ICMDecompressionSessionOptionsRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inPropValueSize: ByteCount; outPropValueAddress: ComponentValuePtr; outPropValueSizeUsed: ByteCountPtr { can be NULL } ): OSStatus; external name '_ICMDecompressionSessionOptionsGetProperty';
  6561. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6562. {
  6563. * ICMDecompressionSessionOptionsSetProperty()
  6564. *
  6565. * Summary:
  6566. * Sets the value of a specific property of a decompression session
  6567. * options object.
  6568. *
  6569. * Availability:
  6570. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6571. * CarbonLib: not available
  6572. * Non-Carbon CFM: not available
  6573. }
  6574. function ICMDecompressionSessionOptionsSetProperty( options: ICMDecompressionSessionOptionsRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inPropValueSize: ByteCount; inPropValueAddress: ConstComponentValuePtr ): OSStatus; external name '_ICMDecompressionSessionOptionsSetProperty';
  6575. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6576. {
  6577. * Summary:
  6578. * Properties of decompression session options objects.
  6579. }
  6580. const
  6581. {
  6582. * Class identifier for decompression session options object
  6583. * properties.
  6584. }
  6585. kQTPropertyClass_ICMDecompressionSessionOptions = FourCharCode('idso');
  6586. {
  6587. * By default, this is true, meaning that frames must be output in
  6588. * display order. Set this to false to allow frames to be output in
  6589. * decode order rather than in display order.
  6590. }
  6591. kICMDecompressionSessionOptionsPropertyID_DisplayOrderRequired = FourCharCode('dorq'); { Boolean, Read/Write }
  6592. {
  6593. * A specific decompressor component or component instance to be
  6594. * used, or one of the wildcards anyCodec, bestSpeedCodec,
  6595. * bestFidelityCodec, or bestCompressionCodec.
  6596. * By default, this is anyCodec.
  6597. }
  6598. kICMDecompressionSessionOptionsPropertyID_DecompressorComponent = FourCharCode('imdc'); { DecompressorComponent, Read/Write }
  6599. {
  6600. * The decompression accuracy.
  6601. * The default accuracy is codecNormalQuality.
  6602. }
  6603. kICMDecompressionSessionOptionsPropertyID_Accuracy = FourCharCode('acur'); { CodecQ, Read/Write }
  6604. {
  6605. * Requests special handling of fields. Not all codecs will obey this
  6606. * request; some codecs will only handle it at certain accuracy
  6607. * levels. Ignored for non-interlaced content.
  6608. }
  6609. kICMDecompressionSessionOptionsPropertyID_FieldMode = FourCharCode('fiel'); { ICMFieldMode, Read/Write }
  6610. {
  6611. * The maximum number of buffers ahead of the current time that
  6612. * should be decompressed. Used in sessions that target visual
  6613. * contexts. By default, the number of buffers will be determined
  6614. * from the visual context.
  6615. }
  6616. kICMDecompressionSessionOptionsPropertyID_MaxBufferCount = FourCharCode('m#bf'); { UInt32, Read/Write }
  6617. {
  6618. * The minimum time ahead of the current time that frames should be
  6619. * decompressed. Used in sessions that target visual contexts. By
  6620. * default, the output-ahead time will be determined from the visual
  6621. * context.
  6622. }
  6623. kICMDecompressionSessionOptionsPropertyID_OutputAheadTime = FourCharCode('futu'); { TimeRecord, Read/Write }
  6624. {
  6625. * You can set the aperture mode property on a decompression session
  6626. * options object to indicate whether pixel buffers should be tagged
  6627. * to enable aspect ratio and clean aperture correction. The default
  6628. * aperture mode for a decompression session is clean aperture mode.
  6629. }
  6630. kICMDecompressionSessionOptionsPropertyID_ApertureMode = FourCharCode('apmd'); { OSType, Read/Write }
  6631. {
  6632. * ICMFieldMode
  6633. *
  6634. * Summary:
  6635. * Describes special field handling.
  6636. }
  6637. type
  6638. ICMFieldMode = UInt32;
  6639. const
  6640. {
  6641. * Both fields should be decompressed.
  6642. }
  6643. kICMFieldMode_BothFields = 0;
  6644. {
  6645. * Only the top field should be decompressed, producing a half-height
  6646. * image.
  6647. }
  6648. kICMFieldMode_TopFieldOnly = 1;
  6649. {
  6650. * Only the bottom field should be decompressed, producing a
  6651. * half-height image.
  6652. }
  6653. kICMFieldMode_BottomFieldOnly = 2;
  6654. {
  6655. * Both fields should be decompressed, and then filtered to reduce
  6656. * interlacing artifacts.
  6657. }
  6658. kICMFieldMode_DeinterlaceFields = 3;
  6659. {
  6660. * ICMDecompressionFrameOptionsCreate()
  6661. *
  6662. * Summary:
  6663. * Creates a frame decompression options object.
  6664. *
  6665. * Availability:
  6666. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6667. * CarbonLib: not available
  6668. * Non-Carbon CFM: not available
  6669. }
  6670. function ICMDecompressionFrameOptionsCreate( allocator: CFAllocatorRef { can be NULL }; var options: ICMDecompressionFrameOptionsRef ): OSStatus; external name '_ICMDecompressionFrameOptionsCreate';
  6671. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6672. {
  6673. * ICMDecompressionFrameOptionsCreateCopy()
  6674. *
  6675. * Summary:
  6676. * Copies a frame decompression options object.
  6677. *
  6678. * Availability:
  6679. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6680. * CarbonLib: not available
  6681. * Non-Carbon CFM: not available
  6682. }
  6683. function ICMDecompressionFrameOptionsCreateCopy( allocator: CFAllocatorRef { can be NULL }; originalOptions: ICMDecompressionFrameOptionsRef; var copiedOptions: ICMDecompressionFrameOptionsRef ): OSStatus; external name '_ICMDecompressionFrameOptionsCreateCopy';
  6684. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6685. {
  6686. * ICMDecompressionFrameOptionsRetain()
  6687. *
  6688. * Summary:
  6689. * Increments the retain count of a frame decompression options
  6690. * object.
  6691. *
  6692. * Discussion:
  6693. * If you pass NULL to this function, nothing happens.
  6694. *
  6695. * Availability:
  6696. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6697. * CarbonLib: not available
  6698. * Non-Carbon CFM: not available
  6699. }
  6700. function ICMDecompressionFrameOptionsRetain( options: ICMDecompressionFrameOptionsRef ): ICMDecompressionFrameOptionsRef; external name '_ICMDecompressionFrameOptionsRetain';
  6701. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6702. {
  6703. * ICMDecompressionFrameOptionsRelease()
  6704. *
  6705. * Summary:
  6706. * Decrements the retain count of a frame decompression options
  6707. * object. If it drops to zero, the object is disposed.
  6708. *
  6709. * Discussion:
  6710. * If you pass NULL to this function, nothing happens.
  6711. *
  6712. * Availability:
  6713. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6714. * CarbonLib: not available
  6715. * Non-Carbon CFM: not available
  6716. }
  6717. procedure ICMDecompressionFrameOptionsRelease( options: ICMDecompressionFrameOptionsRef ); external name '_ICMDecompressionFrameOptionsRelease';
  6718. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6719. {
  6720. * ICMDecompressionFrameOptionsGetTypeID()
  6721. *
  6722. * Summary:
  6723. * Returns the CFTypeID for frame decompression options objects.
  6724. *
  6725. * Availability:
  6726. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6727. * CarbonLib: not available
  6728. * Non-Carbon CFM: not available
  6729. }
  6730. function ICMDecompressionFrameOptionsGetTypeID: CFTypeID; external name '_ICMDecompressionFrameOptionsGetTypeID';
  6731. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6732. {
  6733. * ICMDecompressionFrameOptionsGetPropertyInfo()
  6734. *
  6735. * Summary:
  6736. * Retrieves information about properties of a decompression frame
  6737. * options object.
  6738. *
  6739. * Availability:
  6740. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6741. * CarbonLib: not available
  6742. * Non-Carbon CFM: not available
  6743. }
  6744. function ICMDecompressionFrameOptionsGetPropertyInfo( options: ICMDecompressionFrameOptionsRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; outPropType: ComponentValueTypePtr { can be NULL }; outPropValueSize: ByteCountPtr { can be NULL }; outPropertyFlags: UInt32Ptr { can be NULL } ): OSStatus; external name '_ICMDecompressionFrameOptionsGetPropertyInfo';
  6745. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6746. {
  6747. * ICMDecompressionFrameOptionsGetProperty()
  6748. *
  6749. * Summary:
  6750. * Retrieves the value of a specific property of a decompression
  6751. * frame options object.
  6752. *
  6753. * Availability:
  6754. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6755. * CarbonLib: not available
  6756. * Non-Carbon CFM: not available
  6757. }
  6758. function ICMDecompressionFrameOptionsGetProperty( options: ICMDecompressionFrameOptionsRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inPropValueSize: ByteCount; outPropValueAddress: ComponentValuePtr; outPropValueSizeUsed: ByteCountPtr { can be NULL } ): OSStatus; external name '_ICMDecompressionFrameOptionsGetProperty';
  6759. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6760. {
  6761. * ICMDecompressionFrameOptionsSetProperty()
  6762. *
  6763. * Summary:
  6764. * Sets the value of a specific property of a decompression frame
  6765. * options object.
  6766. *
  6767. * Availability:
  6768. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  6769. * CarbonLib: not available
  6770. * Non-Carbon CFM: not available
  6771. }
  6772. function ICMDecompressionFrameOptionsSetProperty( options: ICMDecompressionFrameOptionsRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inPropValueSize: ByteCount; inPropValueAddress: ConstComponentValuePtr ): OSStatus; external name '_ICMDecompressionFrameOptionsSetProperty';
  6773. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  6774. {
  6775. * Summary:
  6776. * Properties of decompression frame options objects.
  6777. }
  6778. const
  6779. {
  6780. * Class identifier for decompression frame options object properties.
  6781. }
  6782. kQTPropertyClass_ICMDecompressionFrameOptions = FourCharCode('idfo');
  6783. {
  6784. * A specific pixel buffer that the frame should be decompressed
  6785. * into. Setting this circumvents the pixel buffer pool mechanism. If
  6786. * this buffer is not compatible with the codec's pixel buffer
  6787. * requirements, decompression will fail.
  6788. }
  6789. kICMDecompressionFrameOptionsPropertyID_DestinationPixelBuffer = FourCharCode('cvpb'); { CVPixelBufferRef, Read/Write }
  6790. {
  6791. * ICMCompressionSessionRef
  6792. *
  6793. * Summary:
  6794. * Represents a compression session for a sequence of images.
  6795. * B-frame capable.
  6796. }
  6797. type
  6798. ICMCompressionSessionRef = ^OpaqueICMCompressionSession; { an opaque type }
  6799. OpaqueICMCompressionSession = record end;
  6800. {
  6801. * ICMEncodedFrameRef
  6802. *
  6803. * Summary:
  6804. * Represents a frame encoded by a compressor component and emitted
  6805. * by a compression session.
  6806. *
  6807. * Discussion:
  6808. * Compressor components have access to the mutable flavor of
  6809. * encoded frame object (ICMMutableEncodedFrameRef); compression
  6810. * session clients receive the read-only flavor
  6811. * (ICMMutableEncodedFrameRef).
  6812. }
  6813. type
  6814. ICMEncodedFrameRef = ^OpaqueICMEncodedFrame; { an opaque type }
  6815. OpaqueICMEncodedFrame = record end;
  6816. ICMEncodedFrameRefPtr = ^ICMEncodedFrameRef;
  6817. ICMMutableEncodedFrameRef = ^OpaqueICMMutableEncodedFrameRef; { an opaque type }
  6818. OpaqueICMMutableEncodedFrameRef = record end;
  6819. ICMMutableEncodedFrameRefPtr = ^ICMMutableEncodedFrameRef;
  6820. {
  6821. * ICMCompressionSessionOptionsRef
  6822. *
  6823. * Summary:
  6824. * An opaque struct which holds options to configure a compression
  6825. * session.
  6826. }
  6827. type
  6828. ICMCompressionSessionOptionsRef = ^OpaqueICMCompressionSessionOptions; { an opaque type }
  6829. OpaqueICMCompressionSessionOptions = record end;
  6830. {
  6831. * ICMCompressionFrameOptionsRef
  6832. *
  6833. * Summary:
  6834. * A token which holds options to configure an individual frame
  6835. * during a compression session.
  6836. }
  6837. type
  6838. ICMCompressionFrameOptionsRef = ^OpaqueICMCompressionFrameOptions; { an opaque type }
  6839. OpaqueICMCompressionFrameOptions = record end;
  6840. {
  6841. * ICMMultiPassStorageRef
  6842. *
  6843. * Summary:
  6844. * A mechanism for storing information for each frame of a multipass
  6845. * compression session.
  6846. *
  6847. * Discussion:
  6848. * The ICM provides default storage mechanisms using temporary
  6849. * files, but clients may override this with custom mechanisms.
  6850. }
  6851. type
  6852. ICMMultiPassStorageRef = ^OpaqueICMMultiPassStorage; { an opaque type }
  6853. OpaqueICMMultiPassStorage = record end;
  6854. {
  6855. * ICMEncodedFrameOutputCallback
  6856. *
  6857. * Summary:
  6858. * The callback through which a client of an ICM compression session
  6859. * receives encoded frames.
  6860. *
  6861. * Discussion:
  6862. * During the encoded frame output callback, the ICM has a reference
  6863. * to the passed ICMEncodedFrame, but the ICM will release that
  6864. * reference afterwards; the callback should retain the encoded
  6865. * frame if the client wants to keep it after the callback returns.
  6866. *
  6867. * Parameters:
  6868. *
  6869. * encodedFrameOutputRefCon:
  6870. * The callback's reference value, copied from the
  6871. * encodedFrameOutputRefCon field of the
  6872. * ICMEncodedFrameOutputRecord.
  6873. *
  6874. * session:
  6875. * The compression session.
  6876. *
  6877. * error:
  6878. * Indicates whether there was an error.
  6879. *
  6880. * frame:
  6881. * The encoded frame.
  6882. *
  6883. * reserved:
  6884. * Reserved for future use. Ignore the value of this parameter.
  6885. *
  6886. * Result:
  6887. * If the callback returns an error, the compressor and ICM will
  6888. * stop emitting frames so that the error can be propogated back to
  6889. * the caller of ICMCompressionSessionEncodeFrame or
  6890. * ICMCompressionSessionCompleteFrames.
  6891. }
  6892. type
  6893. ICMEncodedFrameOutputCallback = function( encodedFrameOutputRefCon: UnivPtr; session: ICMCompressionSessionRef; error: OSStatus; frame: ICMEncodedFrameRef; reserved: UnivPtr ): OSStatus;
  6894. {
  6895. * ICMEncodedFrameOutputRecord
  6896. *
  6897. * Summary:
  6898. * Holds an encoded frame callback and reference value.
  6899. }
  6900. type
  6901. ICMEncodedFrameOutputRecord = record
  6902. {
  6903. * An encoded frame callback.
  6904. }
  6905. encodedFrameOutputCallback: ICMEncodedFrameOutputCallback;
  6906. {
  6907. * The reference value for the encoded frame callback.
  6908. }
  6909. encodedFrameOutputRefCon: UnivPtr;
  6910. {
  6911. * The allocator for encoded frame data. Pass NULL if you do not need
  6912. * a specific allocator.
  6913. }
  6914. frameDataAllocator: CFAllocatorRef;
  6915. end;
  6916. {
  6917. * ICMSourceTrackingFlags
  6918. *
  6919. }
  6920. type
  6921. ICMSourceTrackingFlags = UInt32;
  6922. const
  6923. {
  6924. * Indicates that this is the last call for this sourceFrameRefCon.
  6925. }
  6926. kICMSourceTracking_LastCall = 1 shl 0;
  6927. {
  6928. * Indicates that the session is done with the source pixel buffer
  6929. * and has released any reference to it that it had.
  6930. }
  6931. kICMSourceTracking_ReleasedPixelBuffer = 1 shl 1;
  6932. {
  6933. * Indicates that this frame was encoded.
  6934. }
  6935. kICMSourceTracking_FrameWasEncoded = 1 shl 2;
  6936. {
  6937. * Indicates that this frame was dropped.
  6938. }
  6939. kICMSourceTracking_FrameWasDropped = 1 shl 3;
  6940. {
  6941. * Indicates that this frame was merged into other frames.
  6942. }
  6943. kICMSourceTracking_FrameWasMerged = 1 shl 4;
  6944. {
  6945. * Indicates that the time stamp of this frame was modified.
  6946. }
  6947. kICMSourceTracking_FrameTimeWasChanged = 1 shl 5;
  6948. {
  6949. * Indicates that the ICM has copied the image from the source pixel
  6950. * buffer into another pixel buffer because the source pixel buffer
  6951. * was not compatible with the compressor's required pixel buffer
  6952. * attributes.
  6953. }
  6954. kICMSourceTracking_CopiedPixelBuffer = 1 shl 6;
  6955. {
  6956. * ICMSourceTrackingCallback
  6957. *
  6958. * Summary:
  6959. * A callback which the ICM calls to provide information about the
  6960. * status of a frame that was passed to
  6961. * ICMCompressionSessionEncodeFrame.
  6962. *
  6963. * Discussion:
  6964. * Note that this callback may be called several times.
  6965. *
  6966. * Parameters:
  6967. *
  6968. * sourceTrackingRefCon:
  6969. * The callback's reference value, copied from the
  6970. * sourceTrackingRefCon field of ICMSourceTrackingCallbackRecord.
  6971. *
  6972. * sourceTrackingFlags:
  6973. * Flags describing what has happened to the frame.
  6974. *
  6975. * sourceFrameRefCon:
  6976. * The frame's reference value, copied from the sourceFrameRefCon
  6977. * parameter to ICMCompressionSessionEncodeFrame.
  6978. *
  6979. * reserved:
  6980. * Reserved for future use. Ignore the value of this parameter.
  6981. }
  6982. type
  6983. ICMSourceTrackingCallback = procedure( sourceTrackingRefCon: UnivPtr; sourceTrackingFlags: ICMSourceTrackingFlags; sourceFrameRefCon: UnivPtr; reserved: UnivPtr );
  6984. {
  6985. * ICMSourceTrackingCallbackRecord
  6986. *
  6987. * Summary:
  6988. * A tracking callback for an ICM compression session.
  6989. }
  6990. type
  6991. ICMSourceTrackingCallbackRecordPtr = ^ICMSourceTrackingCallbackRecord;
  6992. ICMSourceTrackingCallbackRecord = record
  6993. {
  6994. * The callback function pointer.
  6995. }
  6996. sourceTrackingCallback: ICMSourceTrackingCallback;
  6997. {
  6998. * The callback's reference value.
  6999. }
  7000. sourceTrackingRefCon: UnivPtr;
  7001. end;
  7002. {
  7003. * ICMFrameType
  7004. *
  7005. * Summary:
  7006. * Informally identifies a type of frame.
  7007. *
  7008. * Discussion:
  7009. * Do not assume that there are no other frame types beyond I, P and
  7010. * B.
  7011. }
  7012. type
  7013. ICMFrameType = UInt16;
  7014. const
  7015. kICMFrameType_I = 'I';
  7016. kICMFrameType_P = 'P';
  7017. kICMFrameType_B = 'B';
  7018. kICMFrameType_Unknown = 0;
  7019. { ICMCompressionSessionRef routines }
  7020. {
  7021. * ICMCompressionSessionCreate()
  7022. *
  7023. * Summary:
  7024. * Creates a compression session for the given codec type.
  7025. *
  7026. * Discussion:
  7027. * Some compressors do not support arbitrary source dimensions, and
  7028. * may override the suggested width and height.
  7029. *
  7030. * Parameters:
  7031. *
  7032. * allocator:
  7033. * An allocator for the session. Pass NULL to use the default
  7034. * allocator.
  7035. *
  7036. * width:
  7037. * The width of frames.
  7038. *
  7039. * height:
  7040. * The height of frames.
  7041. *
  7042. * cType:
  7043. * The codec type.
  7044. *
  7045. * timescale:
  7046. * The timescale to be used for all timestamps and durations used
  7047. * in the session.
  7048. *
  7049. * compressionOptions:
  7050. * Settings configuring the session.
  7051. *
  7052. * sourcePixelBufferAttributes:
  7053. * Required attributes for source pixel buffers, used when
  7054. * creating a pixel buffer pool for source frames. If you do not
  7055. * want the ICM to create one for you, pass NULL. (Using pixel
  7056. * buffers not allocated by the ICM may increase the chance that
  7057. * it will be necessary to copy image data.)
  7058. *
  7059. * encodedFrameOutputRecord:
  7060. * The callback that will receive encoded frames.
  7061. *
  7062. * compressionSessionOut:
  7063. * Points to a variable to receive the created session object.
  7064. *
  7065. * Availability:
  7066. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7067. * CarbonLib: not available
  7068. * Non-Carbon CFM: not available
  7069. }
  7070. function ICMCompressionSessionCreate( allocator: CFAllocatorRef { can be NULL }; width: SInt32; height: SInt32; cType: CodecType; timescale_: TimeScale; compressionOptions: ICMCompressionSessionOptionsRef { can be NULL }; sourcePixelBufferAttributes: CFDictionaryRef { can be NULL }; var encodedFrameOutputRecord: ICMEncodedFrameOutputRecord; var compressionSessionOut: ICMCompressionSessionRef ): OSStatus; external name '_ICMCompressionSessionCreate';
  7071. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7072. {
  7073. * ICMCompressionSessionRetain()
  7074. *
  7075. * Summary:
  7076. * Increments the retain count of a compression session.
  7077. *
  7078. * Discussion:
  7079. * If you pass NULL to this function, nothing happens.
  7080. *
  7081. * Availability:
  7082. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7083. * CarbonLib: not available
  7084. * Non-Carbon CFM: not available
  7085. }
  7086. function ICMCompressionSessionRetain( session: ICMCompressionSessionRef ): ICMCompressionSessionRef; external name '_ICMCompressionSessionRetain';
  7087. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7088. {
  7089. * ICMCompressionSessionRelease()
  7090. *
  7091. * Summary:
  7092. * Decrements the retain count of a compression session. If it
  7093. * drops to zero, the session is disposed.
  7094. *
  7095. * Discussion:
  7096. * If you pass NULL to this function, nothing happens. Remember to
  7097. * call ICMCompressionSessionCompleteFrames first if you want to
  7098. * ensure any pending frames are emitted. If you do not, they will
  7099. * be discarded.
  7100. *
  7101. * Availability:
  7102. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7103. * CarbonLib: not available
  7104. * Non-Carbon CFM: not available
  7105. }
  7106. procedure ICMCompressionSessionRelease( session: ICMCompressionSessionRef ); external name '_ICMCompressionSessionRelease';
  7107. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7108. {
  7109. * ICMCompressionSessionGetTypeID()
  7110. *
  7111. * Summary:
  7112. * Returns the CFTypeID for compression sessions.
  7113. *
  7114. * Availability:
  7115. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7116. * CarbonLib: not available
  7117. * Non-Carbon CFM: not available
  7118. }
  7119. function ICMCompressionSessionGetTypeID: CFTypeID; external name '_ICMCompressionSessionGetTypeID';
  7120. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7121. {
  7122. * ICMCompressionSessionGetPropertyInfo()
  7123. *
  7124. * Summary:
  7125. * Retrieves information about properties of a compression session.
  7126. *
  7127. * Availability:
  7128. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7129. * CarbonLib: not available
  7130. * Non-Carbon CFM: not available
  7131. }
  7132. function ICMCompressionSessionGetPropertyInfo( session: ICMCompressionSessionRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; outPropType: ComponentValueTypePtr { can be NULL }; outPropValueSize: ByteCountPtr { can be NULL }; outPropertyFlags: UInt32Ptr { can be NULL } ): OSStatus; external name '_ICMCompressionSessionGetPropertyInfo';
  7133. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7134. {
  7135. * ICMCompressionSessionGetProperty()
  7136. *
  7137. * Summary:
  7138. * Retrieves the value of a specific property of a compression
  7139. * session.
  7140. *
  7141. * Availability:
  7142. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7143. * CarbonLib: not available
  7144. * Non-Carbon CFM: not available
  7145. }
  7146. function ICMCompressionSessionGetProperty( session: ICMCompressionSessionRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inPropValueSize: ByteCount; outPropValueAddress: ComponentValuePtr; outPropValueSizeUsed: ByteCountPtr { can be NULL } ): OSStatus; external name '_ICMCompressionSessionGetProperty';
  7147. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7148. {
  7149. * ICMCompressionSessionSetProperty()
  7150. *
  7151. * Summary:
  7152. * Sets the value of a specific property of a compression session.
  7153. *
  7154. * Availability:
  7155. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7156. * CarbonLib: not available
  7157. * Non-Carbon CFM: not available
  7158. }
  7159. function ICMCompressionSessionSetProperty( session: ICMCompressionSessionRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inPropValueSize: ByteCount; inPropValueAddress: ConstComponentValuePtr ): OSStatus; external name '_ICMCompressionSessionSetProperty';
  7160. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7161. {
  7162. * Summary:
  7163. * Properties of compression sessions.
  7164. }
  7165. const
  7166. {
  7167. * Class identifier for compression session properties.
  7168. }
  7169. kQTPropertyClass_ICMCompressionSession = FourCharCode('icse');
  7170. {
  7171. * The time scale for the compression session.
  7172. }
  7173. kICMCompressionSessionPropertyID_TimeScale = FourCharCode('tscl'); { TimeScale, Read }
  7174. {
  7175. * The compressor's pixel buffer attributes for the compression
  7176. * session. You can use these to create a pixel buffer pool for
  7177. * source pixel buffers. Note that this is not the same as the
  7178. * sourcePixelBufferAttributes passed in to
  7179. * ICMCompressionSessionCreate. Getting this property does not change
  7180. * its retain count.
  7181. }
  7182. kICMCompressionSessionPropertyID_CompressorPixelBufferAttributes = FourCharCode('batt'); { CFDictionaryRef, Read }
  7183. {
  7184. * A pool that can provide ideal source pixel buffers for a
  7185. * compression session. The compression session creates this pixel
  7186. * buffer pool based on the compressor's pixel buffer attributes and
  7187. * any pixel buffer attributes passed in to
  7188. * ICMCompressionSessionCreate. If the source pixel buffer attributes
  7189. * and the compressor pixel buffer attributes can not be reconciled,
  7190. * the pool is based on the source pixel buffer attributes and the
  7191. * ICM converts each CVPixelBuffer internally.
  7192. }
  7193. kICMCompressionSessionPropertyID_PixelBufferPool = FourCharCode('pool'); { CVPixelBufferPoolRef, Read }
  7194. {
  7195. * The image description for the compression session. For some
  7196. * codecs, the image description may not be available before the
  7197. * first frame is compressed. Multiple calls to retrieve this
  7198. * property will return the same handle. The ICM will dispose this
  7199. * handle when the compression session is disposed.
  7200. * IMPORTANT: The caller must NOT dispose this handle.
  7201. }
  7202. kICMCompressionSessionPropertyID_ImageDescription = FourCharCode('idsc'); { ImageDescriptionHandle, Read }
  7203. {
  7204. * ICMCompressionSessionGetTimeScale()
  7205. *
  7206. * Summary:
  7207. * Retrieves the time scale for the compression session.
  7208. *
  7209. * Availability:
  7210. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7211. * CarbonLib: not available
  7212. * Non-Carbon CFM: not available
  7213. }
  7214. function ICMCompressionSessionGetTimeScale( session: ICMCompressionSessionRef ): TimeScale; external name '_ICMCompressionSessionGetTimeScale';
  7215. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7216. {
  7217. * ICMCompressionSessionGetPixelBufferPool()
  7218. *
  7219. * Summary:
  7220. * Returns a pool that can provide ideal source pixel buffers for a
  7221. * compression session.
  7222. *
  7223. * Discussion:
  7224. * The compression session creates this pixel buffer pool based on
  7225. * the compressor's pixel buffer attributes and any pixel buffer
  7226. * attributes passed in to ICMCompressionSessionCreate. If the
  7227. * source pixel buffer attributes and the compressor pixel buffer
  7228. * attributes can not be reconciled, the pool is based on the source
  7229. * pixel buffer attributes and the ICM converts each CVPixelBuffer
  7230. * internally.
  7231. *
  7232. * Availability:
  7233. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7234. * CarbonLib: not available
  7235. * Non-Carbon CFM: not available
  7236. }
  7237. function ICMCompressionSessionGetPixelBufferPool( session: ICMCompressionSessionRef ): CVPixelBufferPoolRef; external name '_ICMCompressionSessionGetPixelBufferPool';
  7238. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7239. {
  7240. * ICMCompressionSessionGetImageDescription()
  7241. *
  7242. * Summary:
  7243. * Retrieves the image description for the compression session.
  7244. *
  7245. * Discussion:
  7246. * For some codecs, this may fail if called before the first frame
  7247. * is compressed. Multiple calls to
  7248. * ICMCompressionSessionGetImageDescription will return the same
  7249. * handle. The ICM will dispose this handle when the compression
  7250. * session is disposed.
  7251. * IMPORTANT: The caller must NOT dispose this handle.
  7252. *
  7253. * Availability:
  7254. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7255. * CarbonLib: not available
  7256. * Non-Carbon CFM: not available
  7257. }
  7258. function ICMCompressionSessionGetImageDescription( session: ICMCompressionSessionRef; var imageDescOut: ImageDescriptionHandle ): OSStatus; external name '_ICMCompressionSessionGetImageDescription';
  7259. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7260. { ICMCompressionSessionRef encoding routines }
  7261. {
  7262. * ICMCompressionSessionEncodeFrame()
  7263. *
  7264. * Summary:
  7265. * Call this function to present frames to the compression session.
  7266. * Encoded frames may or may not be output before the function
  7267. * returns.
  7268. *
  7269. * Discussion:
  7270. * The session will retain the pixel buffer as long as necessary;
  7271. * the client should not modify the pixel data until the session
  7272. * releases it. (The most practical way to deal with this is by
  7273. * allocating pixel buffers from a pool.)
  7274. * The client may fill in both, either or neither of
  7275. * displayTimeStamp and displayDuration, but should set the
  7276. * appropriate flags to indicate which is valid. If the client needs
  7277. * to track the progress of a source frame, it should provide a
  7278. * sourceTrackingCallback.
  7279. * Note: If multipass compression is enabled, calls to
  7280. * ICMCompressionSessionEncodeFrame must be bracketed by
  7281. * ICMCompressionSessionBeginPass ... ICMCompressionSessionEndPass.
  7282. *
  7283. * Parameters:
  7284. *
  7285. * session:
  7286. * Identifies the compression session.
  7287. *
  7288. * pixelBuffer:
  7289. * Contains the source image to be compressed. PixelBuffer must
  7290. * have a nonzero reference count. The session will retain it as
  7291. * long as necessary. The client should not modify pixel buffer's
  7292. * pixels until the pixel buffer release callback is called. In a
  7293. * multipass encoding session pass where the compressor suggested
  7294. * the flag kICMCompressionPassMode_NoSourceFrames, you may pass
  7295. * NULL for pixelBuffer.
  7296. *
  7297. * displayTimeStamp:
  7298. * The display timestamp of the frame, using the timescale passed
  7299. * to ICMCompressionSessionCreate. If you pass a valid value, set
  7300. * the kICMValidTime_DisplayTimeStampIsValid flag in
  7301. * validTimeFlags.
  7302. *
  7303. * displayDuration:
  7304. * The display duration of the frame, using the timescale passed
  7305. * to ICMCompressionSessionCreate. If you pass a valid value, set
  7306. * the kICMValidTime_DisplayDurationIsValid flag in validTimeFlags.
  7307. *
  7308. * validTimeFlags:
  7309. * Flags to indicate which of displayTimeStamp and displayDuration
  7310. * are valid.
  7311. *
  7312. * frameOptions:
  7313. * Options for this frame.
  7314. *
  7315. * sourceTrackingCallback:
  7316. * A callback to be notified about the status of this source
  7317. * frame. Pass NULL if you do not require notification.
  7318. *
  7319. * sourceFrameRefCon:
  7320. * Your reference to the source frame.
  7321. *
  7322. * Availability:
  7323. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7324. * CarbonLib: not available
  7325. * Non-Carbon CFM: not available
  7326. }
  7327. function ICMCompressionSessionEncodeFrame( session: ICMCompressionSessionRef; pixelBuffer: CVPixelBufferRef; displayTimeStamp: TimeValue64; displayDuration: TimeValue64; validTimeFlags: ICMValidTimeFlags; frameOptions: ICMCompressionFrameOptionsRef { can be NULL }; sourceTrackingCallback: ICMSourceTrackingCallbackRecordPtr { can be NULL }; sourceFrameRefCon: UnivPtr ): OSStatus; external name '_ICMCompressionSessionEncodeFrame';
  7328. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7329. {
  7330. * ICMCompressionSessionCompleteFrames()
  7331. *
  7332. * Discussion:
  7333. * Call this function to force the compression session to complete
  7334. * encoding frames. Set completeAllFrames to direct the session to
  7335. * complete all pending frames.
  7336. * If completeAllFrames is false, only frames with display time
  7337. * stamps up to and including completeUntilDisplayTimeStamp.
  7338. * If ICMCompressionSessionOptionsSetDurationsNeeded is true and you
  7339. * are passing valid display timestamps but not display durations to
  7340. * ICMCompressionSessionEncodeFrame, pass the display timestamp of
  7341. * the next frame that would be passed to EncodeFrame in
  7342. * nextDisplayTimeStamp.
  7343. * Note: This function might return before frames are completed if
  7344. * the encoded frame callback returns an error.
  7345. *
  7346. * Parameters:
  7347. *
  7348. * session:
  7349. * Identifies the compression session.
  7350. *
  7351. * completeAllFrames:
  7352. * Set to direct the session to complete all pending frames.
  7353. *
  7354. * completeUntilDisplayTimeStamp:
  7355. * If completeAllFrames is false, the display timestamp to
  7356. * complete frames up to. Ignored if completeAllFrames is true.
  7357. *
  7358. * nextDisplayTimeStamp:
  7359. * See above. Ignored unless
  7360. * ICMCompressionSessionOptionsSetDurationsNeeded set true and
  7361. * kICMValidTime_DisplayDurationIsValid was clear in
  7362. * validTimeFlags in last call to ICMCompressionSessionEncodeFrame.
  7363. *
  7364. * Availability:
  7365. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7366. * CarbonLib: not available
  7367. * Non-Carbon CFM: not available
  7368. }
  7369. function ICMCompressionSessionCompleteFrames( session: ICMCompressionSessionRef; completeAllFrames: Boolean; completeUntilDisplayTimeStamp: TimeValue64; nextDisplayTimeStamp: TimeValue64 ): OSStatus; external name '_ICMCompressionSessionCompleteFrames';
  7370. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7371. { ICMCompressionSessionRef multipass support routines }
  7372. {
  7373. * ICMCompressionPassModeFlags
  7374. *
  7375. * Summary:
  7376. * Flags describing how a compressor should behave in a given pass
  7377. * of multipass encoding.
  7378. }
  7379. type
  7380. ICMCompressionPassModeFlagsPtr = ^ICMCompressionPassModeFlags;
  7381. ICMCompressionPassModeFlags = UInt32;
  7382. const
  7383. {
  7384. * In this pass the compressor shall output encoded frames.
  7385. }
  7386. kICMCompressionPassMode_OutputEncodedFrames = 1 shl 0;
  7387. {
  7388. * In this pass the client need not provide source frame buffers.
  7389. }
  7390. kICMCompressionPassMode_NoSourceFrames = 1 shl 1;
  7391. {
  7392. * In this pass the compressor may write private data to multipass
  7393. * storage.
  7394. }
  7395. kICMCompressionPassMode_WriteToMultiPassStorage = 1 shl 2;
  7396. {
  7397. * In this pass the compressor may read private data from multipass
  7398. * storage.
  7399. }
  7400. kICMCompressionPassMode_ReadFromMultiPassStorage = 1 shl 3;
  7401. {
  7402. * The compressor will set this flag to indicate that it will not be
  7403. * able to output encoded frames in the coming pass. If this flag is
  7404. * not set, then the client is allowed to set the
  7405. * kICMCompressionPassMode_OutputEncodedFrames flag when calling
  7406. * ICMCompressionSessionBeginPass.
  7407. }
  7408. kICMCompressionPassMode_NotReadyToOutputEncodedFrames = 1 shl 4;
  7409. {
  7410. * ICMCompressionSessionSupportsMultiPassEncoding()
  7411. *
  7412. * Summary:
  7413. * Queries whether a compression session supports multipass encoding.
  7414. *
  7415. * Discussion:
  7416. * Even if this function returns false, if you set the
  7417. * kICMCompressionSessionOptionsPropertyID_MultiPassStorage property
  7418. * on the CompressionSessionOptions, you must call
  7419. * ICMCompressionSessionBeginPass and ICMCompressionSessionEndPass.
  7420. *
  7421. * Parameters:
  7422. *
  7423. * session:
  7424. * The compression session.
  7425. *
  7426. * multiPassStyleFlags:
  7427. * Reserved. Set to zero.
  7428. *
  7429. * firstPassModeFlagsOut:
  7430. * Points to a variable to receive the session's requested mode
  7431. * flags for the first pass. The client may modify these flags,
  7432. * but should not set kICMCompressionPassMode_NoSourceFrames. Pass
  7433. * NULL if you do not want this information.
  7434. *
  7435. * Result:
  7436. * true if the session supports multipass encoding, false otherwise.
  7437. * If the session does not support multipass encoding,
  7438. * *firstPassModeFlagsOut will be set to
  7439. * kICMCompressionPassMode_OutputEncodedFrames.
  7440. *
  7441. * Availability:
  7442. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7443. * CarbonLib: not available
  7444. * Non-Carbon CFM: not available
  7445. }
  7446. function ICMCompressionSessionSupportsMultiPassEncoding( session: ICMCompressionSessionRef; multiPassStyleFlags: UInt32; firstPassModeFlagsOut: ICMCompressionPassModeFlagsPtr { can be NULL } ): Boolean; external name '_ICMCompressionSessionSupportsMultiPassEncoding';
  7447. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7448. {
  7449. * ICMCompressionSessionBeginPass()
  7450. *
  7451. * Summary:
  7452. * Call to announce the start of a specific compression pass.
  7453. *
  7454. * Discussion:
  7455. * The source frames and frame options for each display timestamp
  7456. * should be the same across passes.
  7457. * During multipass compression, valid displayTimeStamps must be
  7458. * passed to ICMCompressionSessionEncodeFrame since they are used to
  7459. * index the compressor's stored state.
  7460. * During an analysis pass
  7461. * (kICMCompressionPassMode_WriteToMultiPassStorage), the compressor
  7462. * does not output encoded frames, but records compressor-private
  7463. * information for each frame.
  7464. * During repeated analysis passes and the encoding pass
  7465. * (kICMCompressionPassMode_ReadFromMultiPassStorage), the
  7466. * compressor may refer to this information for other frames and use
  7467. * it to improve encoding.
  7468. * During an encoding pass
  7469. * (kICMCompressionPassMode_OutputEncodedFrames), the compressor
  7470. * must output encoded frames.
  7471. * If the compressor set the kICMCompressionPassMode_NoSourceFrames
  7472. * flag for the pass, the client may pass NULL pixel buffers to
  7473. * ICMCompressionSessionEncodeFrame.
  7474. * By default, the ICM provides local storage that lasts only until
  7475. * the compression session is disposed. If the client provides
  7476. * custom multipass storage, pass may be performed at different
  7477. * times or on different machines; segments of each pass may even be
  7478. * distributed.
  7479. *
  7480. * Availability:
  7481. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7482. * CarbonLib: not available
  7483. * Non-Carbon CFM: not available
  7484. }
  7485. function ICMCompressionSessionBeginPass( session: ICMCompressionSessionRef; passModeFlags: ICMCompressionPassModeFlags; flags: UInt32 ): OSStatus; external name '_ICMCompressionSessionBeginPass';
  7486. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7487. {
  7488. * ICMCompressionSessionEndPass()
  7489. *
  7490. * Summary:
  7491. * Call to announce the end of a pass.
  7492. *
  7493. * Availability:
  7494. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7495. * CarbonLib: not available
  7496. * Non-Carbon CFM: not available
  7497. }
  7498. function ICMCompressionSessionEndPass( session: ICMCompressionSessionRef ): OSStatus; external name '_ICMCompressionSessionEndPass';
  7499. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7500. {
  7501. * ICMCompressionSessionProcessBetweenPasses()
  7502. *
  7503. * Summary:
  7504. * Lets the compressor perform processing between passes.
  7505. *
  7506. * Discussion:
  7507. * Call this function repeatedly, until the compressor sets
  7508. * *interpassProcessingDoneOut to true to indicate that it is done
  7509. * with this round of interpass processing.
  7510. * When done, the compressor will indicate its preferred mode for
  7511. * the next pass.
  7512. * The client may choose to begin an encoding pass (by ORing in the
  7513. * kICMCompressionPassMode_OutputEncodedFrames flag) regardless of
  7514. * the compressor's request.
  7515. *
  7516. * Parameters:
  7517. *
  7518. * session:
  7519. * The compression session.
  7520. *
  7521. * flags:
  7522. * Reserved. Set to zero.
  7523. *
  7524. * interpassProcessingDoneOut:
  7525. * Points to a Boolean that will be set to false if
  7526. * ICMCompressionSessionProcessBetweenPasses should be called
  7527. * again, true if not
  7528. *
  7529. * requestedNextPassModeFlagsOut:
  7530. * Points to ICMCompressionPassModeFlags that will be set to the
  7531. * codec's recommended mode flags for the next pass.
  7532. * kICMCompressionPassMode_OutputEncodedFrames will only be set if
  7533. * it recommends that the next pass be the final one.
  7534. *
  7535. * Availability:
  7536. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7537. * CarbonLib: not available
  7538. * Non-Carbon CFM: not available
  7539. }
  7540. function ICMCompressionSessionProcessBetweenPasses( session: ICMCompressionSessionRef; flags: UInt32; var interpassProcessingDoneOut: Boolean; var requestedNextPassModeFlagsOut: ICMCompressionPassModeFlags ): OSStatus; external name '_ICMCompressionSessionProcessBetweenPasses';
  7541. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7542. { ICMCompressionSessionOptionsRef routines }
  7543. {
  7544. * ICMCompressionSessionOptionsCreate()
  7545. *
  7546. * Summary:
  7547. * Creates a compression session options object.
  7548. *
  7549. * Availability:
  7550. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7551. * CarbonLib: not available
  7552. * Non-Carbon CFM: not available
  7553. }
  7554. function ICMCompressionSessionOptionsCreate( allocator: CFAllocatorRef { can be NULL }; var options: ICMCompressionSessionOptionsRef ): OSStatus; external name '_ICMCompressionSessionOptionsCreate';
  7555. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7556. {
  7557. * ICMCompressionSessionOptionsCreateCopy()
  7558. *
  7559. * Summary:
  7560. * Copies a compression session options object.
  7561. *
  7562. * Availability:
  7563. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7564. * CarbonLib: not available
  7565. * Non-Carbon CFM: not available
  7566. }
  7567. function ICMCompressionSessionOptionsCreateCopy( allocator: CFAllocatorRef { can be NULL }; originalOptions: ICMCompressionSessionOptionsRef; var copiedOptions: ICMCompressionSessionOptionsRef ): OSStatus; external name '_ICMCompressionSessionOptionsCreateCopy';
  7568. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7569. {
  7570. * ICMCompressionSessionOptionsRetain()
  7571. *
  7572. * Summary:
  7573. * Increments the retain count of a compression session options
  7574. * object.
  7575. *
  7576. * Discussion:
  7577. * If you pass NULL to this function, nothing happens.
  7578. *
  7579. * Availability:
  7580. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7581. * CarbonLib: not available
  7582. * Non-Carbon CFM: not available
  7583. }
  7584. function ICMCompressionSessionOptionsRetain( options: ICMCompressionSessionOptionsRef ): ICMCompressionSessionOptionsRef; external name '_ICMCompressionSessionOptionsRetain';
  7585. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7586. {
  7587. * ICMCompressionSessionOptionsRelease()
  7588. *
  7589. * Summary:
  7590. * Decrements the retain count of a compression session options
  7591. * object. If it drops to zero, the object is disposed.
  7592. *
  7593. * Discussion:
  7594. * If you pass NULL to this function, nothing happens.
  7595. *
  7596. * Availability:
  7597. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7598. * CarbonLib: not available
  7599. * Non-Carbon CFM: not available
  7600. }
  7601. procedure ICMCompressionSessionOptionsRelease( options: ICMCompressionSessionOptionsRef ); external name '_ICMCompressionSessionOptionsRelease';
  7602. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7603. {
  7604. * ICMCompressionSessionOptionsGetTypeID()
  7605. *
  7606. * Summary:
  7607. * Returns the CFTypeID for compression session options objects.
  7608. *
  7609. * Availability:
  7610. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7611. * CarbonLib: not available
  7612. * Non-Carbon CFM: not available
  7613. }
  7614. function ICMCompressionSessionOptionsGetTypeID: CFTypeID; external name '_ICMCompressionSessionOptionsGetTypeID';
  7615. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7616. {
  7617. * ICMCompressionSessionOptionsGetPropertyInfo()
  7618. *
  7619. * Summary:
  7620. * Retrieves information about properties of a compression session
  7621. * options object.
  7622. *
  7623. * Availability:
  7624. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7625. * CarbonLib: not available
  7626. * Non-Carbon CFM: not available
  7627. }
  7628. function ICMCompressionSessionOptionsGetPropertyInfo( options: ICMCompressionSessionOptionsRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; outPropType: ComponentValueTypePtr { can be NULL }; outPropValueSize: ByteCountPtr { can be NULL }; outPropertyFlags: UInt32Ptr { can be NULL } ): OSStatus; external name '_ICMCompressionSessionOptionsGetPropertyInfo';
  7629. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7630. {
  7631. * ICMCompressionSessionOptionsGetProperty()
  7632. *
  7633. * Summary:
  7634. * Retrieves the value of a specific property of a compression
  7635. * session options object.
  7636. *
  7637. * Availability:
  7638. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7639. * CarbonLib: not available
  7640. * Non-Carbon CFM: not available
  7641. }
  7642. function ICMCompressionSessionOptionsGetProperty( options: ICMCompressionSessionOptionsRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inPropValueSize: ByteCount; outPropValueAddress: ComponentValuePtr; outPropValueSizeUsed: ByteCountPtr { can be NULL } ): OSStatus; external name '_ICMCompressionSessionOptionsGetProperty';
  7643. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7644. {
  7645. * ICMCompressionSessionOptionsSetProperty()
  7646. *
  7647. * Summary:
  7648. * Sets the value of a specific property of a compression session
  7649. * options object.
  7650. *
  7651. * Availability:
  7652. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  7653. * CarbonLib: not available
  7654. * Non-Carbon CFM: not available
  7655. }
  7656. function ICMCompressionSessionOptionsSetProperty( options: ICMCompressionSessionOptionsRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inPropValueSize: ByteCount; inPropValueAddress: ConstComponentValuePtr ): OSStatus; external name '_ICMCompressionSessionOptionsSetProperty';
  7657. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  7658. const
  7659. {
  7660. * Indicates no limit on the number of frames in the compression
  7661. * window.
  7662. }
  7663. kICMUnlimitedFrameDelayCount = -1;
  7664. {
  7665. * Indicates no time limit on the number of frames in the compression
  7666. * window.
  7667. }
  7668. kICMUnlimitedFrameDelayTime = -1;
  7669. {
  7670. * Indicates no CPU time limit on compression.
  7671. }
  7672. kICMUnlimitedCPUTimeBudget = -1;
  7673. {
  7674. * ICMDataRateLimit
  7675. *
  7676. * Summary:
  7677. * A hard limit on the data rate.
  7678. *
  7679. * Discussion:
  7680. * A hard limit is described by a data size in bytes and a duration
  7681. * in seconds, and requires that the total size of compressed data
  7682. * for any continuous segment of that duration (in decode time) must
  7683. * not exceed the provided data size.
  7684. }
  7685. type
  7686. ICMDataRateLimit = record
  7687. {
  7688. * The number of bytes.
  7689. }
  7690. dataSize: SInt32;
  7691. {
  7692. * The number of seconds.
  7693. }
  7694. dataDuration: Float32;
  7695. end;
  7696. {
  7697. * Summary:
  7698. * Scaling modes
  7699. *
  7700. * Discussion:
  7701. * These constants indicate how source frames to a compression
  7702. * session should be scaled if the dimensions and/or display aspect
  7703. * ratio do not match.
  7704. }
  7705. const
  7706. {
  7707. * The full width and height of source frames shall be scaled to the
  7708. * full width and height of the destination. This is the default if
  7709. * no other scaling mode is specified.
  7710. }
  7711. kICMScalingMode_StretchProductionAperture = FourCharCode('sp2p');
  7712. {
  7713. * The clean aperture of the source frames shall be scaled to the
  7714. * clean aperture of the destination.
  7715. }
  7716. kICMScalingMode_StretchCleanAperture = FourCharCode('sc2c');
  7717. {
  7718. * The clean aperture of the source frames shall be scaled to fit
  7719. * inside the clean aperture of the destination, preserving the
  7720. * original display aspect ratio. If the display aspect ratios are
  7721. * different, the source frames will be centered with black bars
  7722. * above and below, or to the left and right.
  7723. }
  7724. kICMScalingMode_Letterbox = FourCharCode('lett');
  7725. {
  7726. * The clean aperture of the source frames shall be scaled to cover
  7727. * the clean aperture of the destination, preserving the original
  7728. * display aspect ratio. If the display aspect ratios are different,
  7729. * the source frames will be centered and cropped.
  7730. }
  7731. kICMScalingMode_Trim = FourCharCode('trim');
  7732. {
  7733. * ICMSimpleBoundaryConditions
  7734. *
  7735. * Summary:
  7736. * Indicates whether and how a compression session's frames will be
  7737. * concatenated with other compressed frames to form a longer series.
  7738. *
  7739. * Discussion:
  7740. * Some clients divide a long series of frames into several shorter
  7741. * segments, each of which is then compressed by an independent
  7742. * compression session. Boundary conditions tell the compressor
  7743. * about how each session fits into the greater series: does this
  7744. * session stand alone, or will it be used to encode the first
  7745. * segment, a middle segment, or the last segment in a longer
  7746. * continuum?
  7747. * This information enables compressors to ensure that compressed
  7748. * segments can be concatenated smoothly -- for example, avoiding
  7749. * data rate spikes where segments are joined.
  7750. * By default, a session is assumed to stand alone.
  7751. }
  7752. type
  7753. ICMSimpleBoundaryConditions = record
  7754. {
  7755. * True if frames compressed in a separate session will be
  7756. * concatenated before the beginning of this one. False if this is a
  7757. * stand-alone session, or if this session will encode the first
  7758. * segment of a multi-segment compression. By default, false.
  7759. }
  7760. moreFramesBeforeStart: Boolean;
  7761. {
  7762. * True if frames compressed in a separate session will be
  7763. * concatenated following the end of this one. False if this is a
  7764. * stand-alone session, or if this session will encode the last
  7765. * segment of a multi-segment compression. By default, false.
  7766. }
  7767. moreFramesAfterEnd: Boolean;
  7768. end;
  7769. {
  7770. * Summary:
  7771. * Properties of compression sessions options objects.
  7772. }
  7773. const
  7774. {
  7775. * Class identifier for compression session options object properties.
  7776. }
  7777. kQTPropertyClass_ICMCompressionSessionOptions = FourCharCode('icso');
  7778. {
  7779. * Enables temporal compression. By default, temporal compression is
  7780. * disabled.
  7781. * IMPORTANT: If you want temporal compression (P frames and/or B
  7782. * frames) you must set this to true.
  7783. }
  7784. kICMCompressionSessionOptionsPropertyID_AllowTemporalCompression = FourCharCode('p ok'); { Boolean, Read/Write }
  7785. {
  7786. * Enables frame reordering.
  7787. * In order to encode B frames, a compressor must reorder frames,
  7788. * which means that the order in which they will be emitted and
  7789. * stored (the decode order) is different from the order in which
  7790. * they were presented to the compressor (the display order).
  7791. * By default, frame reordering is disabled.
  7792. * IMPORTANT: In order to encode using B frames, you must enable
  7793. * frame reordering.
  7794. }
  7795. kICMCompressionSessionOptionsPropertyID_AllowFrameReordering = FourCharCode('b ok'); { Boolean, Read/Write }
  7796. {
  7797. * Indicates that durations of emitted frames are needed.
  7798. * If this flag is set and source frames are provided with times but
  7799. * not durations, then frames will be delayed so that durations can
  7800. * be calculated as the difference between one frame's time stamp and
  7801. * the next frame's time stamp.
  7802. * By default, this flag is clear, so frames will not be delayed in
  7803. * order to calculate durations.
  7804. * IMPORTANT: If you will be passing encoded frames to
  7805. * AddMediaSampleFromEncodedFrame, you must set this flag to true.
  7806. }
  7807. kICMCompressionSessionOptionsPropertyID_DurationsNeeded = FourCharCode('need'); { Boolean, Read/Write }
  7808. {
  7809. * The maximum interval between key frames, also known as the key
  7810. * frame rate.
  7811. * Key frames, also known as sync frames, reset inter-frame
  7812. * dependencies; decoding a key frame is sufficient to prepare a
  7813. * decompressor for correctly decoding the difference frames that
  7814. * follow.
  7815. * Compressors are allowed to generate key frames more frequently if
  7816. * this would result in more efficient compression.
  7817. * The default key frame interval is 0, which indicates that the
  7818. * compressor should choose where to place all key frames. A key
  7819. * frame interval of 1 indicates that every frame must be a key
  7820. * frame, 2 indicates that at least every other frame must be a key
  7821. * frame, etc.
  7822. }
  7823. kICMCompressionSessionOptionsPropertyID_MaxKeyFrameInterval = FourCharCode('kyfr'); { SInt32, Read/Write }
  7824. {
  7825. * The requested maximum interval between partial sync frames. If the
  7826. * interval is n, any sequence of n successive frames must include at
  7827. * least one key or partial sync frame.
  7828. * Where supported, partial sync frames perform a partial reset of
  7829. * inter-frame dependencies; decoding two partial sync frames and the
  7830. * non-droppable difference frames between them is sufficient to
  7831. * prepare a decompressor for correctly decoding the difference
  7832. * frames that follow.
  7833. * Compressors are allowed to generate partial sync frames more
  7834. * frequently if this would result in more efficient compression.
  7835. *
  7836. * The default partial sync frame interval is 0, which indicates that
  7837. * the compressor should choose where to place partial sync frames. A
  7838. * partial sync frame interval of 1 means there can be no difference
  7839. * frames, so it is equivalent to a key frame interval of 1. A
  7840. * partial sync frame interval of 2 means that every other frame must
  7841. * be a key frame or a partial sync frame.
  7842. * Compressors that do not support partial sync frames will ignore
  7843. * this setting.
  7844. }
  7845. kICMCompressionSessionOptionsPropertyID_MaxPartialSyncFrameInterval = FourCharCode('psfr'); { SInt32, Read/Write }
  7846. {
  7847. * Enables the compressor to modify frame times.
  7848. * Some compressors are able to identify and coalesce runs of
  7849. * identical frames and output single frames with longer duration, or
  7850. * output frames at a different frame rate from the original. This
  7851. * feature is controlled by the "allow frame time changes" flag. By
  7852. * default, this flag is set to false, which forces compressors to
  7853. * emit one encoded frame for every source frame, and to preserve
  7854. * frame display times.
  7855. * (Note: this feature replaces the practice of having compressors
  7856. * return special high similarity values to indicate that frames
  7857. * could be dropped.)
  7858. * If you want to allow the compressor to modify frame times in order
  7859. * to improve compression performance, enable frame time changes.
  7860. }
  7861. kICMCompressionSessionOptionsPropertyID_AllowFrameTimeChanges = FourCharCode('+ ok'); { Boolean, Read/Write }
  7862. {
  7863. * Enables the compressor to call the encoded-frame callback from a
  7864. * different thread.
  7865. * By default, the flag is false, which means that the compressor
  7866. * must call the encoded-frame callback from the same thread that
  7867. * ICMCompressionSessionEncodeFrame and
  7868. * ICMCompressionSessionCompleteFrames were called on.
  7869. }
  7870. kICMCompressionSessionOptionsPropertyID_AllowAsyncCompletion = FourCharCode('asok'); { Boolean, Read/Write }
  7871. {
  7872. * The maximum frame delay count is the maximum number of frames that
  7873. * a compressor is allowed to hold before it must output a compressed
  7874. * frame. It limits the number of frames that may be held in the
  7875. * "compression window". If the maximum frame delay count is M, then
  7876. * before the call to encode frame N returns, frame N-M must have
  7877. * been emitted.
  7878. * The default is kICMUnlimitedFrameDelayCount, which sets no limit
  7879. * on the compression window.
  7880. }
  7881. kICMCompressionSessionOptionsPropertyID_MaxFrameDelayCount = FourCharCode('cwin'); { SInt32, Read/Write }
  7882. {
  7883. * The maximum frame delay time is the maximum difference between a
  7884. * source frame's display time and the corresponding encoded frame's
  7885. * decode time. It limits the span of display time that may be held
  7886. * in the "compression window". If the maximum frame delay time is
  7887. * TM, then before the call to encode a frame with display time TN
  7888. * returns, all frames with display times up to and including TN-TM
  7889. * must have been emitted.
  7890. * The default is kICMUnlimitedFrameDelayTime, which sets no time
  7891. * limit on the compression window.
  7892. }
  7893. kICMCompressionSessionOptionsPropertyID_MaxFrameDelayTime = FourCharCode('cwit'); { TimeValue64, Read/Write }
  7894. {
  7895. * Sets a specific compressor component or component instance to be
  7896. * used, or one of the wildcards anyCodec, bestSpeedCodec,
  7897. * bestFidelityCodec, or bestCompressionCodec.
  7898. * Use this API to force the Image Compression Manager to use a
  7899. * specific compressor component or compressor component instance.
  7900. * (If you pass in a component instance that you opened, the ICM will
  7901. * not close that instance; you must do so after the compression
  7902. * session is released.) To allow the Image Compression Manager to
  7903. * choose the compressor component, set the compressorComponent to
  7904. * anyCodec (the default), bestSpeedCodec, bestFidelityCodec or
  7905. * bestCompressionCodec.
  7906. }
  7907. kICMCompressionSessionOptionsPropertyID_CompressorComponent = FourCharCode('imco'); { CompressorComponent, Read/Write }
  7908. {
  7909. * A handle containing compressor settings. The compressor will be
  7910. * configured with these settings (by a call to
  7911. * ImageCodecSetSettings) during ICMCompressionSessionCreate.
  7912. }
  7913. kICMCompressionSessionOptionsPropertyID_CompressorSettings = FourCharCode('cost'); { Handle, Read/Write }
  7914. {
  7915. * The depth for compression.
  7916. * If a compressor does not support a specific depth, the closest
  7917. * supported depth will be used (preferring deeper depths to
  7918. * shallower depths). The default depth is k24RGBPixelFormat.
  7919. }
  7920. kICMCompressionSessionOptionsPropertyID_Depth = FourCharCode('deep'); { UInt32, Read/Write }
  7921. {
  7922. * The color table for compression. Used with indexed-color depths.
  7923. *
  7924. * Clients who get this property are responsible for disposing the
  7925. * returned CTabHandle.
  7926. }
  7927. kICMCompressionSessionOptionsPropertyID_ColorTable = FourCharCode('clut'); { CTabHandle, Read/Write}
  7928. {
  7929. * The compression quality.
  7930. * This value is always used to set the spatialQuality; if temporal
  7931. * compression is enabled, it is also used to set temporalQuality.
  7932. * <BR> The default quality is codecNormalQuality.
  7933. }
  7934. kICMCompressionSessionOptionsPropertyID_Quality = FourCharCode('qual'); { CodecQ, Read/Write }
  7935. {
  7936. * The long-term desired average data rate in bytes per second.
  7937. * This is not a hard limit.
  7938. * The default data rate is zero, which indicates that the quality
  7939. * setting should determine the size of compressed data.
  7940. * Note that data rate settings only have an effect when timing
  7941. * information is provided for source frames, and that some codecs do
  7942. * not support limiting to specified data rates.
  7943. }
  7944. kICMCompressionSessionOptionsPropertyID_AverageDataRate = FourCharCode('aver'); { SInt32, Read/Write }
  7945. {
  7946. * Zero, one or two hard limits on data rate.
  7947. * Each hard limit is described by a data size in bytes and a
  7948. * duration in seconds, and requires that the total size of
  7949. * compressed data for any contiguous segment of that duration (in
  7950. * decode time) must not exceed the data size.
  7951. * By default, no data rate limits are set.
  7952. * When setting this property, the inPropValueSize parameter should
  7953. * be the number of data rate limits multiplied by
  7954. * sizeof(ICMDataRateLimit).
  7955. * Note that data rate settings only have an effect when timing
  7956. * information is provided for source frames, and that some codecs do
  7957. * not support limiting to specified data rates.
  7958. }
  7959. kICMCompressionSessionOptionsPropertyID_DataRateLimits = FourCharCode('hard'); { C array of ICMDataRateLimit struct, Read/Write }
  7960. {
  7961. * The current number of data rate limits.
  7962. }
  7963. kICMCompressionSessionOptionsPropertyID_DataRateLimitCount = FourCharCode('har#'); { UInt32, Read }
  7964. {
  7965. * The maximum allowed number of data rate limits. (Currently 2.)
  7966. }
  7967. kICMCompressionSessionOptionsPropertyID_MaxDataRateLimits = FourCharCode('mhar'); { UInt32, Read }
  7968. {
  7969. * Indicates that the source was previously compressed.
  7970. * This property is purely an optional, informational hint to the
  7971. * compressor; by default it is false.
  7972. }
  7973. kICMCompressionSessionOptionsPropertyID_WasCompressed = FourCharCode('wasc'); { Boolean, Read/Write }
  7974. {
  7975. * Recommends a CPU time budget for the compressor in microseconds
  7976. * per frame.
  7977. * Zero means to go as fast as possible.
  7978. * By default, this is set to kICMUnlimitedCPUTimeBudget, which sets
  7979. * no limit.
  7980. * This is an advisory hint to the compressor, and some compressors
  7981. * may ignore it. Multithreaded compressors may use this amount of
  7982. * CPU time on each processor.
  7983. * Compressors should not feel compelled to use the full time budget
  7984. * if they complete ahead of time!
  7985. }
  7986. kICMCompressionSessionOptionsPropertyID_CPUTimeBudget = FourCharCode('cput'); { UInt32, Read/Write }
  7987. {
  7988. * Storage for multi-pass compression.
  7989. * To enable multipass compression, the client must provide a storage
  7990. * location for multipass data. Use
  7991. * ICMMultiPassStorageCreateWithTemporaryFile to have the ICM store
  7992. * it in a temporary file. Use
  7993. * ICMMultiPassStorageCreateWithCallbacks to manage the storage
  7994. * yourself.
  7995. * Note that the amount of multipass data to be stored can be
  7996. * substantial; it could be greater than the size of the output movie
  7997. * file.
  7998. * If this property is not NULL, the client must call
  7999. * ICMCompressionSessionBeginPass and ICMCompressionSessionEndPass
  8000. * around groups of calls to ICMCompressionSessionEncodeFrame.
  8001. * By default, this property is NULL and multipass compression is
  8002. * not enabled. The compression session options object retains the
  8003. * multipass storage object, when one is set.
  8004. }
  8005. kICMCompressionSessionOptionsPropertyID_MultiPassStorage = FourCharCode('imps'); { ICMMultiPassStorageRef, Read/Write }
  8006. {
  8007. * Indicates the number of source frames, if known. If nonzero, this
  8008. * should be the exact number of times that the client calls
  8009. * ICMCompressionSessionEncodeFrame in each pass.
  8010. * The default is 0, which indicates that the number of source frames
  8011. * is not known.
  8012. }
  8013. kICMCompressionSessionOptionsPropertyID_SourceFrameCount = FourCharCode('frco'); { UInt64, Read/Write }
  8014. {
  8015. * Indicates the expected frame rate, if known. The frame rate is
  8016. * measured in frames per second. This is not used to control the
  8017. * frame rate; it is provided as a hint to the compressor so that it
  8018. * can set up internal configuration before compression begins. The
  8019. * actual frame rate will depend on frame durations and may vary. By
  8020. * default, this is zero, indicating "unknown".
  8021. }
  8022. kICMCompressionSessionOptionsPropertyID_ExpectedFrameRate = FourCharCode('fran'); { Fixed, Read/Write }
  8023. {
  8024. * Indicates how source frames to a compression session should be
  8025. * scaled if the dimensions and/or display aspect ratio do not match.
  8026. }
  8027. kICMCompressionSessionOptionsPropertyID_ScalingMode = FourCharCode('scam'); { OSType, Read/Write }
  8028. {
  8029. * Describes the clean aperture for compressed frames. Note that if
  8030. * the compressor enforces a clean aperture, it will override this
  8031. * setting. The clean aperture will be set on the output image
  8032. * description and may affect scaling in some scaling modes. By
  8033. * default, this is all zeros, meaning unset.
  8034. }
  8035. kICMCompressionSessionOptionsPropertyID_CleanAperture = FourCharCode('clap'); { Native-endian CleanApertureImageDescriptionExtension, Read/Write }
  8036. {
  8037. * Describes the pixel aspect ratio for compressed frames. Note that
  8038. * if the compressor enforces a pixel aspect ratio, it will override
  8039. * this setting. The pixel aspect ratio will be set on the output
  8040. * image description and may affect scaling in some scaling modes. By
  8041. * default, this is all zeros, meaning unset.
  8042. }
  8043. kICMCompressionSessionOptionsPropertyID_PixelAspectRatio = FourCharCode('pasp'); { Native-endian PixelAspectRatioImageDescriptionExtension, Read/Write }
  8044. {
  8045. * Describes the number and order of fields for compressed frames.
  8046. * Note that if the compressor enforces field info, it will override
  8047. * this setting. The field info will be set on the output image
  8048. * description and may affect scaling in some scaling modes. By
  8049. * default, this is all zeros, meaning unset.
  8050. }
  8051. kICMCompressionSessionOptionsPropertyID_FieldInfo = FourCharCode('fiel'); { FieldInfoImageDescriptionExtension2, Read/Write }
  8052. {
  8053. * Indicates whether and how a compression session's frames will be
  8054. * concatenated with other compressed frames to form a longer series.
  8055. }
  8056. kICMCompressionSessionOptionsPropertyID_SimpleBoundaryConditions = FourCharCode('ends'); { ICMSimpleBoundaryConditions struct, Read/Write }
  8057. {
  8058. * Requests additional distortion to be applied to the aspect ratio
  8059. * in the kICMScalingMode_Letterbox and kICMScalingMode_Trim scaling
  8060. * modes. Values greater than fixed1 mean wider, values less than
  8061. * fixed1 mean narrower. For example, a value of X2Fix(2.0) would
  8062. * make the picture aspect ratio twice as wide.
  8063. }
  8064. kICMCompressionSessionOptionsPropertyID_ExtraAspectRatioStretchFactor = FourCharCode('exsf'); { Fixed, Default fixed1, Read/Write }
  8065. {
  8066. * ICMCompressionSessionOptionsSetAllowTemporalCompression()
  8067. *
  8068. * Summary:
  8069. * Enables temporal compression.
  8070. *
  8071. * Discussion:
  8072. * By default, temporal compression is disabled.
  8073. * IMPORTANT: If you want temporal compression (P frames and/or B
  8074. * frames) you must set this to true.
  8075. *
  8076. * Availability:
  8077. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8078. * CarbonLib: not available
  8079. * Non-Carbon CFM: not available
  8080. }
  8081. function ICMCompressionSessionOptionsSetAllowTemporalCompression( options: ICMCompressionSessionOptionsRef; allowTemporalCompression: Boolean ): OSStatus; external name '_ICMCompressionSessionOptionsSetAllowTemporalCompression';
  8082. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8083. {
  8084. * ICMCompressionSessionOptionsGetAllowTemporalCompression()
  8085. *
  8086. * Summary:
  8087. * Retrieves the allow temporal compression flag.
  8088. *
  8089. * Availability:
  8090. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8091. * CarbonLib: not available
  8092. * Non-Carbon CFM: not available
  8093. }
  8094. function ICMCompressionSessionOptionsGetAllowTemporalCompression( options: ICMCompressionSessionOptionsRef ): Boolean; external name '_ICMCompressionSessionOptionsGetAllowTemporalCompression';
  8095. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8096. {
  8097. * ICMCompressionSessionOptionsSetAllowFrameReordering()
  8098. *
  8099. * Summary:
  8100. * Enables frame reordering.
  8101. *
  8102. * Discussion:
  8103. * In order to encode B frames, a compressor must reorder frames,
  8104. * which means that the order in which they will be emitted and
  8105. * stored (the decode order) is different from the order in which
  8106. * they were presented to the compressor (the display order).
  8107. * By default, frame reordering is disabled.
  8108. * IMPORTANT: In order to encode using B frames, you must enable
  8109. * frame reordering.
  8110. *
  8111. * Availability:
  8112. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8113. * CarbonLib: not available
  8114. * Non-Carbon CFM: not available
  8115. }
  8116. function ICMCompressionSessionOptionsSetAllowFrameReordering( options: ICMCompressionSessionOptionsRef; allowFrameReordering: Boolean ): OSStatus; external name '_ICMCompressionSessionOptionsSetAllowFrameReordering';
  8117. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8118. {
  8119. * ICMCompressionSessionOptionsGetAllowFrameReordering()
  8120. *
  8121. * Summary:
  8122. * Retrieves the allow frame reordering flag.
  8123. *
  8124. * Availability:
  8125. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8126. * CarbonLib: not available
  8127. * Non-Carbon CFM: not available
  8128. }
  8129. function ICMCompressionSessionOptionsGetAllowFrameReordering( options: ICMCompressionSessionOptionsRef ): Boolean; external name '_ICMCompressionSessionOptionsGetAllowFrameReordering';
  8130. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8131. {
  8132. * ICMCompressionSessionOptionsSetDurationsNeeded()
  8133. *
  8134. * Summary:
  8135. * Indicates that durations of emitted frames are needed.
  8136. *
  8137. * Discussion:
  8138. * If this flag is set and source frames are provided with times but
  8139. * not durations, then frames will be delayed so that durations can
  8140. * be calculated as the difference between one frame's time stamp
  8141. * and the next frame's time stamp.
  8142. * By default, this flag is clear, so frames will not be delayed in
  8143. * order to calculate durations.
  8144. * IMPORTANT: If you will be passing encoded frames to
  8145. * AddMediaSampleFromEncodedFrame, you must set this flag to true.
  8146. *
  8147. * Availability:
  8148. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8149. * CarbonLib: not available
  8150. * Non-Carbon CFM: not available
  8151. }
  8152. function ICMCompressionSessionOptionsSetDurationsNeeded( options: ICMCompressionSessionOptionsRef; decodeDurationsNeeded: Boolean ): OSStatus; external name '_ICMCompressionSessionOptionsSetDurationsNeeded';
  8153. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8154. {
  8155. * ICMCompressionSessionOptionsGetDurationsNeeded()
  8156. *
  8157. * Summary:
  8158. * Retrieves the "durations needed" flag.
  8159. *
  8160. * Availability:
  8161. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8162. * CarbonLib: not available
  8163. * Non-Carbon CFM: not available
  8164. }
  8165. function ICMCompressionSessionOptionsGetDurationsNeeded( options: ICMCompressionSessionOptionsRef ): Boolean; external name '_ICMCompressionSessionOptionsGetDurationsNeeded';
  8166. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8167. {
  8168. * ICMCompressionSessionOptionsSetMaxKeyFrameInterval()
  8169. *
  8170. * Summary:
  8171. * Sets the maximum interval between key frames (also known as the
  8172. * key frame rate).
  8173. *
  8174. * Discussion:
  8175. * Compressors are allowed to generate key frames more frequently if
  8176. * this would result in more efficient compression.
  8177. * The default key frame interval is 0, which indicates that the
  8178. * compressor should choose where to place all key frames.
  8179. * (Note: this is a break with previous practice, which used a key
  8180. * frame rate of zero to disable temporal compression.)
  8181. *
  8182. * Availability:
  8183. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8184. * CarbonLib: not available
  8185. * Non-Carbon CFM: not available
  8186. }
  8187. function ICMCompressionSessionOptionsSetMaxKeyFrameInterval( options: ICMCompressionSessionOptionsRef; maxKeyFrameInterval: SInt32 ): OSStatus; external name '_ICMCompressionSessionOptionsSetMaxKeyFrameInterval';
  8188. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8189. {
  8190. * ICMCompressionSessionOptionsGetMaxKeyFrameInterval()
  8191. *
  8192. * Summary:
  8193. * Retrieves the maximum key frame interval.
  8194. *
  8195. * Availability:
  8196. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8197. * CarbonLib: not available
  8198. * Non-Carbon CFM: not available
  8199. }
  8200. function ICMCompressionSessionOptionsGetMaxKeyFrameInterval( options: ICMCompressionSessionOptionsRef ): SInt32; external name '_ICMCompressionSessionOptionsGetMaxKeyFrameInterval';
  8201. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8202. {
  8203. * ICMCompressionSessionOptionsSetAllowFrameTimeChanges()
  8204. *
  8205. * Summary:
  8206. * Enables the compressor to modify frame times.
  8207. *
  8208. * Discussion:
  8209. * Some compressors are able to identify and coalesce runs of
  8210. * identical frames and output single frames with longer duration,
  8211. * or output frames at a different frame rate from the original.
  8212. * This feature is controlled by the "allow frame time changes"
  8213. * flag. By default, this flag is set to false, which forces
  8214. * compressors to emit one encoded frame for every source frame, and
  8215. * to preserve frame display times.
  8216. * (Note: this feature replaces the practice of having compressors
  8217. * return special high similarity values to indicate that frames
  8218. * could be dropped.)
  8219. * If you want to allow the compressor to modify frame times in
  8220. * order to improve compression performance, enable frame time
  8221. * changes.
  8222. *
  8223. * Availability:
  8224. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8225. * CarbonLib: not available
  8226. * Non-Carbon CFM: not available
  8227. }
  8228. function ICMCompressionSessionOptionsSetAllowFrameTimeChanges( options: ICMCompressionSessionOptionsRef; allowFrameTimeChanges: Boolean ): OSStatus; external name '_ICMCompressionSessionOptionsSetAllowFrameTimeChanges';
  8229. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8230. {
  8231. * ICMCompressionSessionOptionsGetAllowFrameTimeChanges()
  8232. *
  8233. * Summary:
  8234. * Retrieves the allow frame time changes flag.
  8235. *
  8236. * Availability:
  8237. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8238. * CarbonLib: not available
  8239. * Non-Carbon CFM: not available
  8240. }
  8241. function ICMCompressionSessionOptionsGetAllowFrameTimeChanges( options: ICMCompressionSessionOptionsRef ): Boolean; external name '_ICMCompressionSessionOptionsGetAllowFrameTimeChanges';
  8242. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8243. { ICMMultiPassStorageRef routines }
  8244. {
  8245. * ICMMultiPassStorageCreationFlags
  8246. *
  8247. }
  8248. type
  8249. ICMMultiPassStorageCreationFlags = UInt32;
  8250. const
  8251. {
  8252. * Indicates that the temporary file should not be deleted when the
  8253. * multipass storage is released.
  8254. }
  8255. kICMMultiPassStorage_DoNotDeleteWhenDone = 1 shl 0;
  8256. {
  8257. * ICMMultiPassStorageCreateWithTemporaryFile()
  8258. *
  8259. * Summary:
  8260. * Creates a multipass storage using a temporary file.
  8261. *
  8262. * Discussion:
  8263. * If you pass NULL for directoryRef, the ICM will use the user's
  8264. * temporary items folder.
  8265. * If you pass NULL for fileName, the ICM will pick a unique name.
  8266. *
  8267. * The file will be deleted when the multipass storage is released,
  8268. * unless you set the kICMMultiPassStorage_DoNotDeleteWhenDone flag.
  8269. *
  8270. * Availability:
  8271. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8272. * CarbonLib: not available
  8273. * Non-Carbon CFM: not available
  8274. }
  8275. function ICMMultiPassStorageCreateWithTemporaryFile( allocator: CFAllocatorRef { can be NULL }; directoryRef: FSRefPtr { can be NULL }; fileName: CFStringRef { can be NULL }; flags: ICMMultiPassStorageCreationFlags; var multiPassStorageOut: ICMMultiPassStorageRef ): OSStatus; external name '_ICMMultiPassStorageCreateWithTemporaryFile';
  8276. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8277. {
  8278. * ICMMultiPassStorageStep
  8279. *
  8280. * Summary:
  8281. * Indicates a jump in time stamps used to index multipass storage.
  8282. }
  8283. type
  8284. ICMMultiPassStorageStep = UInt32;
  8285. const
  8286. {
  8287. * Requests the first time stamp at which a value is stored.
  8288. }
  8289. kICMMultiPassStorage_GetFirstTimeStamp = 1;
  8290. {
  8291. * Requests the previous time stamp before the given time stamp at
  8292. * which a value is stored.
  8293. }
  8294. kICMMultiPassStorage_GetPreviousTimeStamp = 2;
  8295. {
  8296. * Requests the next time stamp after the given time stamp at which a
  8297. * value is stored.
  8298. }
  8299. kICMMultiPassStorage_GetNextTimeStamp = 3;
  8300. {
  8301. * Requests the last time stamp at which a value is stored.
  8302. }
  8303. kICMMultiPassStorage_GetLastTimeStamp = 4;
  8304. {
  8305. * ICMMultiPassSetDataAtTimeStampCallback
  8306. *
  8307. * Summary:
  8308. * Stores a value at a given time stamp.
  8309. *
  8310. * Discussion:
  8311. * The new data should replace any previous data held at that
  8312. * timestamp with that index.
  8313. *
  8314. * Parameters:
  8315. *
  8316. * storageRefCon:
  8317. * The callbacks' reference value.
  8318. *
  8319. * timeStamp:
  8320. * The time stamp at which the value should be stored.
  8321. *
  8322. * index:
  8323. * An index by which multiple values may be stored at a time
  8324. * stamp. The meaning of individual indexes is private to the
  8325. * compressor.
  8326. *
  8327. * data:
  8328. * The data to be stored, or NULL to delete the value. The
  8329. * contents are private to the compressor component.
  8330. }
  8331. type
  8332. ICMMultiPassSetDataAtTimeStampCallback = function( storageRefCon: UnivPtr; timeStamp: TimeValue64; index: SIGNEDLONG; data: CFDataRef ): OSStatus;
  8333. {
  8334. * ICMMultiPassGetTimeStampCallback
  8335. *
  8336. * Summary:
  8337. * Retrieves a time stamp for which a value is stored.
  8338. *
  8339. * Parameters:
  8340. *
  8341. * storageRefCon:
  8342. * The callbacks' reference value.
  8343. *
  8344. * fromTimeStamp:
  8345. * The initial time stamp. Ignored for some values of step.
  8346. *
  8347. * step:
  8348. * Indicates the kind of time stamp search to perform.
  8349. *
  8350. * timeStampOut:
  8351. * Points to a TimeValue64 to receive the found time stamp. Set to
  8352. * -1 if no time stamp is found.
  8353. }
  8354. type
  8355. ICMMultiPassGetTimeStampCallback = function( storageRefCon: UnivPtr; fromTimeStamp: TimeValue64; step: ICMMultiPassStorageStep; var timeStampOut: TimeValue64 ): OSStatus;
  8356. {
  8357. * ICMMultiPassCopyDataAtTimeStampCallback
  8358. *
  8359. * Summary:
  8360. * Retrieves a value at a given time stamp and index.
  8361. *
  8362. * Parameters:
  8363. *
  8364. * storageRefCon:
  8365. * The callbacks' reference value.
  8366. *
  8367. * timeStamp:
  8368. * The time stamp at which the value should be retrieved.
  8369. *
  8370. * index:
  8371. * An index by which multiple values may be stored at a time
  8372. * stamp. The meaning of individual indexes is private to the
  8373. * compressor.
  8374. *
  8375. * dataOut:
  8376. * Points to a variable to receive the value. Set to a
  8377. * newly-created CFMutableData containing the value for the given
  8378. * time stamp and index, or set to NULL if no value is at that
  8379. * time stamp and index. It will be the callers responsibility to
  8380. * release the CFMutableData.
  8381. }
  8382. type
  8383. ICMMultiPassCopyDataAtTimeStampCallback = function( storageRefCon: UnivPtr; timeStamp: TimeValue64; index: SIGNEDLONG; var dataOut: CFMutableDataRef ): OSStatus;
  8384. {
  8385. * ICMMultiPassReleaseCallback
  8386. *
  8387. * Summary:
  8388. * Called when the multipass storage's retain count drops to zero.
  8389. *
  8390. * Parameters:
  8391. *
  8392. * storageRefCon:
  8393. * The callbacks' reference value.
  8394. }
  8395. type
  8396. ICMMultiPassReleaseCallback = function( storageRefCon: UnivPtr ): OSStatus;
  8397. {
  8398. * ICMMultiPassStorageCallbacks
  8399. *
  8400. * Summary:
  8401. * A collection of callbacks for creating a custom multipass storage
  8402. * object.
  8403. }
  8404. type
  8405. ICMMultiPassStorageCallbacks = record
  8406. {
  8407. * The version of the struct. Set to
  8408. * kICMMultiPassStorageCallbacksVersionOne.
  8409. }
  8410. version: UInt32;
  8411. {
  8412. * The callbacks' reference value.
  8413. }
  8414. storageRefCon: UnivPtr;
  8415. {
  8416. * The callback for storing values.
  8417. }
  8418. setDataAtTimeStampCallback: ICMMultiPassSetDataAtTimeStampCallback;
  8419. {
  8420. * The callback for finding time stamps.
  8421. }
  8422. getTimeStampCallback: ICMMultiPassGetTimeStampCallback;
  8423. {
  8424. * The callback for retrieving values.
  8425. }
  8426. copyDataAtTimeStampCallback: ICMMultiPassCopyDataAtTimeStampCallback;
  8427. {
  8428. * The callback for disposing the callback's state when done.
  8429. }
  8430. releaseCallback: ICMMultiPassReleaseCallback;
  8431. end;
  8432. const
  8433. kICMMultiPassStorageCallbacksVersionOne = 1;
  8434. {
  8435. * ICMMultiPassStorageCreateWithCallbacks()
  8436. *
  8437. * Summary:
  8438. * Assembles a multipass storage mechanism from callbacks.
  8439. *
  8440. * Availability:
  8441. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8442. * CarbonLib: not available
  8443. * Non-Carbon CFM: not available
  8444. }
  8445. function ICMMultiPassStorageCreateWithCallbacks( allocator: CFAllocatorRef { can be NULL }; var callbacks: ICMMultiPassStorageCallbacks; var multiPassStorageOut: ICMMultiPassStorageRef ): OSStatus; external name '_ICMMultiPassStorageCreateWithCallbacks';
  8446. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8447. {
  8448. * ICMMultiPassStorageRetain()
  8449. *
  8450. * Summary:
  8451. * Increments the retain count of a multipass storage object.
  8452. *
  8453. * Discussion:
  8454. * If you pass NULL to this function, nothing happens.
  8455. *
  8456. * Availability:
  8457. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8458. * CarbonLib: not available
  8459. * Non-Carbon CFM: not available
  8460. }
  8461. function ICMMultiPassStorageRetain( multiPassStorage: ICMMultiPassStorageRef ): ICMMultiPassStorageRef; external name '_ICMMultiPassStorageRetain';
  8462. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8463. {
  8464. * ICMMultiPassStorageRelease()
  8465. *
  8466. * Summary:
  8467. * Decrements the retain count of a multipass storage object. If it
  8468. * drops to zero, the object is disposed.
  8469. *
  8470. * Discussion:
  8471. * If you pass NULL to this function, nothing happens.
  8472. *
  8473. * Availability:
  8474. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8475. * CarbonLib: not available
  8476. * Non-Carbon CFM: not available
  8477. }
  8478. procedure ICMMultiPassStorageRelease( multiPassStorage: ICMMultiPassStorageRef ); external name '_ICMMultiPassStorageRelease';
  8479. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8480. {
  8481. * ICMMultiPassStorageGetTypeID()
  8482. *
  8483. * Summary:
  8484. * Returns the CFTypeID for multipass storage objects.
  8485. *
  8486. * Availability:
  8487. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8488. * CarbonLib: not available
  8489. * Non-Carbon CFM: not available
  8490. }
  8491. function ICMMultiPassStorageGetTypeID: CFTypeID; external name '_ICMMultiPassStorageGetTypeID';
  8492. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8493. { ICMCompressionFrameOptionsRef routines }
  8494. {
  8495. * ICMCompressionFrameOptionsCreate()
  8496. *
  8497. * Summary:
  8498. * Creates a frame compression options object.
  8499. *
  8500. * Availability:
  8501. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8502. * CarbonLib: not available
  8503. * Non-Carbon CFM: not available
  8504. }
  8505. function ICMCompressionFrameOptionsCreate( allocator: CFAllocatorRef { can be NULL }; session: ICMCompressionSessionRef; var options: ICMCompressionFrameOptionsRef ): OSStatus; external name '_ICMCompressionFrameOptionsCreate';
  8506. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8507. {
  8508. * ICMCompressionFrameOptionsCreateCopy()
  8509. *
  8510. * Summary:
  8511. * Copies a frame compression options object.
  8512. *
  8513. * Availability:
  8514. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8515. * CarbonLib: not available
  8516. * Non-Carbon CFM: not available
  8517. }
  8518. function ICMCompressionFrameOptionsCreateCopy( allocator: CFAllocatorRef { can be NULL }; originalOptions: ICMCompressionFrameOptionsRef; var copiedOptions: ICMCompressionFrameOptionsRef ): OSStatus; external name '_ICMCompressionFrameOptionsCreateCopy';
  8519. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8520. {
  8521. * ICMCompressionFrameOptionsRetain()
  8522. *
  8523. * Summary:
  8524. * Increments the retain count of a frame compression options object.
  8525. *
  8526. * Discussion:
  8527. * If you pass NULL to this function, nothing happens.
  8528. *
  8529. * Availability:
  8530. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8531. * CarbonLib: not available
  8532. * Non-Carbon CFM: not available
  8533. }
  8534. function ICMCompressionFrameOptionsRetain( options: ICMCompressionFrameOptionsRef ): ICMCompressionFrameOptionsRef; external name '_ICMCompressionFrameOptionsRetain';
  8535. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8536. {
  8537. * ICMCompressionFrameOptionsRelease()
  8538. *
  8539. * Summary:
  8540. * Decrements the retain count of a frame compression options
  8541. * object. If it drops to zero, the object is disposed.
  8542. *
  8543. * Discussion:
  8544. * If you pass NULL to this function, nothing happens.
  8545. *
  8546. * Availability:
  8547. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8548. * CarbonLib: not available
  8549. * Non-Carbon CFM: not available
  8550. }
  8551. procedure ICMCompressionFrameOptionsRelease( options: ICMCompressionFrameOptionsRef ); external name '_ICMCompressionFrameOptionsRelease';
  8552. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8553. {
  8554. * ICMCompressionFrameOptionsGetTypeID()
  8555. *
  8556. * Summary:
  8557. * Returns the CFTypeID for frame compression options objects.
  8558. *
  8559. * Availability:
  8560. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8561. * CarbonLib: not available
  8562. * Non-Carbon CFM: not available
  8563. }
  8564. function ICMCompressionFrameOptionsGetTypeID: CFTypeID; external name '_ICMCompressionFrameOptionsGetTypeID';
  8565. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8566. {
  8567. * ICMCompressionFrameOptionsGetPropertyInfo()
  8568. *
  8569. * Summary:
  8570. * Retrieves information about properties of a compression frame
  8571. * options object.
  8572. *
  8573. * Availability:
  8574. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8575. * CarbonLib: not available
  8576. * Non-Carbon CFM: not available
  8577. }
  8578. function ICMCompressionFrameOptionsGetPropertyInfo( options: ICMCompressionFrameOptionsRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; outPropType: ComponentValueTypePtr { can be NULL }; outPropValueSize: ByteCountPtr { can be NULL }; outPropertyFlags: UInt32Ptr { can be NULL } ): OSStatus; external name '_ICMCompressionFrameOptionsGetPropertyInfo';
  8579. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8580. {
  8581. * ICMCompressionFrameOptionsGetProperty()
  8582. *
  8583. * Summary:
  8584. * Retrieves the value of a specific property of a compression frame
  8585. * options object.
  8586. *
  8587. * Availability:
  8588. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8589. * CarbonLib: not available
  8590. * Non-Carbon CFM: not available
  8591. }
  8592. function ICMCompressionFrameOptionsGetProperty( options: ICMCompressionFrameOptionsRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inPropValueSize: ByteCount; outPropValueAddress: ComponentValuePtr; outPropValueSizeUsed: ByteCountPtr { can be NULL } ): OSStatus; external name '_ICMCompressionFrameOptionsGetProperty';
  8593. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8594. {
  8595. * ICMCompressionFrameOptionsSetProperty()
  8596. *
  8597. * Summary:
  8598. * Sets the value of a specific property of a compression frame
  8599. * options object.
  8600. *
  8601. * Availability:
  8602. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8603. * CarbonLib: not available
  8604. * Non-Carbon CFM: not available
  8605. }
  8606. function ICMCompressionFrameOptionsSetProperty( options: ICMCompressionFrameOptionsRef; inPropClass: ComponentPropertyClass; inPropID: ComponentPropertyID; inPropValueSize: ByteCount; inPropValueAddress: ConstComponentValuePtr ): OSStatus; external name '_ICMCompressionFrameOptionsSetProperty';
  8607. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8608. {
  8609. * Summary:
  8610. * Properties of compression frame options objects.
  8611. }
  8612. const
  8613. {
  8614. * Class identifier for compression frame options object properties.
  8615. }
  8616. kQTPropertyClass_ICMCompressionFrameOptions = FourCharCode('icfo');
  8617. {
  8618. * Forces frames to be compressed as key frames.
  8619. * The compressor must obey the "force key frame" flag if set. By
  8620. * default this property is false.
  8621. }
  8622. kICMCompressionFrameOptionsPropertyID_ForceKeyFrame = FourCharCode('keyf'); { Boolean, Read/Write }
  8623. {
  8624. * Requests a frame be compressed as a particular frame type.
  8625. * The frame type setting may be ignored by the compressor if not
  8626. * appropriate.
  8627. * By default this is set to kICMFrameType_Unknown.
  8628. * Do not assume that kICMFrameType_I means a key frame; if you need
  8629. * a key frame, set the "force key frame" property.
  8630. }
  8631. kICMCompressionFrameOptionsPropertyID_FrameType = FourCharCode('frty'); { ICMFrameType, Read/Write }
  8632. {
  8633. * ICMCompressionFrameOptionsSetForceKeyFrame()
  8634. *
  8635. * Summary:
  8636. * Forces frames to be compressed as key frames.
  8637. *
  8638. * Discussion:
  8639. * The compressor must obey the "force key frame" flag if set. By
  8640. * default this is set false.
  8641. *
  8642. * Availability:
  8643. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8644. * CarbonLib: not available
  8645. * Non-Carbon CFM: not available
  8646. }
  8647. function ICMCompressionFrameOptionsSetForceKeyFrame( options: ICMCompressionFrameOptionsRef; forceKeyFrame: Boolean ): OSStatus; external name '_ICMCompressionFrameOptionsSetForceKeyFrame';
  8648. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8649. {
  8650. * ICMCompressionFrameOptionsGetForceKeyFrame()
  8651. *
  8652. * Summary:
  8653. * Retrieves the "force key frame" flag.
  8654. *
  8655. * Availability:
  8656. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8657. * CarbonLib: not available
  8658. * Non-Carbon CFM: not available
  8659. }
  8660. function ICMCompressionFrameOptionsGetForceKeyFrame( options: ICMCompressionFrameOptionsRef ): Boolean; external name '_ICMCompressionFrameOptionsGetForceKeyFrame';
  8661. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8662. {
  8663. * ICMCompressionFrameOptionsSetFrameType()
  8664. *
  8665. * Summary:
  8666. * Requests a frame be compressed as a particular frame type.
  8667. *
  8668. * Discussion:
  8669. * The frame type setting may be ignored by the compressor if not
  8670. * appropriate.
  8671. * By default this is set to kICMFrameType_Unknown.
  8672. * Do not assume that kICMFrameType_I means a key frame; if you need
  8673. * a key frame, set forceKeyFrame.
  8674. *
  8675. * Availability:
  8676. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8677. * CarbonLib: not available
  8678. * Non-Carbon CFM: not available
  8679. }
  8680. function ICMCompressionFrameOptionsSetFrameType( options: ICMCompressionFrameOptionsRef; frameType: ICMFrameType ): OSStatus; external name '_ICMCompressionFrameOptionsSetFrameType';
  8681. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8682. {
  8683. * ICMCompressionFrameOptionsGetFrameType()
  8684. *
  8685. * Summary:
  8686. * Retrieves the frame type setting.
  8687. *
  8688. * Availability:
  8689. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8690. * CarbonLib: not available
  8691. * Non-Carbon CFM: not available
  8692. }
  8693. function ICMCompressionFrameOptionsGetFrameType( options: ICMCompressionFrameOptionsRef ): ICMFrameType; external name '_ICMCompressionFrameOptionsGetFrameType';
  8694. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8695. { ICMEncodedFrameRef routines }
  8696. {
  8697. * ICMEncodedFrameRetain()
  8698. *
  8699. * Summary:
  8700. * Increments the retain count of an encoded frame object.
  8701. *
  8702. * Discussion:
  8703. * If you pass NULL to this function, nothing happens.
  8704. *
  8705. * Availability:
  8706. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8707. * CarbonLib: not available
  8708. * Non-Carbon CFM: not available
  8709. }
  8710. function ICMEncodedFrameRetain( frame: ICMEncodedFrameRef ): ICMEncodedFrameRef; external name '_ICMEncodedFrameRetain';
  8711. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8712. {
  8713. * ICMEncodedFrameRelease()
  8714. *
  8715. * Summary:
  8716. * Decrements the retain count of an encoded frame object. If it
  8717. * drops to zero, the object is disposed.
  8718. *
  8719. * Discussion:
  8720. * If you pass NULL to this function, nothing happens.
  8721. *
  8722. * Availability:
  8723. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8724. * CarbonLib: not available
  8725. * Non-Carbon CFM: not available
  8726. }
  8727. procedure ICMEncodedFrameRelease( frame: ICMEncodedFrameRef ); external name '_ICMEncodedFrameRelease';
  8728. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8729. {
  8730. * ICMEncodedFrameGetTypeID()
  8731. *
  8732. * Summary:
  8733. * Returns the CFTypeID for encoded frame objects.
  8734. *
  8735. * Availability:
  8736. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8737. * CarbonLib: not available
  8738. * Non-Carbon CFM: not available
  8739. }
  8740. function ICMEncodedFrameGetTypeID: CFTypeID; external name '_ICMEncodedFrameGetTypeID';
  8741. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8742. {
  8743. * ICMEncodedFrameGetDataPtr()
  8744. *
  8745. * Summary:
  8746. * Gets the data buffer.
  8747. *
  8748. * Availability:
  8749. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8750. * CarbonLib: not available
  8751. * Non-Carbon CFM: not available
  8752. }
  8753. function ICMEncodedFrameGetDataPtr( frame: ICMEncodedFrameRef ): UInt8Ptr; external name '_ICMEncodedFrameGetDataPtr';
  8754. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8755. {
  8756. * ICMEncodedFrameGetBufferSize()
  8757. *
  8758. * Summary:
  8759. * Gets the size of the data buffer.
  8760. *
  8761. * Discussion:
  8762. * This is the physical size of the buffer.
  8763. *
  8764. * Availability:
  8765. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8766. * CarbonLib: not available
  8767. * Non-Carbon CFM: not available
  8768. }
  8769. function ICMEncodedFrameGetBufferSize( frame: ICMEncodedFrameRef ): ByteCount; external name '_ICMEncodedFrameGetBufferSize';
  8770. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8771. {
  8772. * ICMEncodedFrameGetDataSize()
  8773. *
  8774. * Summary:
  8775. * Gets the data size of the compressed frame in the buffer.
  8776. *
  8777. * Discussion:
  8778. * This is the logical size of the frame data. It may be less than
  8779. * the physical size of the buffer.
  8780. *
  8781. * Availability:
  8782. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8783. * CarbonLib: not available
  8784. * Non-Carbon CFM: not available
  8785. }
  8786. function ICMEncodedFrameGetDataSize( frame: ICMEncodedFrameRef ): ByteCount; external name '_ICMEncodedFrameGetDataSize';
  8787. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8788. {
  8789. * ICMEncodedFrameSetDataSize()
  8790. *
  8791. * Summary:
  8792. * Sets the data size of the compressed frame in the buffer.
  8793. *
  8794. * Availability:
  8795. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8796. * CarbonLib: not available
  8797. * Non-Carbon CFM: not available
  8798. }
  8799. function ICMEncodedFrameSetDataSize( frame: ICMMutableEncodedFrameRef; dataSize: ByteCount ): OSStatus; external name '_ICMEncodedFrameSetDataSize';
  8800. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8801. {
  8802. * ICMEncodedFrameGetDecodeNumber()
  8803. *
  8804. * Summary:
  8805. * Retrieves the decode number.
  8806. *
  8807. * Discussion:
  8808. * The ICM automatically stamps ascending decode numbers on frames
  8809. * after the compressor emits them. The first decode number in a
  8810. * session is 1.
  8811. * Note: Compressors should not call this function.
  8812. *
  8813. * Availability:
  8814. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8815. * CarbonLib: not available
  8816. * Non-Carbon CFM: not available
  8817. }
  8818. function ICMEncodedFrameGetDecodeNumber( frame: ICMEncodedFrameRef ): UInt32; external name '_ICMEncodedFrameGetDecodeNumber';
  8819. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8820. {
  8821. * ICMEncodedFrameGetTimeScale()
  8822. *
  8823. * Summary:
  8824. * Retrieves the timescale.
  8825. *
  8826. * Discussion:
  8827. * This is always the same as the timescale of the compression
  8828. * session.
  8829. *
  8830. * Availability:
  8831. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8832. * CarbonLib: not available
  8833. * Non-Carbon CFM: not available
  8834. }
  8835. function ICMEncodedFrameGetTimeScale( frame: ICMEncodedFrameRef ): TimeScale; external name '_ICMEncodedFrameGetTimeScale';
  8836. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8837. {
  8838. * ICMEncodedFrameGetImageDescription()
  8839. *
  8840. * Summary:
  8841. * Retrieves the image description.
  8842. *
  8843. * Discussion:
  8844. * Returns the same image description handle as
  8845. * ICMCompressionSessionGetImageDescription.
  8846. * IMPORTANT: The caller should NOT dispose this handle.
  8847. *
  8848. * Availability:
  8849. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8850. * CarbonLib: not available
  8851. * Non-Carbon CFM: not available
  8852. }
  8853. function ICMEncodedFrameGetImageDescription( frame: ICMEncodedFrameRef; var imageDescOut: ImageDescriptionHandle ): OSStatus; external name '_ICMEncodedFrameGetImageDescription';
  8854. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8855. {
  8856. * ICMEncodedFrameGetValidTimeFlags()
  8857. *
  8858. * Summary:
  8859. * Retrieves flags indicating which of the time stamps and durations
  8860. * are valid.
  8861. *
  8862. * Availability:
  8863. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8864. * CarbonLib: not available
  8865. * Non-Carbon CFM: not available
  8866. }
  8867. function ICMEncodedFrameGetValidTimeFlags( frame: ICMEncodedFrameRef ): ICMValidTimeFlags; external name '_ICMEncodedFrameGetValidTimeFlags';
  8868. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8869. {
  8870. * ICMEncodedFrameGetDecodeTimeStamp()
  8871. *
  8872. * Summary:
  8873. * Retrieves the frame's decode time stamp.
  8874. *
  8875. * Availability:
  8876. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8877. * CarbonLib: not available
  8878. * Non-Carbon CFM: not available
  8879. }
  8880. function ICMEncodedFrameGetDecodeTimeStamp( frame: ICMEncodedFrameRef ): TimeValue64; external name '_ICMEncodedFrameGetDecodeTimeStamp';
  8881. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8882. {
  8883. * ICMEncodedFrameGetDisplayTimeStamp()
  8884. *
  8885. * Summary:
  8886. * Retrieves the frame's display time stamp.
  8887. *
  8888. * Availability:
  8889. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8890. * CarbonLib: not available
  8891. * Non-Carbon CFM: not available
  8892. }
  8893. function ICMEncodedFrameGetDisplayTimeStamp( frame: ICMEncodedFrameRef ): TimeValue64; external name '_ICMEncodedFrameGetDisplayTimeStamp';
  8894. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8895. {
  8896. * ICMEncodedFrameGetDisplayOffset()
  8897. *
  8898. * Summary:
  8899. * Retrieves the frame's display offset, which is the offset from
  8900. * decode time stamp to display time stamp.
  8901. *
  8902. * Availability:
  8903. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8904. * CarbonLib: not available
  8905. * Non-Carbon CFM: not available
  8906. }
  8907. function ICMEncodedFrameGetDisplayOffset( frame: ICMEncodedFrameRef ): TimeValue64; external name '_ICMEncodedFrameGetDisplayOffset';
  8908. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8909. {
  8910. * ICMEncodedFrameGetDecodeDuration()
  8911. *
  8912. * Summary:
  8913. * Retrieves the frame's decode duration.
  8914. *
  8915. * Availability:
  8916. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8917. * CarbonLib: not available
  8918. * Non-Carbon CFM: not available
  8919. }
  8920. function ICMEncodedFrameGetDecodeDuration( frame: ICMEncodedFrameRef ): TimeValue64; external name '_ICMEncodedFrameGetDecodeDuration';
  8921. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8922. {
  8923. * ICMEncodedFrameGetDisplayDuration()
  8924. *
  8925. * Summary:
  8926. * Retrieves the frame's display duration.
  8927. *
  8928. * Availability:
  8929. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8930. * CarbonLib: not available
  8931. * Non-Carbon CFM: not available
  8932. }
  8933. function ICMEncodedFrameGetDisplayDuration( frame: ICMEncodedFrameRef ): TimeValue64; external name '_ICMEncodedFrameGetDisplayDuration';
  8934. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8935. {
  8936. * ICMEncodedFrameSetValidTimeFlags()
  8937. *
  8938. * Summary:
  8939. * Sets flags that indicate which of the time stamps and durations
  8940. * are valid.
  8941. *
  8942. * Discussion:
  8943. * Note that setting the (decode/display) (timestamp/duration)
  8944. * automatically sets the corresponding valid time flags. For
  8945. * example, calling ICMEncodedFrameSetDecodeTimeStamp sets
  8946. * kICMValidTime_DisplayTimeStampIsValid. If both decode timestamp
  8947. * and display timestamp are valid,
  8948. * kICMValidTime_DisplayOffsetIsValid is automatically set.
  8949. *
  8950. * Availability:
  8951. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8952. * CarbonLib: not available
  8953. * Non-Carbon CFM: not available
  8954. }
  8955. function ICMEncodedFrameSetValidTimeFlags( frame: ICMMutableEncodedFrameRef; validTimeFlags: ICMValidTimeFlags ): OSStatus; external name '_ICMEncodedFrameSetValidTimeFlags';
  8956. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8957. {
  8958. * ICMEncodedFrameSetDecodeTimeStamp()
  8959. *
  8960. * Summary:
  8961. * Sets the decode time stamp.
  8962. *
  8963. * Discussion:
  8964. * This automatically sets the kICMValidTime_DecodeTimeStampIsValid
  8965. * flag. If the display timestamp is valid, it also sets the
  8966. * kICMValidTime_DisplayOffsetIsValid flag.
  8967. *
  8968. * Availability:
  8969. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8970. * CarbonLib: not available
  8971. * Non-Carbon CFM: not available
  8972. }
  8973. function ICMEncodedFrameSetDecodeTimeStamp( frame: ICMMutableEncodedFrameRef; decodeTimeStamp: TimeValue64 ): OSStatus; external name '_ICMEncodedFrameSetDecodeTimeStamp';
  8974. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8975. {
  8976. * ICMEncodedFrameSetDisplayTimeStamp()
  8977. *
  8978. * Summary:
  8979. * Sets the display time stamp.
  8980. *
  8981. * Discussion:
  8982. * This automatically sets the kICMValidTime_DisplayTimeStampIsValid
  8983. * flag. If the decode timestamp is valid, it also sets the
  8984. * kICMValidTime_DisplayOffsetIsValid flag.
  8985. *
  8986. * Availability:
  8987. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  8988. * CarbonLib: not available
  8989. * Non-Carbon CFM: not available
  8990. }
  8991. function ICMEncodedFrameSetDisplayTimeStamp( frame: ICMMutableEncodedFrameRef; displayTimeStamp: TimeValue64 ): OSStatus; external name '_ICMEncodedFrameSetDisplayTimeStamp';
  8992. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  8993. {
  8994. * ICMEncodedFrameSetDecodeDuration()
  8995. *
  8996. * Summary:
  8997. * Sets the decode duration.
  8998. *
  8999. * Discussion:
  9000. * This automatically sets the kICMValidTime_DecodeDurationIsValid
  9001. * flag.
  9002. *
  9003. * Availability:
  9004. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9005. * CarbonLib: not available
  9006. * Non-Carbon CFM: not available
  9007. }
  9008. function ICMEncodedFrameSetDecodeDuration( frame: ICMMutableEncodedFrameRef; decodeDuration: TimeValue64 ): OSStatus; external name '_ICMEncodedFrameSetDecodeDuration';
  9009. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9010. {
  9011. * ICMEncodedFrameSetDisplayDuration()
  9012. *
  9013. * Summary:
  9014. * Sets the display duration.
  9015. *
  9016. * Discussion:
  9017. * This automatically sets the kICMValidTime_DisplayDurationIsValid
  9018. * flag.
  9019. *
  9020. * Availability:
  9021. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9022. * CarbonLib: not available
  9023. * Non-Carbon CFM: not available
  9024. }
  9025. function ICMEncodedFrameSetDisplayDuration( frame: ICMMutableEncodedFrameRef; displayDuration: TimeValue64 ): OSStatus; external name '_ICMEncodedFrameSetDisplayDuration';
  9026. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9027. {
  9028. * ICMEncodedFrameGetMediaSampleFlags()
  9029. *
  9030. * Summary:
  9031. * Retrieves the media sample flags for an encoded frame.
  9032. *
  9033. * Availability:
  9034. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9035. * CarbonLib: not available
  9036. * Non-Carbon CFM: not available
  9037. }
  9038. function ICMEncodedFrameGetMediaSampleFlags( frame: ICMEncodedFrameRef ): MediaSampleFlags; external name '_ICMEncodedFrameGetMediaSampleFlags';
  9039. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9040. {
  9041. * ICMEncodedFrameSetMediaSampleFlags()
  9042. *
  9043. * Summary:
  9044. * Sets the media sample flags for an encoded frame.
  9045. *
  9046. * Availability:
  9047. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9048. * CarbonLib: not available
  9049. * Non-Carbon CFM: not available
  9050. }
  9051. function ICMEncodedFrameSetMediaSampleFlags( frame: ICMMutableEncodedFrameRef; mediaSampleFlags_: MediaSampleFlags ): OSStatus; external name '_ICMEncodedFrameSetMediaSampleFlags';
  9052. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9053. {
  9054. * ICMEncodedFrameGetFrameType()
  9055. *
  9056. * Summary:
  9057. * Retrieves the frame type for an encoded frame.
  9058. *
  9059. * Availability:
  9060. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9061. * CarbonLib: not available
  9062. * Non-Carbon CFM: not available
  9063. }
  9064. function ICMEncodedFrameGetFrameType( frame: ICMEncodedFrameRef ): ICMFrameType; external name '_ICMEncodedFrameGetFrameType';
  9065. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9066. {
  9067. * ICMEncodedFrameSetFrameType()
  9068. *
  9069. * Summary:
  9070. * Sets the frame type for an encoded frame.
  9071. *
  9072. * Availability:
  9073. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9074. * CarbonLib: not available
  9075. * Non-Carbon CFM: not available
  9076. }
  9077. function ICMEncodedFrameSetFrameType( frame: ICMMutableEncodedFrameRef; frameType: ICMFrameType ): OSStatus; external name '_ICMEncodedFrameSetFrameType';
  9078. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9079. {
  9080. * ICMEncodedFrameGetSimilarity()
  9081. *
  9082. * Summary:
  9083. * Retrieves the similarity for an encoded frame.
  9084. *
  9085. * Discussion:
  9086. * 1.0 means identical. 0.0 means not at all alike. By default,
  9087. * this is set to -1.0, which means unknown.
  9088. *
  9089. * Availability:
  9090. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9091. * CarbonLib: not available
  9092. * Non-Carbon CFM: not available
  9093. }
  9094. function ICMEncodedFrameGetSimilarity( frame: ICMEncodedFrameRef ): Float32; external name '_ICMEncodedFrameGetSimilarity';
  9095. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9096. {
  9097. * ICMEncodedFrameSetSimilarity()
  9098. *
  9099. * Summary:
  9100. * Sets the similarity for an encoded frame.
  9101. *
  9102. * Discussion:
  9103. * 1.0 means identical. 0.0 means not at all alike.
  9104. *
  9105. * Availability:
  9106. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9107. * CarbonLib: not available
  9108. * Non-Carbon CFM: not available
  9109. }
  9110. function ICMEncodedFrameSetSimilarity( frame: ICMMutableEncodedFrameRef; similarity: Float32 ): OSStatus; external name '_ICMEncodedFrameSetSimilarity';
  9111. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9112. {
  9113. * ICMEncodedFrameGetSourceFrameRefCon()
  9114. *
  9115. * Summary:
  9116. * Retrieves the source frame reference value.
  9117. *
  9118. * Discussion:
  9119. * This is copied from the sourceFrameRefCon parameter to
  9120. * ICMCompressionSessionEncodeFrame.
  9121. *
  9122. * Availability:
  9123. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9124. * CarbonLib: not available
  9125. * Non-Carbon CFM: not available
  9126. }
  9127. function ICMEncodedFrameGetSourceFrameRefCon( frame: ICMEncodedFrameRef ): UnivPtr; external name '_ICMEncodedFrameGetSourceFrameRefCon';
  9128. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9129. { ICMCompressorSession interface for compressor components }
  9130. {
  9131. * ICMCompressorSessionRef
  9132. *
  9133. * Summary:
  9134. * Represents the session between the ICM and an image compressor
  9135. * component.
  9136. *
  9137. * Discussion:
  9138. * (Do not confuse this with ICMCompressionSessionRef, which is the
  9139. * session between the client and the ICM.) Note: compressors do not
  9140. * need to make any retain or release calls on this token.
  9141. }
  9142. type
  9143. ICMCompressorSessionRef = ^OpaqueICMCompressorSession; { an opaque type }
  9144. OpaqueICMCompressorSession = record end;
  9145. {
  9146. * ICMCompressorSourceFrameRef
  9147. *
  9148. * Summary:
  9149. * An opaque token that represents a frame that has been passed to
  9150. * ICMCompressionSessionEncodeFrame.
  9151. *
  9152. * Discussion:
  9153. * Such tokens are passed to the compressor component, which may
  9154. * retain a window of them in order to perform out-of-order encoding.
  9155. }
  9156. type
  9157. ICMCompressorSourceFrameRef = ^OpaqueICMCompressorSourceFrame; { an opaque type }
  9158. OpaqueICMCompressorSourceFrame = record end;
  9159. ICMCompressorSourceFrameRefPtr = ^ICMCompressorSourceFrameRef;
  9160. {
  9161. * ICMCompressorSourceFrameRetain()
  9162. *
  9163. * Summary:
  9164. * Increments the retain count of a source frame object.
  9165. *
  9166. * Discussion:
  9167. * If you pass NULL to this function, nothing happens.
  9168. *
  9169. * Availability:
  9170. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9171. * CarbonLib: not available
  9172. * Non-Carbon CFM: not available
  9173. }
  9174. function ICMCompressorSourceFrameRetain( sourceFrame: ICMCompressorSourceFrameRef ): ICMCompressorSourceFrameRef; external name '_ICMCompressorSourceFrameRetain';
  9175. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9176. {
  9177. * ICMCompressorSourceFrameRelease()
  9178. *
  9179. * Summary:
  9180. * Decrements the retain count of a source frame object. If it
  9181. * drops to zero, the object is disposed.
  9182. *
  9183. * Discussion:
  9184. * If you pass NULL to this function, nothing happens.
  9185. *
  9186. * Availability:
  9187. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9188. * CarbonLib: not available
  9189. * Non-Carbon CFM: not available
  9190. }
  9191. procedure ICMCompressorSourceFrameRelease( sourceFrame: ICMCompressorSourceFrameRef ); external name '_ICMCompressorSourceFrameRelease';
  9192. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9193. {
  9194. * ICMCompressorSourceFrameGetTypeID()
  9195. *
  9196. * Summary:
  9197. * Returns the CFTypeID for source frame objects.
  9198. *
  9199. * Availability:
  9200. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9201. * CarbonLib: not available
  9202. * Non-Carbon CFM: not available
  9203. }
  9204. function ICMCompressorSourceFrameGetTypeID: CFTypeID; external name '_ICMCompressorSourceFrameGetTypeID';
  9205. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9206. {
  9207. * ICMCompressorSourceFrameGetPixelBuffer()
  9208. *
  9209. * Summary:
  9210. * Retrieves a source frame's pixel buffer.
  9211. *
  9212. * Availability:
  9213. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9214. * CarbonLib: not available
  9215. * Non-Carbon CFM: not available
  9216. }
  9217. function ICMCompressorSourceFrameGetPixelBuffer( sourceFrame: ICMCompressorSourceFrameRef ): CVPixelBufferRef; external name '_ICMCompressorSourceFrameGetPixelBuffer';
  9218. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9219. {
  9220. * ICMCompressorSourceFrameGetDisplayNumber()
  9221. *
  9222. * Summary:
  9223. * Retrieves a source frame's display number.
  9224. *
  9225. * Discussion:
  9226. * The ICM tags source frames with display numbers in the order they
  9227. * are passed to ICMCompressionSessionEncodeFrame; the first display
  9228. * number is 1. Compressors may compare these numbers to work out
  9229. * whether prediction is forward or backward even when display times
  9230. * are not provided.
  9231. *
  9232. * Availability:
  9233. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9234. * CarbonLib: not available
  9235. * Non-Carbon CFM: not available
  9236. }
  9237. function ICMCompressorSourceFrameGetDisplayNumber( sourceFrame: ICMCompressorSourceFrameRef ): SIGNEDLONG; external name '_ICMCompressorSourceFrameGetDisplayNumber';
  9238. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9239. {
  9240. * ICMCompressorSourceFrameGetDisplayTimeStampAndDuration()
  9241. *
  9242. * Summary:
  9243. * Retrieves the display time stamp and duration of a source frame.
  9244. *
  9245. * Availability:
  9246. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9247. * CarbonLib: not available
  9248. * Non-Carbon CFM: not available
  9249. }
  9250. function ICMCompressorSourceFrameGetDisplayTimeStampAndDuration( sourceFrame: ICMCompressorSourceFrameRef; displayTimeStampOut: TimeValue64Ptr { can be NULL }; displayDurationOut: TimeValue64Ptr { can be NULL }; timeScaleOut: TimeScalePtr { can be NULL }; validTimeFlagsOut: ICMValidTimeFlagsPtr { can be NULL } ): OSStatus; external name '_ICMCompressorSourceFrameGetDisplayTimeStampAndDuration';
  9251. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9252. {
  9253. * ICMCompressorSourceFrameGetFrameOptions()
  9254. *
  9255. * Summary:
  9256. * Retrieves the frame compression options for a source frame.
  9257. *
  9258. * Availability:
  9259. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9260. * CarbonLib: not available
  9261. * Non-Carbon CFM: not available
  9262. }
  9263. function ICMCompressorSourceFrameGetFrameOptions( sourceFrame: ICMCompressorSourceFrameRef ): ICMCompressionFrameOptionsRef; external name '_ICMCompressorSourceFrameGetFrameOptions';
  9264. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9265. {
  9266. * ICMCompressorSourceFrameDetachPixelBuffer()
  9267. *
  9268. * Summary:
  9269. * Disconnects the pixel buffer from the source frame and allows it
  9270. * to be released.
  9271. *
  9272. * Discussion:
  9273. * Compressor components often need to hold onto
  9274. * ICMCompressorSourceFrameRefs for some time after they are done
  9275. * with the pixel buffers. In order to allow pixel buffer memory to
  9276. * be released earlier, they may call
  9277. * ICMCompressorSourceFrameDetachPixelBuffer to declare that they
  9278. * have no further need for the source frame's pixel buffer. After
  9279. * calling this, ICMCompressorSourceFrameGetPixelBuffer will return
  9280. * NULL.
  9281. *
  9282. * Availability:
  9283. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9284. * CarbonLib: not available
  9285. * Non-Carbon CFM: not available
  9286. }
  9287. function ICMCompressorSourceFrameDetachPixelBuffer( sourceFrame: ICMCompressorSourceFrameRef ): OSStatus; external name '_ICMCompressorSourceFrameDetachPixelBuffer';
  9288. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9289. {
  9290. * ICMCompressorSessionDropFrame()
  9291. *
  9292. * Summary:
  9293. * Called by a compressor to indicate that sourceFrame has been
  9294. * dropped and will not contribute to any encoded frames.
  9295. *
  9296. * Discussion:
  9297. * Calling this function does not automatically release the source
  9298. * frame; if the compressor called ICMCompressorSourceFrameRetain it
  9299. * should still call ICMCompressorSourceFrameRelease.
  9300. *
  9301. * Availability:
  9302. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9303. * CarbonLib: not available
  9304. * Non-Carbon CFM: not available
  9305. }
  9306. function ICMCompressorSessionDropFrame( session: ICMCompressorSessionRef; sourceFrame: ICMCompressorSourceFrameRef ): OSStatus; external name '_ICMCompressorSessionDropFrame';
  9307. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9308. {
  9309. * ICMCompressorSessionEmitEncodedFrame()
  9310. *
  9311. * Summary:
  9312. * Called by a compressor to output an encoded frame corresponding
  9313. * to one (or more) source frames.
  9314. *
  9315. * Discussion:
  9316. * (Encoded frames may only correspond to more than one source frame
  9317. * if allowFrameTimeChanges is set in the
  9318. * compressionSessionOptions.)
  9319. * After calling this, the compressor should release the encoded
  9320. * frame by calling ICMEncodedFrameRelease.
  9321. * Calling this function does not automatically release the source
  9322. * frames; if the compressor called ICMCompressorSourceFrameRetain
  9323. * it should still call ICMCompressorSourceFrameRelease.
  9324. *
  9325. * Availability:
  9326. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9327. * CarbonLib: not available
  9328. * Non-Carbon CFM: not available
  9329. }
  9330. function ICMCompressorSessionEmitEncodedFrame( session: ICMCompressorSessionRef; encodedFrame: ICMMutableEncodedFrameRef; numberOfSourceFrames: SIGNEDLONG; sourceFrames: {variable-size-array} ICMCompressorSourceFrameRefPtr ): OSStatus; external name '_ICMCompressorSessionEmitEncodedFrame';
  9331. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9332. {
  9333. * ICMEncodedFrameCreateMutable()
  9334. *
  9335. * Summary:
  9336. * Called by a compressor to create an encoded-frame token
  9337. * corresponding to a given source frame.
  9338. *
  9339. * Discussion:
  9340. * The encoded frame will initially have zero mediaSampleFlags; if
  9341. * the frame is not a key frame, the compressor must call
  9342. * ICMEncodedFrameSetMediaSampleFlags to set mediaSampleNotSync. If
  9343. * the frame is droppable, the compressor should set
  9344. * mediaSampleDroppable. If the frame is a partial key frame, the
  9345. * compressor should set mediaSamplePartialSync.
  9346. * The encoded frame will initially have undefined decodeTimeStamp
  9347. * and decodeDuration. The compressor may set these directly by
  9348. * calling ICMEncodedFrameSetDecodeTimeStamp and/or
  9349. * ICMEncodedFrameSetDecodeDuration. If these are not set by the
  9350. * compressor, the ICM will attempt to derive them.
  9351. *
  9352. * Availability:
  9353. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9354. * CarbonLib: not available
  9355. * Non-Carbon CFM: not available
  9356. }
  9357. function ICMEncodedFrameCreateMutable( session: ICMCompressorSessionRef; sourceFrame: ICMCompressorSourceFrameRef; bufferSize: ByteCount; var frameOut: ICMMutableEncodedFrameRef ): OSStatus; external name '_ICMEncodedFrameCreateMutable';
  9358. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9359. { Multi-pass storage access routines for compressor components }
  9360. {
  9361. * ICMMultiPassStorageSetDataAtTimeStamp()
  9362. *
  9363. * Summary:
  9364. * Called by a multipass-capable compressor to store data at a given
  9365. * timestamp.
  9366. *
  9367. * Discussion:
  9368. * The new data replaces any previous data held at that timestamp.
  9369. * If data is NULL, the data for that timestamp is deleted. The
  9370. * format of the data is private to the compressor.
  9371. *
  9372. * Parameters:
  9373. *
  9374. * multiPassStorage:
  9375. * The multipass storage object.
  9376. *
  9377. * timeStamp:
  9378. * The time stamp at which the value should be stored.
  9379. *
  9380. * index:
  9381. * An index by which multiple values may be stored at a time
  9382. * stamp. The meaning of individual indexes is private to the
  9383. * compressor.
  9384. *
  9385. * data:
  9386. * The data to be stored, or NULL to delete the value.
  9387. *
  9388. * Availability:
  9389. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9390. * CarbonLib: not available
  9391. * Non-Carbon CFM: not available
  9392. }
  9393. function ICMMultiPassStorageSetDataAtTimeStamp( multiPassStorage: ICMMultiPassStorageRef; timeStamp: TimeValue64; index: SIGNEDLONG; data: CFDataRef ): OSStatus; external name '_ICMMultiPassStorageSetDataAtTimeStamp';
  9394. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9395. {
  9396. * ICMMultiPassStorageGetTimeStamp()
  9397. *
  9398. * Summary:
  9399. * Called by a multipass-capable compressor to retrieve a time stamp
  9400. * for which a value is stored.
  9401. *
  9402. * Parameters:
  9403. *
  9404. * multiPassStorage:
  9405. * The multipass storage object.
  9406. *
  9407. * fromTimeStamp:
  9408. * The initial time stamp. Ignored for some values of step.
  9409. *
  9410. * step:
  9411. * Indicates the kind of time stamp search to perform.
  9412. *
  9413. * timeStampOut:
  9414. * Points to a TimeValue64 to receive the found time stamp. It
  9415. * will be set to -1 if no time stamp is found.
  9416. *
  9417. * Availability:
  9418. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9419. * CarbonLib: not available
  9420. * Non-Carbon CFM: not available
  9421. }
  9422. function ICMMultiPassStorageGetTimeStamp( multiPassStorage: ICMMultiPassStorageRef; fromTimeStamp: TimeValue64; step: ICMMultiPassStorageStep; var timeStampOut: TimeValue64 ): OSStatus; external name '_ICMMultiPassStorageGetTimeStamp';
  9423. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9424. {
  9425. * ICMMultiPassStorageCopyDataAtTimeStamp()
  9426. *
  9427. * Summary:
  9428. * Called by a multipass-capable compressor to retrieve data at a
  9429. * given timestamp.
  9430. *
  9431. * Parameters:
  9432. *
  9433. * multiPassStorage:
  9434. * The multipass storage object.
  9435. *
  9436. * timeStamp:
  9437. * The time stamp at which the value should be retrieved.
  9438. *
  9439. * index:
  9440. * An index by which multiple values may be stored at a time
  9441. * stamp. The meaning of individual indexes is private to the
  9442. * compressor.
  9443. *
  9444. * dataOut:
  9445. * Points to a CFMutableDataRef to receive the value. It will be
  9446. * set to a newly-created CFMutableData containing the value for
  9447. * the given time stamp and index, or set to NULL if no value is
  9448. * at that time stamp and index. It is the caller's responsibility
  9449. * to release the CFMutableData.
  9450. *
  9451. * Availability:
  9452. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9453. * CarbonLib: not available
  9454. * Non-Carbon CFM: not available
  9455. }
  9456. function ICMMultiPassStorageCopyDataAtTimeStamp( multiPassStorage: ICMMultiPassStorageRef; timeStamp: TimeValue64; index: SIGNEDLONG; var dataOut: CFMutableDataRef ): OSStatus; external name '_ICMMultiPassStorageCopyDataAtTimeStamp';
  9457. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9458. {
  9459. * kQTVisualContextTypeKey
  9460. *
  9461. * Summary:
  9462. * Read-only CFStringRef: Type of the visual context.
  9463. *
  9464. * Availability:
  9465. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9466. * CarbonLib: not available
  9467. * Non-Carbon CFM: not available
  9468. }
  9469. var kQTVisualContextTypeKey: CFStringRef; external name '_kQTVisualContextTypeKey'; (* attribute const *)
  9470. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9471. {
  9472. * kQTVisualContextType_PixelBuffer
  9473. *
  9474. * Summary:
  9475. * Value for kQTVisualContextTypeKey for pixel buffer visual
  9476. * contexts.
  9477. *
  9478. * Availability:
  9479. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9480. * CarbonLib: not available
  9481. * Non-Carbon CFM: not available
  9482. }
  9483. var kQTVisualContextType_PixelBuffer: CFStringRef; external name '_kQTVisualContextType_PixelBuffer'; (* attribute const *)
  9484. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9485. {
  9486. * kQTVisualContextType_OpenGLTexture
  9487. *
  9488. * Summary:
  9489. * Value for kQTVisualContextTypeKey for OpenGL texture visual
  9490. * contexts.
  9491. *
  9492. * Availability:
  9493. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9494. * CarbonLib: not available
  9495. * Non-Carbon CFM: not available
  9496. }
  9497. var kQTVisualContextType_OpenGLTexture: CFStringRef; external name '_kQTVisualContextType_OpenGLTexture'; (* attribute const *)
  9498. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9499. {
  9500. * kQTVisualContextWorkingColorSpaceKey
  9501. *
  9502. * Summary:
  9503. * CGColorSpaceRef: Color space in which QuickTime will perform
  9504. * image processing. If this attribute is not set, images will be
  9505. * processed in the output color space.
  9506. *
  9507. * Availability:
  9508. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9509. * CarbonLib: not available
  9510. * Non-Carbon CFM: not available
  9511. }
  9512. var kQTVisualContextWorkingColorSpaceKey: CFStringRef; external name '_kQTVisualContextWorkingColorSpaceKey'; (* attribute const *)
  9513. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9514. {
  9515. * kQTVisualContextOutputColorSpaceKey
  9516. *
  9517. * Summary:
  9518. * CGColorSpaceRef: Color space of images produced by this visual
  9519. * context. If this attribute is not set, images may be in any color
  9520. * space.
  9521. *
  9522. * Availability:
  9523. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9524. * CarbonLib: not available
  9525. * Non-Carbon CFM: not available
  9526. }
  9527. var kQTVisualContextOutputColorSpaceKey: CFStringRef; external name '_kQTVisualContextOutputColorSpaceKey'; (* attribute const *)
  9528. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9529. {
  9530. * kQTVisualContextExpectedReadAheadKey
  9531. *
  9532. * Summary:
  9533. * CFNumberRef: Number of seconds ahead of real-time that the client
  9534. * expects to pull images out of the visual context. Applications
  9535. * using the CoreVideo display link should set this attribute
  9536. * according to value returned from
  9537. * CVDisplayLinkGetOutputVideoLatency().
  9538. *
  9539. * Availability:
  9540. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9541. * CarbonLib: not available
  9542. * Non-Carbon CFM: not available
  9543. }
  9544. var kQTVisualContextExpectedReadAheadKey: CFStringRef; external name '_kQTVisualContextExpectedReadAheadKey'; (* attribute const *)
  9545. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9546. {
  9547. * kQTVisualContextPixelBufferAttributesKey
  9548. *
  9549. * Summary:
  9550. * CFDictionaryRef: Dictionary containing pixel buffer attributes as
  9551. * described for the CoreVideo pixel buffer pool.
  9552. *
  9553. * Availability:
  9554. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9555. * CarbonLib: not available
  9556. * Non-Carbon CFM: not available
  9557. }
  9558. var kQTVisualContextPixelBufferAttributesKey: CFStringRef; external name '_kQTVisualContextPixelBufferAttributesKey'; (* attribute const *)
  9559. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9560. {
  9561. * kQTVisualContextTargetDimensionsKey
  9562. *
  9563. * Summary:
  9564. * CFDictionaryRef: Dictionary containing
  9565. * kQTVisualContextTargetDimensions_WidthKey and
  9566. * kQTVisualContextTargetDimensions_HeightKey. This is only a hint
  9567. * to optimize certain media types, such as text, that can render at
  9568. * any resolution. If this attribute is not set, the movie will
  9569. * render at its native resolution.
  9570. *
  9571. * Availability:
  9572. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9573. * CarbonLib: not available
  9574. * Non-Carbon CFM: not available
  9575. }
  9576. var kQTVisualContextTargetDimensionsKey: CFStringRef; external name '_kQTVisualContextTargetDimensionsKey'; (* attribute const *)
  9577. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9578. {
  9579. * kQTVisualContextTargetDimensions_WidthKey
  9580. *
  9581. * Summary:
  9582. * CFNumberRef: Width, in pixels, of the rendering target.
  9583. *
  9584. * Availability:
  9585. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9586. * CarbonLib: not available
  9587. * Non-Carbon CFM: not available
  9588. }
  9589. var kQTVisualContextTargetDimensions_WidthKey: CFStringRef; external name '_kQTVisualContextTargetDimensions_WidthKey'; (* attribute const *)
  9590. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9591. {
  9592. * kQTVisualContextTargetDimensions_HeightKey
  9593. *
  9594. * Summary:
  9595. * CFNumberRef: Height, in pixels, of the rendering target.
  9596. *
  9597. * Availability:
  9598. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9599. * CarbonLib: not available
  9600. * Non-Carbon CFM: not available
  9601. }
  9602. var kQTVisualContextTargetDimensions_HeightKey: CFStringRef; external name '_kQTVisualContextTargetDimensions_HeightKey'; (* attribute const *)
  9603. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9604. {
  9605. * QTVisualContextRetain()
  9606. *
  9607. * Summary:
  9608. * Increments the visual context's reference count.
  9609. *
  9610. * Discussion:
  9611. * The same visual context is returned for convenience. If
  9612. * visualContext is NULL, nothing happens.
  9613. *
  9614. * Parameters:
  9615. *
  9616. * visualContext:
  9617. * [in] The visual context to retain.
  9618. *
  9619. * Availability:
  9620. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9621. * CarbonLib: not available
  9622. * Non-Carbon CFM: not available
  9623. }
  9624. function QTVisualContextRetain( visualContext: QTVisualContextRef ): QTVisualContextRef; external name '_QTVisualContextRetain';
  9625. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9626. {
  9627. * QTVisualContextRelease()
  9628. *
  9629. * Summary:
  9630. * Decrements the visual context's reference count.
  9631. *
  9632. * Discussion:
  9633. * If the retain count decreases to zero, the visual context is
  9634. * disposed. If visualContext is NULL, nothing happens.
  9635. *
  9636. * Parameters:
  9637. *
  9638. * visualContext:
  9639. * [in] The visual context to release.
  9640. *
  9641. * Availability:
  9642. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9643. * CarbonLib: not available
  9644. * Non-Carbon CFM: not available
  9645. }
  9646. procedure QTVisualContextRelease( visualContext: QTVisualContextRef ); external name '_QTVisualContextRelease';
  9647. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9648. {
  9649. * QTVisualContextGetTypeID()
  9650. *
  9651. * Summary:
  9652. * Returns the CFTypeID for QTVisualContextRef.
  9653. *
  9654. * Discussion:
  9655. * You could use this to test whether a CFTypeRef that extracted
  9656. * from a CF container such as a CFArray was a QTVisualContextRef.
  9657. * All visual contexts have the same CFTypeID. If you need to
  9658. * distinguish between different types of visual contexts (eg.
  9659. * PixelBuffer vs. OpenGLTexture), query for kQTVisualContextTypeKey
  9660. * with QTVisualContextGetAttribute().
  9661. *
  9662. * Availability:
  9663. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9664. * CarbonLib: not available
  9665. * Non-Carbon CFM: not available
  9666. }
  9667. function QTVisualContextGetTypeID: CFTypeID; external name '_QTVisualContextGetTypeID';
  9668. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9669. {
  9670. * QTVisualContextSetAttribute()
  9671. *
  9672. * Summary:
  9673. * Sets a visual context attribute.
  9674. *
  9675. * Parameters:
  9676. *
  9677. * visualContext:
  9678. * [in] The visual context.
  9679. *
  9680. * attributeKey:
  9681. * [in] Identifier of attribute to set.
  9682. *
  9683. * attributeValue:
  9684. * [in] Value of attribute to set, or NULL to remove a value.
  9685. *
  9686. * Availability:
  9687. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9688. * CarbonLib: not available
  9689. * Non-Carbon CFM: not available
  9690. }
  9691. function QTVisualContextSetAttribute( visualContext: QTVisualContextRef; attributeKey: CFStringRef; attributeValue: CFTypeRef { can be NULL } ): OSStatus; external name '_QTVisualContextSetAttribute';
  9692. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9693. {
  9694. * QTVisualContextGetAttribute()
  9695. *
  9696. * Summary:
  9697. * Gets a visual context attribute.
  9698. *
  9699. * Parameters:
  9700. *
  9701. * visualContext:
  9702. * [in] The visual context.
  9703. *
  9704. * attributeKey:
  9705. * [in] Identifier of attribute to get.
  9706. *
  9707. * attributeValueOut:
  9708. * [out] Pointer to variable that will receive the attribute
  9709. * value, or NULL if the attribute is not set.
  9710. *
  9711. * Availability:
  9712. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9713. * CarbonLib: not available
  9714. * Non-Carbon CFM: not available
  9715. }
  9716. function QTVisualContextGetAttribute( visualContext: QTVisualContextRef; attributeKey: CFStringRef; var attributeValueOut: CFTypeRef ): OSStatus; external name '_QTVisualContextGetAttribute';
  9717. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9718. {
  9719. * QTVisualContextImageAvailableCallback
  9720. *
  9721. * Summary:
  9722. * User-defined callback function to recieve notifications when a
  9723. * new image becomes available.
  9724. *
  9725. * Discussion:
  9726. * Due to unpredictible activity, such as user seeks or the arrival
  9727. * of streaming video packets from a network, new images may become
  9728. * available for times supposedly occupied by previous images.
  9729. * Applications using the CoreVideo display link to drive rendering
  9730. * probably do not need to install a callback of this type since
  9731. * they will already be checking for new images at a sufficient rate.
  9732. *
  9733. * Parameters:
  9734. *
  9735. * visualContext:
  9736. * [in] The visual context invoking the callback.
  9737. *
  9738. * timeStamp:
  9739. * [in] Time for which a new image has become available.
  9740. *
  9741. * refCon:
  9742. * [in] User-defined value passed to
  9743. * QTVisualContextSetImageAvailableCallback.
  9744. }
  9745. type
  9746. QTVisualContextImageAvailableCallback = procedure( visualContext: QTVisualContextRef; const (*var*) timeStamp: CVTimeStamp; refCon: UnivPtr );
  9747. {
  9748. * QTVisualContextSetImageAvailableCallback()
  9749. *
  9750. * Summary:
  9751. * Installs user-defined callback to be notified when new images
  9752. * become available.
  9753. *
  9754. * Discussion:
  9755. * This routine installs the user defined
  9756. * QTVisualContextImageAvailableCallback callback. There can only be
  9757. * one callback associated with a QTVisualContext at a given time.
  9758. *
  9759. * Parameters:
  9760. *
  9761. * visualContext:
  9762. * [in] The visual context.
  9763. *
  9764. * imageAvailableCallback:
  9765. * [in] User-defined callback function to recieve notifications.
  9766. * Pass NULL to remove any existing callback.
  9767. *
  9768. * refCon:
  9769. * [in] User-defined value to pass to
  9770. * QTVisualContextImageAvailableCallback.
  9771. *
  9772. * Availability:
  9773. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9774. * CarbonLib: not available
  9775. * Non-Carbon CFM: not available
  9776. }
  9777. function QTVisualContextSetImageAvailableCallback( visualContext: QTVisualContextRef; imageAvailableCallback: QTVisualContextImageAvailableCallback { can be NULL }; refCon: UnivPtr { can be NULL } ): OSStatus; external name '_QTVisualContextSetImageAvailableCallback';
  9778. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9779. {
  9780. * QTVisualContextIsNewImageAvailable()
  9781. *
  9782. * Summary:
  9783. * Queries whether a new image is available for a given time.
  9784. *
  9785. * Discussion:
  9786. * This function returns true if there is a image available for the
  9787. * specified time that is different from the last image retrieved
  9788. * from QTVisualContextCopyImageForTime. See
  9789. * QTVisualContextCopyImageForTime for restrictions on time-stamps.
  9790. *
  9791. * Parameters:
  9792. *
  9793. * visualContext:
  9794. * [in] The visual context.
  9795. *
  9796. * timeStamp:
  9797. * [in] Time in question. Pass NULL to request the image at the
  9798. * current time.
  9799. *
  9800. * Availability:
  9801. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9802. * CarbonLib: not available
  9803. * Non-Carbon CFM: not available
  9804. }
  9805. function QTVisualContextIsNewImageAvailable( visualContext: QTVisualContextRef; {const} timeStamp: CVTimeStampPtr { can be NULL } ): Boolean; external name '_QTVisualContextIsNewImageAvailable';
  9806. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9807. {
  9808. * QTVisualContextCopyImageForTime()
  9809. *
  9810. * Summary:
  9811. * Retrieves an image buffer from the visual context, indexed by the
  9812. * provided timestamp.
  9813. *
  9814. * Discussion:
  9815. * You should not request image buffers further ahead of the current
  9816. * time than the read-ahead time specified with the
  9817. * kQTVisualContextExpectedReadAheadKey attribute. You may skip
  9818. * images by passing later times, but you may not pass an earlier
  9819. * time than passed to a previous call to this function.
  9820. *
  9821. * Parameters:
  9822. *
  9823. * visualContext:
  9824. * [in] The visual context.
  9825. *
  9826. * allocator:
  9827. * [in] Allocator used to create new CVImageBufferRef.
  9828. *
  9829. * timeStamp:
  9830. * [in] Time in question. Pass NULL to request the image at the
  9831. * current time.
  9832. *
  9833. * newImage:
  9834. * [out] Points to variable to receive new image. If there is no
  9835. * video at the requested time, this variable will be set to NULL.
  9836. *
  9837. * Availability:
  9838. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9839. * CarbonLib: not available
  9840. * Non-Carbon CFM: not available
  9841. }
  9842. function QTVisualContextCopyImageForTime( visualContext: QTVisualContextRef; allocator: CFAllocatorRef { can be NULL }; {const} timeStamp: CVTimeStampPtr { can be NULL }; var newImage: CVImageBufferRef ): OSStatus; external name '_QTVisualContextCopyImageForTime';
  9843. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9844. {
  9845. * QTVisualContextTask()
  9846. *
  9847. * Summary:
  9848. * Causes visual context to release internally held resources for
  9849. * later re-use.
  9850. *
  9851. * Discussion:
  9852. * For optimal resource management, this function should be called
  9853. * in every rendering pass, after old images have been released, new
  9854. * images have been used and all rendering has been flushed to the
  9855. * screen. This call is not mandatory.
  9856. *
  9857. * Parameters:
  9858. *
  9859. * visualContext:
  9860. * [in] The visual context.
  9861. *
  9862. * Availability:
  9863. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9864. * CarbonLib: not available
  9865. * Non-Carbon CFM: not available
  9866. }
  9867. procedure QTVisualContextTask( visualContext: QTVisualContextRef ); external name '_QTVisualContextTask';
  9868. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9869. {
  9870. * QTOpenGLTextureContextCreate()
  9871. *
  9872. * Summary:
  9873. * Creates a new OpenGL texture context for the given OpenGL context
  9874. * and pixel format.
  9875. *
  9876. * Discussion:
  9877. * This function will fail if the graphics hardware is insufficient.
  9878. *
  9879. * Parameters:
  9880. *
  9881. * allocator:
  9882. * [in] Allocator used to create the texture context.
  9883. *
  9884. * cglContext:
  9885. * [in] OpenGL context used to create textures.
  9886. *
  9887. * cglPixelFormat:
  9888. * [in] OpenGL pixel format used to create the OpenGL context.
  9889. *
  9890. * attributes:
  9891. * [in] Dictionary of attributes.
  9892. *
  9893. * newTextureContext:
  9894. * [out] Points to a variable to recieve the new OpenGL texture
  9895. * context.
  9896. *
  9897. * Availability:
  9898. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9899. * CarbonLib: not available
  9900. * Non-Carbon CFM: not available
  9901. }
  9902. function QTOpenGLTextureContextCreate( allocator: CFAllocatorRef { can be NULL }; cglContext: CGLContextObj; cglPixelFormat: CGLPixelFormatObj; attributes: CFDictionaryRef { can be NULL }; var newTextureContext: QTVisualContextRef ): OSStatus; external name '_QTOpenGLTextureContextCreate';
  9903. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9904. {
  9905. * QTPixelBufferContextCreate()
  9906. *
  9907. * Summary:
  9908. * Creates a new pixel buffer context with the given attributes.
  9909. *
  9910. * Discussion:
  9911. * This function will fail if the graphics hardware is insufficient.
  9912. *
  9913. * Parameters:
  9914. *
  9915. * allocator:
  9916. * [in] Allocator used to create the pixel buffer context.
  9917. *
  9918. * attributes:
  9919. * [in] Dictionary of attributes.
  9920. *
  9921. * newPixelBufferContext:
  9922. * [out] Points to a variable to recieve the new pixel buffer
  9923. * context.
  9924. *
  9925. * Availability:
  9926. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  9927. * CarbonLib: not available
  9928. * Non-Carbon CFM: not available
  9929. }
  9930. function QTPixelBufferContextCreate( allocator: CFAllocatorRef { can be NULL }; attributes: CFDictionaryRef { can be NULL }; var newPixelBufferContext: QTVisualContextRef ): OSStatus; external name '_QTPixelBufferContextCreate';
  9931. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  9932. {$endc} {not TARGET_CPU_64}
  9933. {$endc} {TARGET_OS_MAC}
  9934. {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
  9935. end.
  9936. {$endc} {not MACOSALLINCLUDE}