ImageCodec.pas 123 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261
  1. {
  2. File: QuickTime/ImageCodec.h
  3. Contains: QuickTime 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://www.freepascal.org/bugs.html
  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 ImageCodec;
  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 defined cpu64}
  62. {$setc __LP64__ := 1}
  63. {$elsec}
  64. {$setc __LP64__ := 0}
  65. {$endc}
  66. {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
  67. {$error Conflicting definitions for __ppc__ and __i386__}
  68. {$endc}
  69. {$ifc defined __ppc__ and __ppc__}
  70. {$setc TARGET_CPU_PPC := TRUE}
  71. {$setc TARGET_CPU_PPC64 := FALSE}
  72. {$setc TARGET_CPU_X86 := FALSE}
  73. {$setc TARGET_CPU_X86_64 := FALSE}
  74. {$setc TARGET_CPU_ARM := FALSE}
  75. {$setc TARGET_OS_MAC := TRUE}
  76. {$setc TARGET_OS_IPHONE := FALSE}
  77. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  78. {$setc TARGET_OS_EMBEDDED := FALSE}
  79. {$elifc defined __ppc64__ and __ppc64__}
  80. {$setc TARGET_CPU_PPC := FALSE}
  81. {$setc TARGET_CPU_PPC64 := TRUE}
  82. {$setc TARGET_CPU_X86 := FALSE}
  83. {$setc TARGET_CPU_X86_64 := FALSE}
  84. {$setc TARGET_CPU_ARM := FALSE}
  85. {$setc TARGET_OS_MAC := TRUE}
  86. {$setc TARGET_OS_IPHONE := FALSE}
  87. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  88. {$setc TARGET_OS_EMBEDDED := FALSE}
  89. {$elifc defined __i386__ and __i386__}
  90. {$setc TARGET_CPU_PPC := FALSE}
  91. {$setc TARGET_CPU_PPC64 := FALSE}
  92. {$setc TARGET_CPU_X86 := TRUE}
  93. {$setc TARGET_CPU_X86_64 := FALSE}
  94. {$setc TARGET_CPU_ARM := FALSE}
  95. {$ifc defined(iphonesim)}
  96. {$setc TARGET_OS_MAC := FALSE}
  97. {$setc TARGET_OS_IPHONE := TRUE}
  98. {$setc TARGET_IPHONE_SIMULATOR := TRUE}
  99. {$elsec}
  100. {$setc TARGET_OS_MAC := TRUE}
  101. {$setc TARGET_OS_IPHONE := FALSE}
  102. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  103. {$endc}
  104. {$setc TARGET_OS_EMBEDDED := FALSE}
  105. {$elifc defined __x86_64__ and __x86_64__}
  106. {$setc TARGET_CPU_PPC := FALSE}
  107. {$setc TARGET_CPU_PPC64 := FALSE}
  108. {$setc TARGET_CPU_X86 := FALSE}
  109. {$setc TARGET_CPU_X86_64 := TRUE}
  110. {$setc TARGET_CPU_ARM := FALSE}
  111. {$setc TARGET_OS_MAC := TRUE}
  112. {$setc TARGET_OS_IPHONE := FALSE}
  113. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  114. {$setc TARGET_OS_EMBEDDED := FALSE}
  115. {$elifc defined __arm__ and __arm__}
  116. {$setc TARGET_CPU_PPC := FALSE}
  117. {$setc TARGET_CPU_PPC64 := FALSE}
  118. {$setc TARGET_CPU_X86 := FALSE}
  119. {$setc TARGET_CPU_X86_64 := FALSE}
  120. {$setc TARGET_CPU_ARM := TRUE}
  121. { will require compiler define when/if other Apple devices with ARM cpus ship }
  122. {$setc TARGET_OS_MAC := FALSE}
  123. {$setc TARGET_OS_IPHONE := TRUE}
  124. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  125. {$setc TARGET_OS_EMBEDDED := TRUE}
  126. {$elsec}
  127. {$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ is defined.}
  128. {$endc}
  129. {$ifc defined __LP64__ and __LP64__ }
  130. {$setc TARGET_CPU_64 := TRUE}
  131. {$elsec}
  132. {$setc TARGET_CPU_64 := FALSE}
  133. {$endc}
  134. {$ifc defined FPC_BIG_ENDIAN}
  135. {$setc TARGET_RT_BIG_ENDIAN := TRUE}
  136. {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
  137. {$elifc defined FPC_LITTLE_ENDIAN}
  138. {$setc TARGET_RT_BIG_ENDIAN := FALSE}
  139. {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
  140. {$elsec}
  141. {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
  142. {$endc}
  143. {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
  144. {$setc CALL_NOT_IN_CARBON := FALSE}
  145. {$setc OLDROUTINENAMES := FALSE}
  146. {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
  147. {$setc OPAQUE_UPP_TYPES := TRUE}
  148. {$setc OTCARBONAPPLICATION := TRUE}
  149. {$setc OTKERNEL := FALSE}
  150. {$setc PM_USE_SESSION_APIS := TRUE}
  151. {$setc TARGET_API_MAC_CARBON := TRUE}
  152. {$setc TARGET_API_MAC_OS8 := FALSE}
  153. {$setc TARGET_API_MAC_OSX := TRUE}
  154. {$setc TARGET_CARBON := TRUE}
  155. {$setc TARGET_CPU_68K := FALSE}
  156. {$setc TARGET_CPU_MIPS := FALSE}
  157. {$setc TARGET_CPU_SPARC := FALSE}
  158. {$setc TARGET_OS_UNIX := FALSE}
  159. {$setc TARGET_OS_WIN32 := FALSE}
  160. {$setc TARGET_RT_MAC_68881 := FALSE}
  161. {$setc TARGET_RT_MAC_CFM := FALSE}
  162. {$setc TARGET_RT_MAC_MACHO := TRUE}
  163. {$setc TYPED_FUNCTION_POINTERS := TRUE}
  164. {$setc TYPE_BOOL := FALSE}
  165. {$setc TYPE_EXTENDED := FALSE}
  166. {$setc TYPE_LONGLONG := TRUE}
  167. uses MacTypes,Components,Dialogs,Events,ImageCompression,Movies,OSUtils,QuickdrawTypes,QDOffscreen,CFDictionary;
  168. {$endc} {not MACOSALLINCLUDE}
  169. {$ifc TARGET_OS_MAC}
  170. {$ALIGN MAC68K}
  171. { QuickTime is not available to 64-bit clients }
  172. {$ifc not TARGET_CPU_64}
  173. {
  174. The following GX types were previously in GXTypes.h, but that header
  175. is not available in any Mac OS X framework.
  176. }
  177. type
  178. gxPoint = record
  179. x: Fixed;
  180. y: Fixed;
  181. end;
  182. type
  183. gxPathPtr = ^gxPath;
  184. gxPath = record
  185. vectors: SIGNEDLONG;
  186. controlBits: array [0..0] of SIGNEDLONG;
  187. vector: array [0..0] of gxPoint;
  188. end;
  189. type
  190. gxPathsPtr = ^gxPaths;
  191. gxPaths = record
  192. contours: SIGNEDLONG;
  193. contour: array [0..0] of gxPath;
  194. end;
  195. { codec capabilities flags }
  196. const
  197. codecCanScale = 1 shl 0;
  198. codecCanMask = 1 shl 1;
  199. codecCanMatte = 1 shl 2;
  200. codecCanTransform = 1 shl 3;
  201. codecCanTransferMode = 1 shl 4;
  202. codecCanCopyPrev = 1 shl 5;
  203. codecCanSpool = 1 shl 6;
  204. codecCanClipVertical = 1 shl 7;
  205. codecCanClipRectangular = 1 shl 8;
  206. codecCanRemapColor = 1 shl 9;
  207. codecCanFastDither = 1 shl 10;
  208. codecCanSrcExtract = 1 shl 11;
  209. codecCanCopyPrevComp = 1 shl 12;
  210. codecCanAsync = 1 shl 13;
  211. codecCanMakeMask = 1 shl 14;
  212. codecCanShift = 1 shl 15;
  213. codecCanAsyncWhen = 1 shl 16;
  214. codecCanShieldCursor = 1 shl 17;
  215. codecCanManagePrevBuffer = 1 shl 18;
  216. codecHasVolatileBuffer = 1 shl 19; { codec requires redraw after window movement }
  217. codecWantsRegionMask = 1 shl 20;
  218. codecImageBufferIsOnScreen = 1 shl 21; { old def of codec using overlay surface, = ( codecIsDirectToScreenOnly | codecUsesOverlaySurface | codecImageBufferIsOverlaySurface | codecSrcMustBeImageBuffer ) }
  219. codecWantsDestinationPixels = 1 shl 22;
  220. codecWantsSpecialScaling = 1 shl 23;
  221. codecHandlesInputs = 1 shl 24;
  222. codecCanDoIndirectSurface = 1 shl 25; { codec can handle indirect surface (GDI) }
  223. codecIsSequenceSensitive = 1 shl 26;
  224. codecRequiresOffscreen = 1 shl 27;
  225. codecRequiresMaskBits = 1 shl 28;
  226. codecCanRemapResolution = 1 shl 29;
  227. codecIsDirectToScreenOnly = 1 shl 30; { codec can only decompress data to the screen }
  228. codecCanLockSurface = 1 shl 31; { codec can lock destination surface, icm doesn't lock for you }
  229. { codec capabilities flags2 }
  230. const
  231. codecUsesOverlaySurface = 1 shl 0; { codec uses overlay surface }
  232. codecImageBufferIsOverlaySurface = 1 shl 1; { codec image buffer is overlay surface, the bits in the buffer are on the screen }
  233. codecSrcMustBeImageBuffer = 1 shl 2; { codec can only source data from an image buffer }
  234. codecImageBufferIsInAGPMemory = 1 shl 4; { codec image buffer is in AGP space, byte writes are OK }
  235. codecImageBufferIsInPCIMemory = 1 shl 5; { codec image buffer is across a PCI bus; byte writes are bad }
  236. codecImageBufferMemoryFlagsValid = 1 shl 6; { set by ImageCodecNewImageBufferMemory/NewImageGWorld to indicate that it set the AGP/PCI flags (supported in QuickTime 6.0 and later) }
  237. codecDrawsHigherQualityScaled = 1 shl 7; { codec will draw higher-quality image if it performs scaling (eg, wipe effect with border) }
  238. codecSupportsOutOfOrderDisplayTimes = 1 shl 8; { codec supports frames queued in one order for display in a different order, eg, IPB content }
  239. codecSupportsScheduledBackwardsPlaybackWithDifferenceFrames = 1 shl 9; { codec can use additional buffers to minimise redecoding during backwards playback }
  240. type
  241. CodecCapabilitiesPtr = ^CodecCapabilities;
  242. CodecCapabilities = record
  243. flags: SIGNEDLONG;
  244. wantedPixelSize: SInt16;
  245. extendWidth: SInt16;
  246. extendHeight: SInt16;
  247. bandMin: SInt16;
  248. bandInc: SInt16;
  249. pad: SInt16;
  250. time: UNSIGNEDLONG;
  251. flags2: SIGNEDLONG; { field new in QuickTime 4.0 }
  252. end;
  253. { codec condition flags }
  254. const
  255. codecConditionFirstBand = 1 shl 0;
  256. codecConditionLastBand = 1 shl 1;
  257. codecConditionFirstFrame = 1 shl 2;
  258. codecConditionNewDepth = 1 shl 3;
  259. codecConditionNewTransform = 1 shl 4;
  260. codecConditionNewSrcRect = 1 shl 5;
  261. codecConditionNewMask = 1 shl 6;
  262. codecConditionNewMatte = 1 shl 7;
  263. codecConditionNewTransferMode = 1 shl 8;
  264. codecConditionNewClut = 1 shl 9;
  265. codecConditionNewAccuracy = 1 shl 10;
  266. codecConditionNewDestination = 1 shl 11;
  267. codecConditionFirstScreen = 1 shl 12;
  268. codecConditionDoCursor = 1 shl 13;
  269. codecConditionCatchUpDiff = 1 shl 14;
  270. codecConditionMaskMayBeChanged = 1 shl 15;
  271. codecConditionToBuffer = 1 shl 16;
  272. codecConditionCodecChangedMask = 1 shl 31;
  273. const
  274. codecInfoResourceType = FourCharCode('cdci'); { codec info resource type }
  275. codecInterfaceVersion = 2; { high word returned in component GetVersion }
  276. type
  277. CDSequenceDataSourceQueueEntry = record
  278. nextBusy: UnivPtr;
  279. descSeed: SIGNEDLONG;
  280. dataDesc: Handle;
  281. data: UnivPtr;
  282. dataSize: SIGNEDLONG;
  283. useCount: SIGNEDLONG;
  284. frameTime: TimeValue;
  285. frameDuration: TimeValue;
  286. timeScale: TimeValue;
  287. end;
  288. CDSequenceDataSourceQueueEntryPtr = ^CDSequenceDataSourceQueueEntry;
  289. type
  290. CDSequenceDataSource = record
  291. recordSize: SIGNEDLONG;
  292. next: UnivPtr;
  293. seqID: ImageSequence;
  294. sourceID: ImageSequenceDataSource;
  295. sourceType: OSType;
  296. sourceInputNumber: SIGNEDLONG;
  297. dataPtr: UnivPtr;
  298. dataDescription: Handle;
  299. changeSeed: SIGNEDLONG;
  300. transferProc: ICMConvertDataFormatUPP;
  301. transferRefcon: UnivPtr;
  302. dataSize: SIGNEDLONG;
  303. { fields available in QT 3 and later }
  304. dataQueue: QHdrPtr; { queue of CDSequenceDataSourceQueueEntry structures}
  305. originalDataPtr: UnivPtr;
  306. originalDataSize: SIGNEDLONG;
  307. originalDataDescription: Handle;
  308. originalDataDescriptionSeed: SIGNEDLONG;
  309. end;
  310. CDSequenceDataSourcePtr = ^CDSequenceDataSource;
  311. type
  312. ICMFrameTimeInfo = record
  313. startTime: wide;
  314. scale: SIGNEDLONG;
  315. duration: SIGNEDLONG;
  316. end;
  317. ICMFrameTimeInfoPtr = ^ICMFrameTimeInfo;
  318. type
  319. CodecCompressParams = record
  320. sequenceID: ImageSequence; { precompress,bandcompress }
  321. imageDescription: ImageDescriptionHandle; { precompress,bandcompress }
  322. data: Ptr;
  323. bufferSize: SIGNEDLONG;
  324. frameNumber: SIGNEDLONG;
  325. startLine: SIGNEDLONG;
  326. stopLine: SIGNEDLONG;
  327. conditionFlags: SIGNEDLONG;
  328. callerFlags: CodecFlags;
  329. capabilities: CodecCapabilitiesPtr; { precompress,bandcompress }
  330. progressProcRecord: ICMProgressProcRecord;
  331. completionProcRecord: ICMCompletionProcRecord;
  332. flushProcRecord: ICMFlushProcRecord;
  333. srcPixMap: PixMap; { precompress,bandcompress }
  334. prevPixMap: PixMap;
  335. spatialQuality: CodecQ;
  336. temporalQuality: CodecQ;
  337. similarity: Fixed;
  338. dataRateParams: DataRateParamsPtr;
  339. reserved: SIGNEDLONG;
  340. { The following fields only exist for QuickTime 2.1 and greater }
  341. majorSourceChangeSeed: UInt16;
  342. minorSourceChangeSeed: UInt16;
  343. sourceData: CDSequenceDataSourcePtr;
  344. { The following fields only exist for QuickTime 2.5 and greater }
  345. preferredPacketSizeInBytes: SIGNEDLONG;
  346. { The following fields only exist for QuickTime 3.0 and greater }
  347. requestedBufferWidth: SIGNEDLONG; { must set codecWantsSpecialScaling to indicate this field is valid}
  348. requestedBufferHeight: SIGNEDLONG; { must set codecWantsSpecialScaling to indicate this field is valid}
  349. { The following fields only exist for QuickTime 4.0 and greater }
  350. wantedSourcePixelType: OSType;
  351. { The following fields only exist for QuickTime 5.0 and greater }
  352. compressedDataSize: SIGNEDLONG; { if nonzero, this overrides (*imageDescription)->dataSize}
  353. taskWeight: UInt32; { preferred weight for MP tasks implementing this operation}
  354. taskName: OSType; { preferred name (type) for MP tasks implementing this operation}
  355. end;
  356. type
  357. CodecDecompressParamsPtr = ^CodecDecompressParams;
  358. CodecDecompressParams = record
  359. sequenceID: ImageSequence; { predecompress,banddecompress }
  360. imageDescription: ImageDescriptionHandle; { predecompress,banddecompress }
  361. data: Ptr;
  362. bufferSize: SIGNEDLONG;
  363. frameNumber: SIGNEDLONG;
  364. startLine: SIGNEDLONG;
  365. stopLine: SIGNEDLONG;
  366. conditionFlags: SIGNEDLONG;
  367. callerFlags: CodecFlags;
  368. capabilities: CodecCapabilitiesPtr; { predecompress,banddecompress }
  369. progressProcRecord: ICMProgressProcRecord;
  370. completionProcRecord: ICMCompletionProcRecord;
  371. dataProcRecord: ICMDataProcRecord;
  372. port: CGrafPtr; { predecompress,banddecompress }
  373. dstPixMap: PixMap; { predecompress,banddecompress }
  374. maskBits: BitMapPtr;
  375. mattePixMap: PixMapPtr;
  376. srcRect: Rect; { predecompress,banddecompress }
  377. matrix: MatrixRecordPtr; { predecompress,banddecompress }
  378. accuracy: CodecQ; { predecompress,banddecompress }
  379. transferMode: SInt16; { predecompress,banddecompress }
  380. frameTime: ICMFrameTimePtr; { banddecompress }
  381. reserved: array [0..0] of SIGNEDLONG;
  382. { The following fields only exist for QuickTime 2.0 and greater }
  383. matrixFlags: SInt8; { high bit set if 2x resize }
  384. matrixType: SInt8;
  385. dstRect: Rect; { only valid for simple transforms }
  386. { The following fields only exist for QuickTime 2.1 and greater }
  387. majorSourceChangeSeed: UInt16;
  388. minorSourceChangeSeed: UInt16;
  389. sourceData: CDSequenceDataSourcePtr;
  390. maskRegion: RgnHandle;
  391. { The following fields only exist for QuickTime 2.5 and greater }
  392. wantedDestinationPixelTypes: OSTypeHandle; { Handle to 0-terminated list of OSTypes }
  393. screenFloodMethod: SIGNEDLONG;
  394. screenFloodValue: SIGNEDLONG;
  395. preferredOffscreenPixelSize: SInt16;
  396. { The following fields only exist for QuickTime 3.0 and greater }
  397. syncFrameTime: ICMFrameTimeInfoPtr; { banddecompress }
  398. needUpdateOnTimeChange: Boolean; { banddecompress }
  399. enableBlackLining: Boolean;
  400. needUpdateOnSourceChange: Boolean; { band decompress }
  401. pad: Boolean;
  402. unused: SIGNEDLONG;
  403. finalDestinationPort: CGrafPtr;
  404. requestedBufferWidth: SIGNEDLONG; { must set codecWantsSpecialScaling to indicate this field is valid}
  405. requestedBufferHeight: SIGNEDLONG; { must set codecWantsSpecialScaling to indicate this field is valid}
  406. { The following fields only exist for QuickTime 4.0 and greater }
  407. displayableAreaOfRequestedBuffer: Rect; { set in predecompress}
  408. requestedSingleField: Boolean;
  409. needUpdateOnNextIdle: Boolean;
  410. pad2: array [0..1] of Boolean;
  411. bufferGammaLevel: Fixed;
  412. { The following fields only exist for QuickTime 5.0 and greater }
  413. taskWeight: UInt32; { preferred weight for MP tasks implementing this operation}
  414. taskName: OSType; { preferred name (type) for MP tasks implementing this operation}
  415. { The following fields only exist for QuickTime 6.0 and greater }
  416. pad3: Boolean;
  417. destinationBufferMemoryPreference: UInt8; { a codec's PreDecompress/Preflight call can set this to express a preference about what kind of memory its destination buffer should go into. no guarantees.}
  418. codecBufferMemoryPreference: UInt8; { may indicate preferred kind of memory that NewImageGWorld/NewImageBufferMemory should create its buffer in, if applicable.}
  419. onlyUseCodecIfItIsInUserPreferredCodecList: Boolean; { set to prevent this codec from being used unless it is in the userPreferredCodec list}
  420. mediaContextID: QTMediaContextID;
  421. { The following fields only exist for QuickTime 6.5 and greater }
  422. deinterlaceRequest: UInt8; { set by the ICM before PreDecompress/Preflight }
  423. deinterlaceAnswer: UInt8; { codec should set this in PreDecompress/Preflight if it will satisfy the deinterlaceRequest }
  424. { The following fields only exist for QuickTime 7.0 and greater }
  425. pad4: array[0..1] of UInt8;
  426. reserved2: SIGNEDLONG;
  427. reserved3: UInt32;
  428. reserved4: SIGNEDLONG;
  429. reserved5: UnivPtr;
  430. reserved6: UnivPtr;
  431. reserved7: UnivPtr;
  432. reserved8: UnivPtr;
  433. end;
  434. const
  435. matrixFlagScale2x = 1 shl 7;
  436. matrixFlagScale1x = 1 shl 6;
  437. matrixFlagScaleHalf = 1 shl 5;
  438. const
  439. kScreenFloodMethodNone = 0;
  440. kScreenFloodMethodKeyColor = 1;
  441. kScreenFloodMethodAlpha = 2;
  442. const
  443. kFlushLastQueuedFrame = 0;
  444. kFlushFirstQueuedFrame = 1;
  445. const
  446. kNewImageGWorldErase = 1 shl 0;
  447. { values for destinationBufferMemoryPreference and codecBufferMemoryPreference }
  448. const
  449. kICMImageBufferNoPreference = 0;
  450. kICMImageBufferPreferMainMemory = 1;
  451. kICMImageBufferPreferVideoMemory = 2;
  452. { values for deinterlaceRequest and deinterlaceAnswer }
  453. const
  454. kICMNoDeinterlacing = 0;
  455. kICMDeinterlaceFields = 1;
  456. type
  457. ImageCodecTimeTriggerProcPtr = procedure( refcon: UnivPtr );
  458. ImageCodecDrawBandCompleteProcPtr = procedure( refcon: UnivPtr; drawBandResult: ComponentResult; drawBandCompleteFlags: UInt32 );
  459. ImageCodecTimeTriggerUPP = ImageCodecTimeTriggerProcPtr;
  460. ImageCodecDrawBandCompleteUPP = ImageCodecDrawBandCompleteProcPtr;
  461. {
  462. * NewImageCodecTimeTriggerUPP()
  463. *
  464. * Availability:
  465. * Mac OS X: in version 10.0 and later in QuickTime.framework
  466. * CarbonLib: in CarbonLib 1.0.2 and later
  467. * Non-Carbon CFM: available as macro/inline
  468. }
  469. function NewImageCodecTimeTriggerUPP( userRoutine: ImageCodecTimeTriggerProcPtr ): ImageCodecTimeTriggerUPP; external name '_NewImageCodecTimeTriggerUPP';
  470. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  471. {
  472. * NewImageCodecDrawBandCompleteUPP()
  473. *
  474. * Availability:
  475. * Mac OS X: in version 10.0 and later in QuickTime.framework
  476. * CarbonLib: in CarbonLib 1.3 and later
  477. * Non-Carbon CFM: available as macro/inline
  478. }
  479. function NewImageCodecDrawBandCompleteUPP( userRoutine: ImageCodecDrawBandCompleteProcPtr ): ImageCodecDrawBandCompleteUPP; external name '_NewImageCodecDrawBandCompleteUPP';
  480. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  481. {
  482. * DisposeImageCodecTimeTriggerUPP()
  483. *
  484. * Availability:
  485. * Mac OS X: in version 10.0 and later in QuickTime.framework
  486. * CarbonLib: in CarbonLib 1.0.2 and later
  487. * Non-Carbon CFM: available as macro/inline
  488. }
  489. procedure DisposeImageCodecTimeTriggerUPP( userUPP: ImageCodecTimeTriggerUPP ); external name '_DisposeImageCodecTimeTriggerUPP';
  490. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  491. {
  492. * DisposeImageCodecDrawBandCompleteUPP()
  493. *
  494. * Availability:
  495. * Mac OS X: in version 10.0 and later in QuickTime.framework
  496. * CarbonLib: in CarbonLib 1.3 and later
  497. * Non-Carbon CFM: available as macro/inline
  498. }
  499. procedure DisposeImageCodecDrawBandCompleteUPP( userUPP: ImageCodecDrawBandCompleteUPP ); external name '_DisposeImageCodecDrawBandCompleteUPP';
  500. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  501. {
  502. * InvokeImageCodecTimeTriggerUPP()
  503. *
  504. * Availability:
  505. * Mac OS X: in version 10.0 and later in QuickTime.framework
  506. * CarbonLib: in CarbonLib 1.0.2 and later
  507. * Non-Carbon CFM: available as macro/inline
  508. }
  509. procedure InvokeImageCodecTimeTriggerUPP( refcon: UnivPtr; userUPP: ImageCodecTimeTriggerUPP ); external name '_InvokeImageCodecTimeTriggerUPP';
  510. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  511. {
  512. * InvokeImageCodecDrawBandCompleteUPP()
  513. *
  514. * Availability:
  515. * Mac OS X: in version 10.0 and later in QuickTime.framework
  516. * CarbonLib: in CarbonLib 1.3 and later
  517. * Non-Carbon CFM: available as macro/inline
  518. }
  519. procedure InvokeImageCodecDrawBandCompleteUPP( refcon: UnivPtr; drawBandResult: ComponentResult; drawBandCompleteFlags: UInt32; userUPP: ImageCodecDrawBandCompleteUPP ); external name '_InvokeImageCodecDrawBandCompleteUPP';
  520. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  521. type
  522. ImageSubCodecDecompressCapabilitiesPtr = ^ImageSubCodecDecompressCapabilities;
  523. ImageSubCodecDecompressCapabilities = record
  524. recordSize: SIGNEDLONG; { sizeof(ImageSubCodecDecompressCapabilities)}
  525. decompressRecordSize: SIGNEDLONG; { size of your codec's decompress record}
  526. canAsync: Boolean; { default true}
  527. pad0: UInt8;
  528. { The following field only exists for QuickTime 4.1 and greater }
  529. suggestedQueueSize: UInt16;
  530. { The following field only exists for QuickTime 4.0 and greater }
  531. canProvideTrigger: Boolean;
  532. { The following fields only exist for QuickTime 5.0 and greater }
  533. subCodecFlushesScreen: Boolean; { only used on Mac OS X}
  534. subCodecCallsDrawBandComplete: Boolean;
  535. pad2: array[0..1] of UInt8;
  536. { The following fields only exist for QuickTime 5.0.1 and greater }
  537. isChildCodec: Boolean; { set by base codec before calling Initialize}
  538. reserved1: UInt8;
  539. pad4: array[0..1] of UInt8;
  540. { The following fields only exist for QuickTime 7.0 and greater }
  541. subCodecIsMultiBufferAware: Boolean; { set if subcodec always draws using ImageSubCodecDecompressRecord.baseAddr/rowBytes passed to ImageCodecDrawBand, and always writes every pixel in the buffer}
  542. subCodecSupportsOutOfOrderDisplayTimes: Boolean;
  543. subCodecSupportsScheduledBackwardsPlaybackWithDifferenceFrames: Boolean;
  544. subCodecNeedsHelpReportingNonDisplayableFrames: Boolean;
  545. baseCodecShouldCallDecodeBandForAllFrames: Boolean;
  546. pad5: array[0..1] of UInt8;
  547. subCodecSupportsDrawInDecodeOrder: Boolean; { indicates that it's okay for the subcodec to get a single DrawBand call for each frame in decode order even when frames need reordering. (This will only happen when other circumstances allow it.)}
  548. subCodecSupportsDecodeSmoothing: Boolean; { Frame-reordering subcodecs should set this to indicate that they can safely decode a non-droppable frame before drawing the previous non-droppable frame. This enables smoother playback in GWorlds.}
  549. pad6: array[0..3] of UInt8;
  550. end;
  551. const
  552. kCodecFrameTypeUnknown = 0;
  553. kCodecFrameTypeKey = 1;
  554. kCodecFrameTypeDifference = 2;
  555. kCodecFrameTypeDroppableDifference = 3;
  556. type
  557. ImageSubCodecDecompressRecordPtr = ^ImageSubCodecDecompressRecord;
  558. ImageSubCodecDecompressRecord = record
  559. baseAddr: Ptr;
  560. rowBytes: SIGNEDLONG;
  561. codecData: Ptr;
  562. progressProcRecord: ICMProgressProcRecord;
  563. dataProcRecord: ICMDataProcRecord;
  564. userDecompressRecord: UnivPtr; { pointer to codec-specific per-band data}
  565. frameType: UInt8;
  566. inhibitMP: Boolean; { set this in BeginBand to tell the base decompressor not to call DrawBand from an MP task for this frame. (Only has any effect for MP-capable subcodecs. New in QuickTime 5.0.)}
  567. pad2: array[0..11] of UInt8;
  568. priv: array[0..1] of SIGNEDLONG;
  569. { The following fields only exist for QuickTime 5.0 and greater }
  570. drawBandCompleteUPP: ImageCodecDrawBandCompleteUPP; { only used if subcodec set subCodecCallsDrawBandComplete; if drawBandCompleteUPP is non-nil, codec must call it when a frame is finished, but may return from DrawBand before the frame is finished. }
  571. drawBandCompleteRefCon: UnivPtr; { Note: do not call drawBandCompleteUPP directly from a hardware interrupt; instead, use DTInstall to run a function at deferred task time, and call drawBandCompleteUPP from that. }
  572. { The following fields only exist for QuickTime 7.0 and greater }
  573. reserved1: UnivPtr;
  574. reserved2: SIGNEDLONG;
  575. reserved3: SIGNEDLONG;
  576. end;
  577. {
  578. These data structures are used by code that wants to pass planar pixmap
  579. information around.
  580. The structure below gives the basic idea of what is being done.
  581. Normal instances of code will use a fixed number of planes (eg YUV420 uses
  582. three planes, Y, U and V). Each such code instance will define its own
  583. version of the PlanarPixMapInfo struct counting the number of planes it
  584. needs along with defining constants that specify the meanings of each
  585. plane.
  586. }
  587. type
  588. PlanarComponentInfo = record
  589. offset: SInt32;
  590. rowBytes: UInt32;
  591. end;
  592. type
  593. PlanarPixMapInfoPtr = ^PlanarPixMapInfo;
  594. PlanarPixMapInfo = record
  595. componentInfo: array [0..0] of PlanarComponentInfo;
  596. end;
  597. type
  598. PlanarPixmapInfoSorensonYUV9Ptr = ^PlanarPixmapInfoSorensonYUV9;
  599. PlanarPixmapInfoSorensonYUV9 = record
  600. componentInfoY: PlanarComponentInfo;
  601. componentInfoU: PlanarComponentInfo;
  602. componentInfoV: PlanarComponentInfo;
  603. end;
  604. type
  605. PlanarPixmapInfoYUV420Ptr = ^PlanarPixmapInfoYUV420;
  606. PlanarPixmapInfoYUV420 = record
  607. componentInfoY: PlanarComponentInfo;
  608. componentInfoCb: PlanarComponentInfo;
  609. componentInfoCr: PlanarComponentInfo;
  610. end;
  611. const
  612. codecSuggestedBufferSentinel = FourCharCode('sent'); { codec public resource containing suggested data pattern to put past end of data buffer }
  613. { name of parameters or effect -- placed in root container, required }
  614. const
  615. kParameterTitleName = FourCharCode('name');
  616. kParameterTitleID = 1;
  617. { codec sub-type of parameters or effect -- placed in root container, required }
  618. const
  619. kParameterWhatName = FourCharCode('what');
  620. kParameterWhatID = 1;
  621. { effect version -- placed in root container, optional, but recommended }
  622. const
  623. kParameterVersionName = FourCharCode('vers');
  624. kParameterVersionID = 1;
  625. { is effect repeatable -- placed in root container, optional, default is TRUE}
  626. const
  627. kParameterRepeatableName = FourCharCode('pete');
  628. kParameterRepeatableID = 1;
  629. const
  630. kParameterRepeatableTrue = 1;
  631. kParameterRepeatableFalse = 0;
  632. { substitution codec in case effect is missing -- placed in root container, recommended }
  633. const
  634. kParameterAlternateCodecName = FourCharCode('subs');
  635. kParameterAlternateCodecID = 1;
  636. { maximum number of sources -- placed in root container, required }
  637. const
  638. kParameterSourceCountName = FourCharCode('srcs');
  639. kParameterSourceCountID = 1;
  640. { EFFECT CLASSES}
  641. {
  642. The effect major class defines the major grouping of the effect.
  643. Major classes are defined only by Apple and are not extendable by third
  644. parties. Major classes are used for filtering of the effect list by
  645. applications, but do not define what UI sub-group may or may not be
  646. presented to the user. For example, the major class may be a transition,
  647. but the minor class may be a wipe.
  648. }
  649. {
  650. Effects that fail to include a
  651. kEffectMajorClassType will be classified as kMiscMajorClass.
  652. }
  653. const
  654. kEffectMajorClassType = FourCharCode('clsa');
  655. kEffectMajorClassID = 1;
  656. const
  657. kGeneratorMajorClass = FourCharCode('genr'); { zero source effects}
  658. kFilterMajorClass = FourCharCode('filt'); { one source effects}
  659. kTransitionMajorClass = FourCharCode('tran'); { multisource morph effects }
  660. kCompositorMajorClass = FourCharCode('comp'); { multisource layer effects}
  661. kMiscMajorClass = FourCharCode('misc'); { all other effects}
  662. {
  663. The effect minor class defines the grouping of effects for the purposes
  664. of UI. Apple defines a set of minor classes and will extend it over
  665. time. Apple also provides strings within the UI for minor classes
  666. that it defines. Third party developers may either classify
  667. their effects as a type defined by Apple, or may define their own
  668. minor class. Effects which define a minor class of their own
  669. must also then supply a kEffectMinorClassNameType atom.
  670. }
  671. {
  672. If a kEffectMinorClassNameType atom is present, but
  673. the minor type is one defined by Apple, the Apple supplied
  674. string will be used in the UI.
  675. }
  676. {
  677. Effects that fail to supply a kEffectMinorClassType will be
  678. classified as kMiscMinorClass.
  679. }
  680. const
  681. kEffectMinorClassType = FourCharCode('clsi');
  682. kEffectMinorClassID = 1;
  683. kEffectMinorClassNameType = FourCharCode('clsn');
  684. kEffectMinorClassNameID = 1;
  685. const
  686. kGeneratorMinorClass = FourCharCode('genr'); { "Generators"}
  687. kRenderMinorClass = FourCharCode('rend'); { "Render"}
  688. kFilterMinorClass = FourCharCode('filt'); { "Filters"}
  689. kArtisticMinorClass = FourCharCode('arts'); { "Artistic}
  690. kBlurMinorClass = FourCharCode('blur'); { "Blur"}
  691. kSharpenMinorClass = FourCharCode('shrp'); { "Sharpen"}
  692. kDistortMinorClass = FourCharCode('dist'); { "Distort"}
  693. kNoiseMinorClass = FourCharCode('nois'); { "Noise"}
  694. kAdjustmentMinorClass = FourCharCode('adst'); { "Adjustments"}
  695. kTransitionMinorClass = FourCharCode('tran'); { "Transitions"}
  696. kWipeMinorClass = FourCharCode('wipe'); { "Wipes"}
  697. k3DMinorClass = FourCharCode('pzre'); { "3D Transitions"}
  698. kCompositorMinorClass = FourCharCode('comp'); { "Compositors"}
  699. kEffectsMinorClass = FourCharCode('fxfx'); { "Special Effects"}
  700. kMiscMinorClass = FourCharCode('misc'); { "Miscellaneous"}
  701. {
  702. Effects can define a number of "preset" values which will be presented to the user
  703. in a simplified UI. Each preset is an atom within the parameter description list
  704. and must have an atom ID from 1 going up sequentially. Inside of this atom are three other
  705. atoms containing:
  706. 1) the name of the preset as a Pascal string
  707. 2) a preview picture for the preset, 86 x 64 pixels in size
  708. 3) the ENTIRE set of parameter values needed to create a sample of this preset.
  709. }
  710. const
  711. kEffectPresetType = FourCharCode('peff');
  712. kPresetNameType = FourCharCode('pnam');
  713. kPresetNameID = 1;
  714. kPresetPreviewPictureType = FourCharCode('ppct');
  715. kPresetPreviewPictureID = 1;
  716. kPresetSettingsType = FourCharCode('psst');
  717. kPresetSettingsID = 1;
  718. const
  719. kParameterDependencyName = FourCharCode('deep');
  720. kParameterDependencyID = 1;
  721. const
  722. kParameterListDependsUponColorProfiles = FourCharCode('prof');
  723. kParameterListDependsUponFonts = FourCharCode('font');
  724. type
  725. ParameterDependancyRecordPtr = ^ParameterDependancyRecord;
  726. ParameterDependancyRecord = record
  727. dependCount: SIGNEDLONG;
  728. depends: array [0..0] of OSType;
  729. end;
  730. {
  731. enumeration list in container -- placed in root container, optional unless used by a
  732. parameter in the list
  733. }
  734. const
  735. kParameterEnumList = FourCharCode('enum');
  736. type
  737. EnumValuePairPtr = ^EnumValuePair;
  738. EnumValuePair = record
  739. value: SIGNEDLONG;
  740. name: Str255;
  741. end;
  742. type
  743. EnumListRecordPtr = ^EnumListRecord;
  744. EnumListRecord = record
  745. enumCount: SIGNEDLONG; { number of enumeration items to follow}
  746. values: array [0..0] of EnumValuePair; { values and names for them, packed }
  747. end;
  748. { atom type of parameter}
  749. const
  750. kParameterAtomTypeAndID = FourCharCode('type');
  751. const
  752. kNoAtom = FourCharCode('none'); { atom type for no data got/set}
  753. kAtomNoFlags = $00000000;
  754. kAtomNotInterpolated = $00000001; { atom can never be interpolated}
  755. kAtomInterpolateIsOptional = $00000002; { atom can be interpolated, but it is an advanced user operation}
  756. kAtomMayBeIndexed = $00000004; { more than one value of atom can exist with accending IDs (ie, lists of colors)}
  757. type
  758. ParameterAtomTypeAndIDPtr = ^ParameterAtomTypeAndID;
  759. ParameterAtomTypeAndID = record
  760. atomType: QTAtomType; { type of atom this data comes from/goes into}
  761. atomID: QTAtomID; { ID of atom this data comes from/goes into}
  762. atomFlags: SIGNEDLONG; { options for this atom}
  763. atomName: Str255; { name of this value type}
  764. end;
  765. { optional specification of mapping between parameters and properties}
  766. const
  767. kParameterProperty = FourCharCode('prop');
  768. type
  769. ParameterProperty = record
  770. propertyClass: OSType; { class to set for this property (0 for default which is specified by caller)}
  771. propertyID: OSType; { id to set for this property (default is the atomType)}
  772. end;
  773. { data type of a parameter}
  774. const
  775. kParameterDataType = FourCharCode('data');
  776. const
  777. kParameterTypeDataLong = kTweenTypeLong; { integer value}
  778. kParameterTypeDataFixed = kTweenTypeFixed; { fixed point value}
  779. kParameterTypeDataRGBValue = kTweenTypeRGBColor; { RGBColor data}
  780. kParameterTypeDataDouble = kTweenTypeQTFloatDouble; { IEEE 64 bit floating point value}
  781. kParameterTypeDataText = FourCharCode('text'); { editable text item}
  782. kParameterTypeDataEnum = FourCharCode('enum'); { enumerated lookup value}
  783. kParameterTypeDataBitField = FourCharCode('bool'); { bit field value (something that holds boolean(s))}
  784. kParameterTypeDataImage = FourCharCode('imag'); { reference to an image via Picture data}
  785. type
  786. ParameterDataTypePtr = ^ParameterDataType;
  787. ParameterDataType = record
  788. dataType: OSType; { type of data this item is stored as}
  789. end;
  790. {
  791. alternate (optional) data type -- main data type always required.
  792. Must be modified or deleted when modifying main data type.
  793. Main data type must be modified when alternate is modified.
  794. }
  795. const
  796. kParameterAlternateDataType = FourCharCode('alt1');
  797. kParameterTypeDataColorValue = FourCharCode('cmlr'); { CMColor data (supported on machines with ColorSync)}
  798. kParameterTypeDataCubic = FourCharCode('cubi'); { cubic bezier(s) (no built-in support)}
  799. kParameterTypeDataNURB = FourCharCode('nurb'); { nurb(s) (no built-in support)}
  800. type
  801. ParameterAlternateDataEntryPtr = ^ParameterAlternateDataEntry;
  802. ParameterAlternateDataEntry = record
  803. dataType: OSType; { type of data this item is stored as}
  804. alternateAtom: QTAtomType; { where to store}
  805. end;
  806. type
  807. ParameterAlternateDataTypePtr = ^ParameterAlternateDataType;
  808. ParameterAlternateDataType = record
  809. numEntries: SIGNEDLONG;
  810. entries: array [0..0] of ParameterAlternateDataEntry;
  811. end;
  812. { legal values for the parameter}
  813. const
  814. kParameterDataRange = FourCharCode('rang');
  815. const
  816. kNoMinimumLongFixed = $7FFFFFFF; { ignore minimum/maxiumum values}
  817. kNoMaximumLongFixed = $80000000;
  818. kNoScaleLongFixed = 0; { don't perform any scaling of value}
  819. kNoPrecision = -1; { allow as many digits as format}
  820. { 'text'}
  821. type
  822. StringRangeRecordPtr = ^StringRangeRecord;
  823. StringRangeRecord = record
  824. maxChars: SIGNEDLONG; { maximum length of string}
  825. maxLines: SIGNEDLONG; { number of editing lines to use (1 typical, 0 to default)}
  826. end;
  827. { 'long'}
  828. type
  829. LongRangeRecordPtr = ^LongRangeRecord;
  830. LongRangeRecord = record
  831. minValue: SIGNEDLONG; { no less than this}
  832. maxValue: SIGNEDLONG; { no more than this}
  833. scaleValue: SIGNEDLONG; { muliply content by this going in, divide going out}
  834. precisionDigits: SIGNEDLONG; { # digits of precision when editing via typing}
  835. end;
  836. { 'enum'}
  837. type
  838. EnumRangeRecordPtr = ^EnumRangeRecord;
  839. EnumRangeRecord = record
  840. enumID: SIGNEDLONG; { 'enum' list in root container to search within}
  841. end;
  842. { 'fixd'}
  843. type
  844. FixedRangeRecordPtr = ^FixedRangeRecord;
  845. FixedRangeRecord = record
  846. minValue: Fixed; { no less than this}
  847. maxValue: Fixed; { no more than this}
  848. scaleValue: Fixed; { muliply content by this going in, divide going out}
  849. precisionDigits: SIGNEDLONG; { # digits of precision when editing via typing}
  850. end;
  851. { 'doub'}
  852. {$push}
  853. {$r-}
  854. {$q-}
  855. const
  856. kNoMinimumDouble=0.0/0.0; { ignore minimum/maxiumum values }
  857. kNoMaximumDouble=0.0/0.0;
  858. {$pop}
  859. const
  860. kNoScaleDouble = 0.0; { don't perform any scaling of value }
  861. type
  862. DoubleRangeRecordPtr = ^DoubleRangeRecord;
  863. DoubleRangeRecord = record
  864. minValue: QTFloatDouble; { no less than this }
  865. maxValue: QTFloatDouble; { no more than this }
  866. scaleValue: QTFloatDouble; { muliply content by this going in, divide going out }
  867. precisionDigits: SIGNEDLONG; { # digits of precision when editing via typing }
  868. end;
  869. { 'bool' }
  870. type
  871. BooleanRangeRecordPtr = ^BooleanRangeRecord;
  872. BooleanRangeRecord = record
  873. maskValue: SIGNEDLONG; { value to mask on/off to set/clear the boolean}
  874. end;
  875. { 'rgb '}
  876. type
  877. RGBRangeRecordPtr = ^RGBRangeRecord;
  878. RGBRangeRecord = record
  879. minColor: RGBColor;
  880. maxColor: RGBColor;
  881. end;
  882. { 'imag'}
  883. const
  884. kParameterImageNoFlags = 0;
  885. kParameterImageIsPreset = 1;
  886. const
  887. kStandardPresetGroup = FourCharCode('pset');
  888. type
  889. ImageRangeRecordPtr = ^ImageRangeRecord;
  890. ImageRangeRecord = record
  891. imageFlags: SIGNEDLONG;
  892. fileType: OSType; { file type to contain the preset group (normally kStandardPresetGroup)}
  893. replacedAtoms: SIGNEDLONG; { # atoms at this level replaced by this preset group}
  894. end;
  895. { union of all of the above}
  896. type
  897. ParameterRangeRecord = record
  898. case SInt16 of
  899. 0: (
  900. longRange: LongRangeRecord;
  901. );
  902. 1: (
  903. enumRange: EnumRangeRecord;
  904. );
  905. 2: (
  906. fixedRange: FixedRangeRecord;
  907. );
  908. 3: (
  909. doubleRange: DoubleRangeRecord;
  910. );
  911. 4: (
  912. stringRange: StringRangeRecord;
  913. );
  914. 5: (
  915. booleanRange: BooleanRangeRecord;
  916. );
  917. 6: (
  918. rgbRange: RGBRangeRecord;
  919. );
  920. 7: (
  921. imageRange: ImageRangeRecord;
  922. );
  923. end;
  924. { UI behavior of a parameter}
  925. const
  926. kParameterDataBehavior = FourCharCode('ditl');
  927. const
  928. { items edited via typing}
  929. kParameterItemEditText = FourCharCode('edit'); { edit text box}
  930. kParameterItemEditLong = FourCharCode('long'); { long number editing box}
  931. kParameterItemEditFixed = FourCharCode('fixd'); { fixed point number editing box}
  932. kParameterItemEditDouble = FourCharCode('doub'); { double number editing box}
  933. { items edited via control(s)}
  934. kParameterItemPopUp = FourCharCode('popu'); { pop up value for enum types}
  935. kParameterItemRadioCluster = FourCharCode('radi'); { radio cluster for enum types}
  936. kParameterItemCheckBox = FourCharCode('chex'); { check box for booleans}
  937. kParameterItemControl = FourCharCode('cntl'); { item controlled via a standard control of some type}
  938. { special user items}
  939. kParameterItemLine = FourCharCode('line'); { line}
  940. kParameterItemColorPicker = FourCharCode('pick'); { color swatch & picker}
  941. kParameterItemGroupDivider = FourCharCode('divi'); { start of a new group of items}
  942. kParameterItemStaticText = FourCharCode('stat'); { display "parameter name" as static text}
  943. kParameterItemDragImage = FourCharCode('imag'); { allow image display, along with drag and drop}
  944. { flags valid for lines and groups}
  945. kGraphicsNoFlags = $00000000; { no options for graphics}
  946. kGraphicsFlagsGray = $00000001; { draw lines with gray}
  947. { flags valid for groups}
  948. kGroupNoFlags = $00000000; { no options for group -- may be combined with graphics options }
  949. kGroupAlignText = $00010000; { edit text items in group have the same size}
  950. kGroupSurroundBox = $00020000; { group should be surrounded with a box}
  951. kGroupMatrix = $00040000; { side-by-side arrangement of group is okay}
  952. kGroupNoName = $00080000; { name of group should not be displayed above box}
  953. { flags valid for popup/radiocluster/checkbox/control}
  954. kDisableControl = $00000001;
  955. kDisableWhenNotEqual = $00000000 + kDisableControl;
  956. kDisableWhenEqual = $00000010 + kDisableControl;
  957. kDisableWhenLessThan = $00000020 + kDisableControl;
  958. kDisableWhenGreaterThan = $00000030 + kDisableControl; { flags valid for controls}
  959. kCustomControl = $00100000; { flags valid for popups}
  960. kPopupStoreAsString = $00010000;
  961. type
  962. ControlBehaviors = record
  963. groupID: QTAtomID; { group under control of this item}
  964. controlValue: SIGNEDLONG; { control value for comparison purposes}
  965. customType: QTAtomType; { custom type identifier, for kCustomControl}
  966. customID: QTAtomID; { custom type ID, for kCustomControl}
  967. end;
  968. type
  969. ParameterDataBehaviorPtr = ^ParameterDataBehavior;
  970. ParameterDataBehavior = record
  971. behaviorType: OSType;
  972. behaviorFlags: SIGNEDLONG;
  973. case SInt16 of
  974. 0: (
  975. controls: ControlBehaviors;
  976. );
  977. end;
  978. { higher level purpose of a parameter or set of parameters}
  979. const
  980. kParameterDataUsage = FourCharCode('use ');
  981. const
  982. kParameterUsagePixels = FourCharCode('pixl');
  983. kParameterUsageRectangle = FourCharCode('rect');
  984. kParameterUsagePoint = FourCharCode('xy ');
  985. kParameterUsage3DPoint = FourCharCode('xyz ');
  986. kParameterUsageDegrees = FourCharCode('degr');
  987. kParameterUsageRadians = FourCharCode('rads');
  988. kParameterUsagePercent = FourCharCode('pcnt');
  989. kParameterUsageSeconds = FourCharCode('secs');
  990. kParameterUsageMilliseconds = FourCharCode('msec');
  991. kParameterUsageMicroseconds = FourCharCode('µsec');
  992. kParameterUsage3by3Matrix = FourCharCode('3by3');
  993. kParameterUsageCircularDegrees = FourCharCode('degc');
  994. kParameterUsageCircularRadians = FourCharCode('radc');
  995. type
  996. ParameterDataUsagePtr = ^ParameterDataUsage;
  997. ParameterDataUsage = record
  998. usageType: OSType; { higher level purpose of the data or group}
  999. end;
  1000. { default value(s) for a parameter}
  1001. const
  1002. kParameterDataDefaultItem = FourCharCode('dflt');
  1003. { atoms that help to fill in data within the info window }
  1004. kParameterInfoLongName = FourCharCode('©nam');
  1005. kParameterInfoCopyright = FourCharCode('©cpy');
  1006. kParameterInfoDescription = FourCharCode('©inf');
  1007. kParameterInfoWindowTitle = FourCharCode('©wnt');
  1008. kParameterInfoPicture = FourCharCode('©pix');
  1009. kParameterInfoManufacturer = FourCharCode('©man');
  1010. kParameterInfoIDs = 1;
  1011. { flags for ImageCodecValidateParameters }
  1012. kParameterValidationNoFlags = $00000000;
  1013. kParameterValidationFinalValidation = $00000001;
  1014. type
  1015. QTParameterValidationOptions = SIGNEDLONG;
  1016. { QTAtomTypes for atoms in image compressor settings containers}
  1017. const
  1018. kImageCodecSettingsFieldCount = FourCharCode('fiel'); { Number of fields (UInt8) }
  1019. kImageCodecSettingsFieldOrdering = FourCharCode('fdom'); { Ordering of fields (UInt8)}
  1020. kImageCodecSettingsFieldOrderingF1F2 = 1;
  1021. kImageCodecSettingsFieldOrderingF2F1 = 2;
  1022. {
  1023. * Summary:
  1024. * Additional Image Description Extensions
  1025. }
  1026. const
  1027. {
  1028. * Image description extension describing the color properties.
  1029. }
  1030. kColorInfoImageDescriptionExtension = FourCharCode('colr');
  1031. {
  1032. * Image description extension describing the pixel aspect ratio.
  1033. }
  1034. kPixelAspectRatioImageDescriptionExtension = FourCharCode('pasp'); { big-endian PixelAspectRatioImageDescriptionExtension }
  1035. {
  1036. * Image description extension describing the clean aperture.
  1037. }
  1038. kCleanApertureImageDescriptionExtension = FourCharCode('clap'); { big-endian CleanApertureImageDescriptionExtension }
  1039. {
  1040. * Specifies the offset in bytes from the start of one pixel row to
  1041. * the next. Only valid for chunky pixel formats. If present, this
  1042. * image description extension overrides other conventions for
  1043. * calculating rowBytes.
  1044. }
  1045. kQTRowBytesImageDescriptionExtension = FourCharCode('rowb'); { big-endian SInt32 }
  1046. { Color Info Image Description Extension types}
  1047. const
  1048. kVideoColorInfoImageDescriptionExtensionType = FourCharCode('nclc'); { For video color descriptions (defined below) }
  1049. kICCProfileColorInfoImageDescriptionExtensionType = FourCharCode('prof'); { For ICC Profile color descriptions (not defined here)}
  1050. { Video Color Info Image Description Extensions}
  1051. type
  1052. NCLCColorInfoImageDescriptionExtension = record
  1053. colorParamType: OSType; { Type of color parameter 'nclc' }
  1054. primaries: UInt16; { CIE 1931 xy chromaticity coordinates }
  1055. transferFunction: UInt16; { Nonlinear transfer function from RGB to ErEgEb }
  1056. matrix: UInt16; { Matrix from ErEgEb to EyEcbEcr }
  1057. end;
  1058. { Primaries}
  1059. const
  1060. kQTPrimaries_ITU_R709_2 = 1; { ITU-R BT.709-2, SMPTE 274M-1995, and SMPTE 296M-1997 }
  1061. kQTPrimaries_Unknown = 2; { Unknown }
  1062. kQTPrimaries_EBU_3213 = 5; { EBU Tech. 3213 (1981) }
  1063. kQTPrimaries_SMPTE_C = 6; { SMPTE C Primaries from SMPTE RP 145-1993 }
  1064. { Transfer Function}
  1065. const
  1066. kQTTransferFunction_ITU_R709_2 = 1; { Recommendation ITU-R BT.709-2, SMPTE 274M-1995, SMPTE 296M-1997, SMPTE 293M-1996 and SMPTE 170M-1994 }
  1067. kQTTransferFunction_Unknown = 2; { Unknown }
  1068. kQTTransferFunction_SMPTE_240M_1995 = 7; { SMPTE 240M-1995 and interim color implementation of SMPTE 274M-1995 }
  1069. { Matrix}
  1070. const
  1071. kQTMatrix_ITU_R_709_2 = 1; { Recommendation ITU-R BT.709-2 (1125/60/2:1 only), SMPTE 274M-1995 and SMPTE 296M-1997 }
  1072. kQTMatrix_Unknown = 2; { Unknown }
  1073. kQTMatrix_ITU_R_601_4 = 6; { Recommendation ITU-R BT.601-4, Recommendation ITU-R BT.470-4 System B and G, SMPTE 170M-1994 and SMPTE 293M-1996 }
  1074. kQTMatrix_SMPTE_240M_1995 = 7; { SMPTE 240M-1995 and interim color implementation of SMPTE 274M-1995 }
  1075. { Field/Frame Info Image Description (this remaps to FieldInfoImageDescriptionExtension)}
  1076. type
  1077. FieldInfoImageDescriptionExtension2Ptr = ^FieldInfoImageDescriptionExtension2;
  1078. FieldInfoImageDescriptionExtension2 = record
  1079. fields: UInt8;
  1080. detail: UInt8;
  1081. end;
  1082. const
  1083. kQTFieldsProgressiveScan = 1;
  1084. kQTFieldsInterlaced = 2;
  1085. const
  1086. kQTFieldDetailUnknown = 0;
  1087. kQTFieldDetailTemporalTopFirst = 1;
  1088. kQTFieldDetailTemporalBottomFirst = 6;
  1089. kQTFieldDetailSpatialFirstLineEarly = 9;
  1090. kQTFieldDetailSpatialFirstLineLate = 14;
  1091. { Pixel Aspect Ratio Image Description Extensions}
  1092. type
  1093. PixelAspectRatioImageDescriptionExtensionPtr = ^PixelAspectRatioImageDescriptionExtension;
  1094. PixelAspectRatioImageDescriptionExtension = record
  1095. hSpacing: UInt32; { Horizontal Spacing }
  1096. vSpacing: UInt32; { Vertical Spacing }
  1097. end;
  1098. { Clean Aperture Image Description Extensions}
  1099. type
  1100. CleanApertureImageDescriptionExtensionPtr = ^CleanApertureImageDescriptionExtension;
  1101. CleanApertureImageDescriptionExtension = record
  1102. cleanApertureWidthN: UInt32; { width of clean aperture, numerator, denominator }
  1103. cleanApertureWidthD: UInt32;
  1104. cleanApertureHeightN: UInt32; { height of clean aperture, numerator, denominator}
  1105. cleanApertureHeightD: UInt32;
  1106. horizOffN: SInt32; { horizontal offset of clean aperture center minus (width-1)/2, numerator, denominator }
  1107. horizOffD: UInt32;
  1108. vertOffN: SInt32; { vertical offset of clean aperture center minus (height-1)/2, numerator, denominator }
  1109. vertOffD: UInt32;
  1110. end;
  1111. type
  1112. ImageCodecMPDrawBandProcPtr = function( refcon: UnivPtr; var drp: ImageSubCodecDecompressRecord ): ComponentResult;
  1113. ImageCodecMPDrawBandUPP = ImageCodecMPDrawBandProcPtr;
  1114. {
  1115. * NewImageCodecMPDrawBandUPP()
  1116. *
  1117. * Availability:
  1118. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1119. * CarbonLib: in CarbonLib 1.0 and later
  1120. * Non-Carbon CFM: available as macro/inline
  1121. }
  1122. function NewImageCodecMPDrawBandUPP( userRoutine: ImageCodecMPDrawBandProcPtr ): ImageCodecMPDrawBandUPP; external name '_NewImageCodecMPDrawBandUPP';
  1123. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1124. {
  1125. * DisposeImageCodecMPDrawBandUPP()
  1126. *
  1127. * Availability:
  1128. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1129. * CarbonLib: in CarbonLib 1.0 and later
  1130. * Non-Carbon CFM: available as macro/inline
  1131. }
  1132. procedure DisposeImageCodecMPDrawBandUPP( userUPP: ImageCodecMPDrawBandUPP ); external name '_DisposeImageCodecMPDrawBandUPP';
  1133. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1134. {
  1135. * InvokeImageCodecMPDrawBandUPP()
  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: available as macro/inline
  1141. }
  1142. function InvokeImageCodecMPDrawBandUPP( refcon: UnivPtr; var drp: ImageSubCodecDecompressRecord; userUPP: ImageCodecMPDrawBandUPP ): ComponentResult; external name '_InvokeImageCodecMPDrawBandUPP';
  1143. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1144. { codec selectors 0-127 are reserved by Apple }
  1145. { codec selectors 128-191 are subtype specific }
  1146. { codec selectors 192-255 are vendor specific }
  1147. { codec selectors 256-511 are available for general use }
  1148. { codec selectors 512-1023 are reserved by Apple }
  1149. { codec selectors 1024-32767 are available for general use }
  1150. { negative selectors are reserved by the Component Manager }
  1151. {
  1152. * ImageCodecGetCodecInfo()
  1153. *
  1154. * Availability:
  1155. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1156. * CarbonLib: in CarbonLib 1.0 and later
  1157. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1158. * Windows: in qtmlClient.lib 3.0 and later
  1159. }
  1160. function ImageCodecGetCodecInfo( ci: ComponentInstance; var info: CodecInfo ): ComponentResult; external name '_ImageCodecGetCodecInfo';
  1161. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1162. {
  1163. * ImageCodecGetCompressionTime()
  1164. *
  1165. * Availability:
  1166. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1167. * CarbonLib: in CarbonLib 1.0 and later
  1168. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1169. * Windows: in qtmlClient.lib 3.0 and later
  1170. }
  1171. function ImageCodecGetCompressionTime( ci: ComponentInstance; src: PixMapHandle; const (*var*) srcRect: Rect; depth: SInt16; var spatialQuality: CodecQ; var temporalQuality: CodecQ; var time: UNSIGNEDLONG ): ComponentResult; external name '_ImageCodecGetCompressionTime';
  1172. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1173. {
  1174. * ImageCodecGetMaxCompressionSize()
  1175. *
  1176. * Availability:
  1177. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1178. * CarbonLib: in CarbonLib 1.0 and later
  1179. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1180. * Windows: in qtmlClient.lib 3.0 and later
  1181. }
  1182. function ImageCodecGetMaxCompressionSize( ci: ComponentInstance; src: PixMapHandle; const (*var*) srcRect: Rect; depth: SInt16; quality: CodecQ; var size: SIGNEDLONG ): ComponentResult; external name '_ImageCodecGetMaxCompressionSize';
  1183. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1184. {
  1185. * ImageCodecPreCompress()
  1186. *
  1187. * Availability:
  1188. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1189. * CarbonLib: in CarbonLib 1.0 and later
  1190. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1191. * Windows: in qtmlClient.lib 3.0 and later
  1192. }
  1193. function ImageCodecPreCompress( ci: ComponentInstance; var params: CodecCompressParams ): ComponentResult; external name '_ImageCodecPreCompress';
  1194. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1195. {
  1196. * ImageCodecBandCompress()
  1197. *
  1198. * Availability:
  1199. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1200. * CarbonLib: in CarbonLib 1.0 and later
  1201. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1202. * Windows: in qtmlClient.lib 3.0 and later
  1203. }
  1204. function ImageCodecBandCompress( ci: ComponentInstance; var params: CodecCompressParams ): ComponentResult; external name '_ImageCodecBandCompress';
  1205. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1206. {
  1207. * ImageCodecPreDecompress()
  1208. *
  1209. * Availability:
  1210. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1211. * CarbonLib: in CarbonLib 1.0 and later
  1212. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1213. * Windows: in qtmlClient.lib 3.0 and later
  1214. }
  1215. function ImageCodecPreDecompress( ci: ComponentInstance; var params: CodecDecompressParams ): ComponentResult; external name '_ImageCodecPreDecompress';
  1216. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1217. {
  1218. * ImageCodecBandDecompress()
  1219. *
  1220. * Availability:
  1221. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1222. * CarbonLib: in CarbonLib 1.0 and later
  1223. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1224. * Windows: in qtmlClient.lib 3.0 and later
  1225. }
  1226. function ImageCodecBandDecompress( ci: ComponentInstance; var params: CodecDecompressParams ): ComponentResult; external name '_ImageCodecBandDecompress';
  1227. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1228. {
  1229. * ImageCodecBusy()
  1230. *
  1231. * Availability:
  1232. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1233. * CarbonLib: in CarbonLib 1.0 and later
  1234. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1235. * Windows: in qtmlClient.lib 3.0 and later
  1236. }
  1237. function ImageCodecBusy( ci: ComponentInstance; seq: ImageSequence ): ComponentResult; external name '_ImageCodecBusy';
  1238. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1239. {
  1240. * ImageCodecGetCompressedImageSize()
  1241. *
  1242. * Availability:
  1243. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1244. * CarbonLib: in CarbonLib 1.0 and later
  1245. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1246. * Windows: in qtmlClient.lib 3.0 and later
  1247. }
  1248. function ImageCodecGetCompressedImageSize( ci: ComponentInstance; desc: ImageDescriptionHandle; data: Ptr; bufferSize: SIGNEDLONG; dataProc: ICMDataProcRecordPtr; var dataSize: SIGNEDLONG ): ComponentResult; external name '_ImageCodecGetCompressedImageSize';
  1249. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1250. {
  1251. * ImageCodecGetSimilarity()
  1252. *
  1253. * Availability:
  1254. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1255. * CarbonLib: in CarbonLib 1.0 and later
  1256. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1257. * Windows: in qtmlClient.lib 3.0 and later
  1258. }
  1259. function ImageCodecGetSimilarity( ci: ComponentInstance; src: PixMapHandle; const (*var*) srcRect: Rect; desc: ImageDescriptionHandle; data: Ptr; var similarity: Fixed ): ComponentResult; external name '_ImageCodecGetSimilarity';
  1260. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1261. {
  1262. * ImageCodecTrimImage()
  1263. *
  1264. * Availability:
  1265. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1266. * CarbonLib: in CarbonLib 1.0 and later
  1267. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1268. * Windows: in qtmlClient.lib 3.0 and later
  1269. }
  1270. function ImageCodecTrimImage( ci: ComponentInstance; Desc: ImageDescriptionHandle; inData: Ptr; inBufferSize: SIGNEDLONG; dataProc: ICMDataProcRecordPtr; outData: Ptr; outBufferSize: SIGNEDLONG; flushProc: ICMFlushProcRecordPtr; var trimRect: Rect; progressProc: ICMProgressProcRecordPtr ): ComponentResult; external name '_ImageCodecTrimImage';
  1271. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1272. {
  1273. * ImageCodecRequestSettings()
  1274. *
  1275. * Availability:
  1276. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1277. * CarbonLib: in CarbonLib 1.0 and later
  1278. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1279. * Windows: in qtmlClient.lib 3.0 and later
  1280. }
  1281. function ImageCodecRequestSettings( ci: ComponentInstance; settings: Handle; var rp: Rect; filterProc: ModalFilterUPP ): ComponentResult; external name '_ImageCodecRequestSettings';
  1282. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1283. {
  1284. * ImageCodecGetSettings()
  1285. *
  1286. * Availability:
  1287. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1288. * CarbonLib: in CarbonLib 1.0 and later
  1289. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1290. * Windows: in qtmlClient.lib 3.0 and later
  1291. }
  1292. function ImageCodecGetSettings( ci: ComponentInstance; settings: Handle ): ComponentResult; external name '_ImageCodecGetSettings';
  1293. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1294. {
  1295. * ImageCodecSetSettings()
  1296. *
  1297. * Availability:
  1298. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1299. * CarbonLib: in CarbonLib 1.0 and later
  1300. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1301. * Windows: in qtmlClient.lib 3.0 and later
  1302. }
  1303. function ImageCodecSetSettings( ci: ComponentInstance; settings: Handle ): ComponentResult; external name '_ImageCodecSetSettings';
  1304. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1305. {
  1306. * ImageCodecFlush()
  1307. *
  1308. * Availability:
  1309. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1310. * CarbonLib: in CarbonLib 1.0 and later
  1311. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1312. * Windows: in qtmlClient.lib 3.0 and later
  1313. }
  1314. function ImageCodecFlush( ci: ComponentInstance ): ComponentResult; external name '_ImageCodecFlush';
  1315. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1316. {
  1317. * ImageCodecSetTimeCode()
  1318. *
  1319. * Availability:
  1320. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1321. * CarbonLib: in CarbonLib 1.0 and later
  1322. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1323. * Windows: in qtmlClient.lib 3.0 and later
  1324. }
  1325. function ImageCodecSetTimeCode( ci: ComponentInstance; timeCodeFormat: UnivPtr; timeCodeTime: UnivPtr ): ComponentResult; external name '_ImageCodecSetTimeCode';
  1326. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1327. {
  1328. * ImageCodecIsImageDescriptionEquivalent()
  1329. *
  1330. * Availability:
  1331. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1332. * CarbonLib: in CarbonLib 1.0 and later
  1333. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1334. * Windows: in qtmlClient.lib 3.0 and later
  1335. }
  1336. function ImageCodecIsImageDescriptionEquivalent( ci: ComponentInstance; newDesc: ImageDescriptionHandle; var equivalent: Boolean ): ComponentResult; external name '_ImageCodecIsImageDescriptionEquivalent';
  1337. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1338. {
  1339. * ImageCodecNewMemory()
  1340. *
  1341. * Availability:
  1342. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1343. * CarbonLib: in CarbonLib 1.0 and later
  1344. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1345. * Windows: in qtmlClient.lib 3.0 and later
  1346. }
  1347. function ImageCodecNewMemory( ci: ComponentInstance; var data: Ptr; dataSize: Size; dataUse: SIGNEDLONG; memoryGoneProc: ICMMemoryDisposedUPP; refCon: UnivPtr ): ComponentResult; external name '_ImageCodecNewMemory';
  1348. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1349. {
  1350. * ImageCodecDisposeMemory()
  1351. *
  1352. * Availability:
  1353. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1354. * CarbonLib: in CarbonLib 1.0 and later
  1355. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1356. * Windows: in qtmlClient.lib 3.0 and later
  1357. }
  1358. function ImageCodecDisposeMemory( ci: ComponentInstance; data: Ptr ): ComponentResult; external name '_ImageCodecDisposeMemory';
  1359. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1360. {
  1361. * ImageCodecHitTestData()
  1362. *
  1363. * Availability:
  1364. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1365. * CarbonLib: in CarbonLib 1.0 and later
  1366. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1367. * Windows: in qtmlClient.lib 3.0 and later
  1368. }
  1369. function ImageCodecHitTestData( ci: ComponentInstance; desc: ImageDescriptionHandle; data: UnivPtr; dataSize: Size; where: Point; var hit: Boolean ): ComponentResult; external name '_ImageCodecHitTestData';
  1370. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1371. {
  1372. * ImageCodecNewImageBufferMemory()
  1373. *
  1374. * Availability:
  1375. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1376. * CarbonLib: in CarbonLib 1.0 and later
  1377. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1378. * Windows: in qtmlClient.lib 3.0 and later
  1379. }
  1380. function ImageCodecNewImageBufferMemory( ci: ComponentInstance; var params: CodecDecompressParams; flags: SIGNEDLONG; memoryGoneProc: ICMMemoryDisposedUPP; refCon: UnivPtr ): ComponentResult; external name '_ImageCodecNewImageBufferMemory';
  1381. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1382. {
  1383. * ImageCodecExtractAndCombineFields()
  1384. *
  1385. * Availability:
  1386. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1387. * CarbonLib: in CarbonLib 1.0 and later
  1388. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1389. * Windows: in qtmlClient.lib 3.0 and later
  1390. }
  1391. function ImageCodecExtractAndCombineFields( ci: ComponentInstance; fieldFlags: SIGNEDLONG; data1: UnivPtr; dataSize1: SIGNEDLONG; desc1: ImageDescriptionHandle; data2: UnivPtr; dataSize2: SIGNEDLONG; desc2: ImageDescriptionHandle; outputData: UnivPtr; var outDataSize: SIGNEDLONG; descOut: ImageDescriptionHandle ): ComponentResult; external name '_ImageCodecExtractAndCombineFields';
  1392. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1393. {
  1394. * ImageCodecGetMaxCompressionSizeWithSources()
  1395. *
  1396. * Availability:
  1397. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1398. * CarbonLib: in CarbonLib 1.0 and later
  1399. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1400. * Windows: in qtmlClient.lib 3.0 and later
  1401. }
  1402. function ImageCodecGetMaxCompressionSizeWithSources( ci: ComponentInstance; src: PixMapHandle; const (*var*) srcRect: Rect; depth: SInt16; quality: CodecQ; sourceData: CDSequenceDataSourcePtr; var size: SIGNEDLONG ): ComponentResult; external name '_ImageCodecGetMaxCompressionSizeWithSources';
  1403. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1404. {
  1405. * ImageCodecSetTimeBase()
  1406. *
  1407. * Availability:
  1408. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1409. * CarbonLib: in CarbonLib 1.0 and later
  1410. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1411. * Windows: in qtmlClient.lib 3.0 and later
  1412. }
  1413. function ImageCodecSetTimeBase( ci: ComponentInstance; base: UnivPtr ): ComponentResult; external name '_ImageCodecSetTimeBase';
  1414. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1415. {
  1416. * ImageCodecSourceChanged()
  1417. *
  1418. * Availability:
  1419. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1420. * CarbonLib: in CarbonLib 1.0 and later
  1421. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1422. * Windows: in qtmlClient.lib 3.0 and later
  1423. }
  1424. function ImageCodecSourceChanged( ci: ComponentInstance; majorSourceChangeSeed: UInt32; minorSourceChangeSeed: UInt32; sourceData: CDSequenceDataSourcePtr; var flagsOut: SIGNEDLONG ): ComponentResult; external name '_ImageCodecSourceChanged';
  1425. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1426. {
  1427. * ImageCodecFlushFrame()
  1428. *
  1429. * Availability:
  1430. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1431. * CarbonLib: in CarbonLib 1.0 and later
  1432. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1433. * Windows: in qtmlClient.lib 3.0 and later
  1434. }
  1435. function ImageCodecFlushFrame( ci: ComponentInstance; flags: UInt32 ): ComponentResult; external name '_ImageCodecFlushFrame';
  1436. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1437. {
  1438. * ImageCodecGetSettingsAsText()
  1439. *
  1440. * Availability:
  1441. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1442. * CarbonLib: in CarbonLib 1.1 and later
  1443. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1444. * Windows: in qtmlClient.lib 3.0 and later
  1445. }
  1446. function ImageCodecGetSettingsAsText( ci: ComponentInstance; var text: Handle ): ComponentResult; external name '_ImageCodecGetSettingsAsText';
  1447. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1448. {
  1449. * ImageCodecGetParameterListHandle()
  1450. *
  1451. * Availability:
  1452. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1453. * CarbonLib: in CarbonLib 1.0 and later
  1454. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1455. * Windows: in qtmlClient.lib 3.0 and later
  1456. }
  1457. function ImageCodecGetParameterListHandle( ci: ComponentInstance; var parameterDescriptionHandle: Handle ): ComponentResult; external name '_ImageCodecGetParameterListHandle';
  1458. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1459. {
  1460. * ImageCodecGetParameterList()
  1461. *
  1462. * Availability:
  1463. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1464. * CarbonLib: in CarbonLib 1.0 and later
  1465. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1466. * Windows: in qtmlClient.lib 3.0 and later
  1467. }
  1468. function ImageCodecGetParameterList( ci: ComponentInstance; var parameterDescription: QTAtomContainer ): ComponentResult; external name '_ImageCodecGetParameterList';
  1469. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1470. {
  1471. * ImageCodecCreateStandardParameterDialog()
  1472. *
  1473. * Availability:
  1474. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1475. * CarbonLib: in CarbonLib 1.0 and later
  1476. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1477. * Windows: in qtmlClient.lib 3.0 and later
  1478. }
  1479. function ImageCodecCreateStandardParameterDialog( ci: ComponentInstance; parameterDescription: QTAtomContainer; parameters: QTAtomContainer; dialogOptions: QTParameterDialogOptions; existingDialog: DialogPtr; existingUserItem: SInt16; var createdDialog: QTParameterDialog ): ComponentResult; external name '_ImageCodecCreateStandardParameterDialog';
  1480. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1481. {
  1482. * ImageCodecIsStandardParameterDialogEvent()
  1483. *
  1484. * Availability:
  1485. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1486. * CarbonLib: in CarbonLib 1.0 and later
  1487. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1488. * Windows: in qtmlClient.lib 3.0 and later
  1489. }
  1490. function ImageCodecIsStandardParameterDialogEvent( ci: ComponentInstance; var pEvent: EventRecord; createdDialog: QTParameterDialog ): ComponentResult; external name '_ImageCodecIsStandardParameterDialogEvent';
  1491. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1492. {
  1493. * ImageCodecDismissStandardParameterDialog()
  1494. *
  1495. * Availability:
  1496. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1497. * CarbonLib: in CarbonLib 1.0 and later
  1498. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1499. * Windows: in qtmlClient.lib 3.0 and later
  1500. }
  1501. function ImageCodecDismissStandardParameterDialog( ci: ComponentInstance; createdDialog: QTParameterDialog ): ComponentResult; external name '_ImageCodecDismissStandardParameterDialog';
  1502. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1503. {
  1504. * ImageCodecStandardParameterDialogDoAction()
  1505. *
  1506. * Availability:
  1507. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1508. * CarbonLib: in CarbonLib 1.0 and later
  1509. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1510. * Windows: in qtmlClient.lib 3.0 and later
  1511. }
  1512. function ImageCodecStandardParameterDialogDoAction( ci: ComponentInstance; createdDialog: QTParameterDialog; action: SIGNEDLONG; params: UnivPtr ): ComponentResult; external name '_ImageCodecStandardParameterDialogDoAction';
  1513. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1514. {
  1515. * ImageCodecNewImageGWorld()
  1516. *
  1517. * Availability:
  1518. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1519. * CarbonLib: in CarbonLib 1.0 and later
  1520. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1521. * Windows: in qtmlClient.lib 3.0 and later
  1522. }
  1523. function ImageCodecNewImageGWorld( ci: ComponentInstance; var params: CodecDecompressParams; var newGW: GWorldPtr; flags: SIGNEDLONG ): ComponentResult; external name '_ImageCodecNewImageGWorld';
  1524. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1525. {
  1526. * ImageCodecDisposeImageGWorld()
  1527. *
  1528. * Availability:
  1529. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1530. * CarbonLib: in CarbonLib 1.0 and later
  1531. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1532. * Windows: in qtmlClient.lib 3.0 and later
  1533. }
  1534. function ImageCodecDisposeImageGWorld( ci: ComponentInstance; theGW: GWorldPtr ): ComponentResult; external name '_ImageCodecDisposeImageGWorld';
  1535. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1536. {
  1537. * ImageCodecHitTestDataWithFlags()
  1538. *
  1539. * Availability:
  1540. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1541. * CarbonLib: in CarbonLib 1.1 and later
  1542. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1543. * Windows: in qtmlClient.lib 3.0 and later
  1544. }
  1545. function ImageCodecHitTestDataWithFlags( ci: ComponentInstance; desc: ImageDescriptionHandle; data: UnivPtr; dataSize: Size; where: Point; var hit: SIGNEDLONG; hitFlags: SIGNEDLONG ): ComponentResult; external name '_ImageCodecHitTestDataWithFlags';
  1546. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1547. {
  1548. * ImageCodecValidateParameters()
  1549. *
  1550. * Availability:
  1551. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1552. * CarbonLib: in CarbonLib 1.0 and later
  1553. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1554. * Windows: in qtmlClient.lib 3.0 and later
  1555. }
  1556. function ImageCodecValidateParameters( ci: ComponentInstance; parameters: QTAtomContainer; validationFlags: QTParameterValidationOptions; errorString: StringPtr ): ComponentResult; external name '_ImageCodecValidateParameters';
  1557. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1558. {
  1559. * ImageCodecGetBaseMPWorkFunction()
  1560. *
  1561. * Availability:
  1562. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1563. * CarbonLib: in CarbonLib 1.0 and later
  1564. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1565. * Windows: in qtmlClient.lib 3.0 and later
  1566. }
  1567. function ImageCodecGetBaseMPWorkFunction( ci: ComponentInstance; var workFunction: ComponentMPWorkFunctionUPP; var refCon: UnivPtr; drawProc: ImageCodecMPDrawBandUPP; drawProcRefCon: UnivPtr ): ComponentResult; external name '_ImageCodecGetBaseMPWorkFunction';
  1568. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1569. {
  1570. * ImageCodecLockBits()
  1571. *
  1572. * Availability:
  1573. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  1574. * CarbonLib: not available
  1575. * Non-Carbon CFM: not available
  1576. * Windows: in qtmlClient.lib 6.5 and later
  1577. }
  1578. function ImageCodecLockBits( ci: ComponentInstance; port: CGrafPtr ): ComponentResult; external name '_ImageCodecLockBits';
  1579. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  1580. {
  1581. * ImageCodecUnlockBits()
  1582. *
  1583. * Availability:
  1584. * Mac OS X: in version 10.3 (or QuickTime 6.4) and later in QuickTime.framework
  1585. * CarbonLib: not available
  1586. * Non-Carbon CFM: not available
  1587. * Windows: in qtmlClient.lib 6.5 and later
  1588. }
  1589. function ImageCodecUnlockBits( ci: ComponentInstance; port: CGrafPtr ): ComponentResult; external name '_ImageCodecUnlockBits';
  1590. (* AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER *)
  1591. {
  1592. * ImageCodecRequestGammaLevel()
  1593. *
  1594. * Availability:
  1595. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1596. * CarbonLib: in CarbonLib 1.3 and later
  1597. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  1598. * Windows: in qtmlClient.lib 5.0 and later
  1599. }
  1600. function ImageCodecRequestGammaLevel( ci: ComponentInstance; srcGammaLevel: Fixed; dstGammaLevel: Fixed; var codecCanMatch: SIGNEDLONG ): ComponentResult; external name '_ImageCodecRequestGammaLevel';
  1601. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1602. {
  1603. * ImageCodecGetSourceDataGammaLevel()
  1604. *
  1605. * Availability:
  1606. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1607. * CarbonLib: in CarbonLib 1.3 and later
  1608. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  1609. * Windows: in qtmlClient.lib 5.0 and later
  1610. }
  1611. function ImageCodecGetSourceDataGammaLevel( ci: ComponentInstance; var sourceDataGammaLevel: Fixed ): ComponentResult; external name '_ImageCodecGetSourceDataGammaLevel';
  1612. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1613. { (Selector 42 skipped) }
  1614. {
  1615. * ImageCodecGetDecompressLatency()
  1616. *
  1617. * Availability:
  1618. * Mac OS X: in version 10.0 and later in QuickTime.framework
  1619. * CarbonLib: in CarbonLib 1.3 and later
  1620. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  1621. * Windows: in qtmlClient.lib 5.0 and later
  1622. }
  1623. function ImageCodecGetDecompressLatency( ci: ComponentInstance; var latency: TimeRecord ): ComponentResult; external name '_ImageCodecGetDecompressLatency';
  1624. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  1625. {
  1626. * ImageCodecMergeFloatingImageOntoWindow()
  1627. *
  1628. * Availability:
  1629. * Mac OS X: in version 10.2 and later in QuickTime.framework
  1630. * CarbonLib: in CarbonLib 1.6 and later
  1631. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  1632. * Windows: in qtmlClient.lib 6.0 and later
  1633. }
  1634. function ImageCodecMergeFloatingImageOntoWindow( ci: ComponentInstance; flags: UInt32 ): ComponentResult; external name '_ImageCodecMergeFloatingImageOntoWindow';
  1635. (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
  1636. {
  1637. * ImageCodecRemoveFloatingImage()
  1638. *
  1639. * Availability:
  1640. * Mac OS X: in version 10.2 and later in QuickTime.framework
  1641. * CarbonLib: in CarbonLib 1.6 and later
  1642. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  1643. * Windows: in qtmlClient.lib 6.0 and later
  1644. }
  1645. function ImageCodecRemoveFloatingImage( ci: ComponentInstance; flags: UInt32 ): ComponentResult; external name '_ImageCodecRemoveFloatingImage';
  1646. (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
  1647. {
  1648. * ImageCodecGetDITLForSize()
  1649. *
  1650. * Availability:
  1651. * Mac OS X: in version 10.2 and later in QuickTime.framework
  1652. * CarbonLib: in CarbonLib 1.6 and later
  1653. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  1654. * Windows: in qtmlClient.lib 6.0 and later
  1655. }
  1656. function ImageCodecGetDITLForSize( ci: ComponentInstance; var ditl: Handle; var requestedSize: Point ): ComponentResult; external name '_ImageCodecGetDITLForSize';
  1657. (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
  1658. {
  1659. * ImageCodecDITLInstall()
  1660. *
  1661. * Availability:
  1662. * Mac OS X: in version 10.2 and later in QuickTime.framework
  1663. * CarbonLib: in CarbonLib 1.6 and later
  1664. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  1665. * Windows: in qtmlClient.lib 6.0 and later
  1666. }
  1667. function ImageCodecDITLInstall( ci: ComponentInstance; d: DialogRef; itemOffset: SInt16 ): ComponentResult; external name '_ImageCodecDITLInstall';
  1668. (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
  1669. {
  1670. * ImageCodecDITLEvent()
  1671. *
  1672. * Availability:
  1673. * Mac OS X: in version 10.2 and later in QuickTime.framework
  1674. * CarbonLib: in CarbonLib 1.6 and later
  1675. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  1676. * Windows: in qtmlClient.lib 6.0 and later
  1677. }
  1678. function ImageCodecDITLEvent( ci: ComponentInstance; d: DialogRef; itemOffset: SInt16; const (*var*) theEvent: EventRecord; var itemHit: SInt16; var handled: Boolean ): ComponentResult; external name '_ImageCodecDITLEvent';
  1679. (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
  1680. {
  1681. * ImageCodecDITLItem()
  1682. *
  1683. * Availability:
  1684. * Mac OS X: in version 10.2 and later in QuickTime.framework
  1685. * CarbonLib: in CarbonLib 1.6 and later
  1686. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  1687. * Windows: in qtmlClient.lib 6.0 and later
  1688. }
  1689. function ImageCodecDITLItem( ci: ComponentInstance; d: DialogRef; itemOffset: SInt16; itemNum: SInt16 ): ComponentResult; external name '_ImageCodecDITLItem';
  1690. (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
  1691. {
  1692. * ImageCodecDITLRemove()
  1693. *
  1694. * Availability:
  1695. * Mac OS X: in version 10.2 and later in QuickTime.framework
  1696. * CarbonLib: in CarbonLib 1.6 and later
  1697. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  1698. * Windows: in qtmlClient.lib 6.0 and later
  1699. }
  1700. function ImageCodecDITLRemove( ci: ComponentInstance; d: DialogRef; itemOffset: SInt16 ): ComponentResult; external name '_ImageCodecDITLRemove';
  1701. (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
  1702. {
  1703. * ImageCodecDITLValidateInput()
  1704. *
  1705. * Availability:
  1706. * Mac OS X: in version 10.2 and later in QuickTime.framework
  1707. * CarbonLib: in CarbonLib 1.6 and later
  1708. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  1709. * Windows: in qtmlClient.lib 6.0 and later
  1710. }
  1711. function ImageCodecDITLValidateInput( ci: ComponentInstance; var ok: Boolean ): ComponentResult; external name '_ImageCodecDITLValidateInput';
  1712. (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
  1713. { (Selector 52 skipped) }
  1714. { (Selector 53 skipped) }
  1715. {
  1716. * ImageCodecGetPreferredChunkSizeAndAlignment()
  1717. *
  1718. * Summary:
  1719. * Returns the preferences of an image decompressor for the chunking
  1720. * of image data within a container, e.g. a movie file.
  1721. *
  1722. * Discussion:
  1723. * If you are writing image data to a container, you can optimize
  1724. * the subsequent loading of the image data for playback and other
  1725. * operations by chunking multiple samples of image data together.
  1726. * This function can be called to determine whether an image
  1727. * decompressor has special chunking preferences.
  1728. *
  1729. * Parameters:
  1730. *
  1731. * ci:
  1732. * Component instance / instance globals.
  1733. *
  1734. * desc:
  1735. * The image description for the image data to be chunked.
  1736. *
  1737. * frameRate:
  1738. * Mean frame rate in frames per second as in SCTemporalSettings;
  1739. * 0 if not known or not applicable.
  1740. *
  1741. * dataRate:
  1742. * Mean data rate in bytes per second as in SCDataRateSettings; 0
  1743. * if not known.
  1744. *
  1745. * bytesPerChunk:
  1746. * Points to a variable to receive the preferred maximum size in
  1747. * bytes of each chunk of image data. It is not safe to pass NULL
  1748. * for this parameter. The codec may indicate that it has no
  1749. * preference regarding chunk sizing by setting the variable to 0.
  1750. *
  1751. * alignment:
  1752. * Points to a variable to receive the preferred boundary for
  1753. * chunk alignment in bytes, e.g. 512. It is not safe to pass NULL
  1754. * for this parameter. The codec may indicate that it has no
  1755. * preference regarding chunk alignment by setting the variable to
  1756. * 0.
  1757. *
  1758. * Availability:
  1759. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  1760. * CarbonLib: not available
  1761. * Non-Carbon CFM: not available
  1762. }
  1763. function ImageCodecGetPreferredChunkSizeAndAlignment( ci: ComponentInstance; desc: ImageDescriptionHandle; frameRate: Fixed; dataRate: UInt32; var bytesPerChunk: SIGNEDLONG; var alignment: SIGNEDLONG ): ComponentResult; external name '_ImageCodecGetPreferredChunkSizeAndAlignment';
  1764. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  1765. { B-Frame Capable Image Compressor Component API }
  1766. {
  1767. * ImageCodecPrepareToCompressFrames()
  1768. *
  1769. * Summary:
  1770. * Prepares the compressor to receive frames.
  1771. *
  1772. * Discussion:
  1773. * The compressor should record session and retain
  1774. * compressionSessionOptions for use in later calls.
  1775. * The compressor may modify imageDescription at this point.
  1776. * The compressor should create and return pixel buffer attributes,
  1777. * which the ICM will release.
  1778. * (Note: this replaces ImageCodecPreCompress.)
  1779. *
  1780. * Parameters:
  1781. *
  1782. * ci:
  1783. * Component instance / instance globals.
  1784. *
  1785. * session:
  1786. * The compressor session reference. The compressor should store
  1787. * this in its globals; it will need it when calling the ICM back
  1788. * (eg, to call ICMEncodedFrameCreateMutable and
  1789. * ICMCompressorSessionEmitEncodedFrame).
  1790. * This is not a CF type. Do not call CFRetain or CFRelease on it.
  1791. *
  1792. * compressionSessionOptions:
  1793. * The session options from the client. The compressor should
  1794. * retain this and use the settings to guide compression.
  1795. *
  1796. * imageDescription:
  1797. * The image description. The compressor may add image description
  1798. * extensions.
  1799. *
  1800. * reserved:
  1801. * Reserved for future use. Ignore this parameter.
  1802. *
  1803. * compressorPixelBufferAttributesOut:
  1804. * The compressor should create a pixel buffer attributes
  1805. * dictionary and set compressorPixelBufferAttributesOut to it.
  1806. * The ICM will release it.
  1807. *
  1808. * Availability:
  1809. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  1810. * CarbonLib: not available
  1811. * Non-Carbon CFM: not available
  1812. }
  1813. function ImageCodecPrepareToCompressFrames( ci: ComponentInstance; session: ICMCompressorSessionRef; compressionSessionOptions: ICMCompressionSessionOptionsRef; imageDescription: ImageDescriptionHandle; reserved: UnivPtr; var compressorPixelBufferAttributesOut: CFDictionaryRef ): ComponentResult; external name '_ImageCodecPrepareToCompressFrames';
  1814. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  1815. {
  1816. * ImageCodecEncodeFrame()
  1817. *
  1818. * Summary:
  1819. * Presents the compressor with a frame to encode.
  1820. *
  1821. * Discussion:
  1822. * The compressor may encode the frame immediately or queue it for
  1823. * later encoding. If the compressor queues the frame for later
  1824. * decode, it must retain it (by calling
  1825. * ICMCompressorSourceFrameRetain) and release it when it is done
  1826. * with it (by calling ICMCompressorSourceFrameRelease).
  1827. * Pixel buffers are guaranteed to conform to the pixel buffer
  1828. * attributes returned by ImageCodecPrepareToCompressFrames.
  1829. * During multipass encoding, if the compressor requested the
  1830. * kICMCompressionPassMode_NoSourceFrames flag, the source frame
  1831. * pixel buffers may be NULL.
  1832. * (Note: this replaces ImageCodecBandCompress.)
  1833. *
  1834. * Parameters:
  1835. *
  1836. * ci:
  1837. * Component instance / instance globals.
  1838. *
  1839. * sourceFrame:
  1840. * The source frame to encode.
  1841. *
  1842. * flags:
  1843. * Reserved; ignore.
  1844. *
  1845. * Availability:
  1846. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  1847. * CarbonLib: not available
  1848. * Non-Carbon CFM: not available
  1849. }
  1850. function ImageCodecEncodeFrame( ci: ComponentInstance; sourceFrame: ICMCompressorSourceFrameRef; flags: UInt32 ): ComponentResult; external name '_ImageCodecEncodeFrame';
  1851. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  1852. {
  1853. * ImageCodecCompleteFrame()
  1854. *
  1855. * Summary:
  1856. * Directs the compressor to finish with a queued source frame,
  1857. * either emitting or dropping it.
  1858. *
  1859. * Discussion:
  1860. * This frame does not necessarily need to be the first or only
  1861. * source frame emitted or dropped during this call, but the
  1862. * compressor must call either ICMCompressorSessionDropFrame or
  1863. * ICMCompressorSessionEmitEncodedFrame with this frame before
  1864. * returning.
  1865. * The ICM will call this function to force frames to be encoded for
  1866. * the following reasons: (a) the maximum frame delay count or
  1867. * maximum frame delay time in the compressionSessionOptions does
  1868. * not permit frames to be queued; (b) the client has called
  1869. * ICMCompressionSessionCompleteFrames.
  1870. *
  1871. * Parameters:
  1872. *
  1873. * ci:
  1874. * Component instance / instance globals.
  1875. *
  1876. * sourceFrame:
  1877. * The source frame that must be completed.
  1878. *
  1879. * flags:
  1880. * Reserved; ignore.
  1881. *
  1882. * Availability:
  1883. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  1884. * CarbonLib: not available
  1885. * Non-Carbon CFM: not available
  1886. }
  1887. function ImageCodecCompleteFrame( ci: ComponentInstance; sourceFrame: ICMCompressorSourceFrameRef; flags: UInt32 ): ComponentResult; external name '_ImageCodecCompleteFrame';
  1888. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  1889. {
  1890. * ImageCodecBeginPass()
  1891. *
  1892. * Summary:
  1893. * Notifies the compressor that it should operate in multipass mode
  1894. * and use the given multipass storage.
  1895. *
  1896. * Parameters:
  1897. *
  1898. * ci:
  1899. * Component instance / instance globals.
  1900. *
  1901. * passModeFlags:
  1902. * Indicates how the compressor should operate in this pass.
  1903. * If the kICMCompressionPassMode_WriteToMultiPassStorage flag is
  1904. * set, the compressor may gather information of interest and
  1905. * store it in multiPassStorage.
  1906. * If the kICMCompressionPassMode_ReadFromMultiPassStorage flag is
  1907. * set, the compressor may retrieve information from
  1908. * multiPassStorage.
  1909. * If the kICMCompressionPassMode_OutputEncodedFrames flag is set,
  1910. * the compressor must encode or drop every frame by calling
  1911. * ICMCompressorSessionDropFrame or
  1912. * ICMCompressorSessionEmitEncodedFrame. If that flag is not set,
  1913. * the compressor should not call these routines.
  1914. *
  1915. * flags:
  1916. * Reserved. Ignore this parameter.
  1917. *
  1918. * multiPassStorage:
  1919. * The multipass storage object that the compressor should use to
  1920. * store and retrieve information between passes.
  1921. *
  1922. * Availability:
  1923. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  1924. * CarbonLib: not available
  1925. * Non-Carbon CFM: not available
  1926. }
  1927. function ImageCodecBeginPass( ci: ComponentInstance; passModeFlags: ICMCompressionPassModeFlags; flags: UInt32; multiPassStorage: ICMMultiPassStorageRef ): ComponentResult; external name '_ImageCodecBeginPass';
  1928. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  1929. {
  1930. * ImageCodecEndPass()
  1931. *
  1932. * Summary:
  1933. * Notifies the compressor that a pass is over.
  1934. *
  1935. * Parameters:
  1936. *
  1937. * ci:
  1938. * Component instance / instance globals.
  1939. *
  1940. * Availability:
  1941. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  1942. * CarbonLib: not available
  1943. * Non-Carbon CFM: not available
  1944. }
  1945. function ImageCodecEndPass( ci: ComponentInstance ): ComponentResult; external name '_ImageCodecEndPass';
  1946. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  1947. {
  1948. * ImageCodecProcessBetweenPasses()
  1949. *
  1950. * Summary:
  1951. * Gives the compressor an opportunity to perform processing between
  1952. * passes.
  1953. *
  1954. * Discussion:
  1955. * This function will be called repeatedly until it returns true in
  1956. * *interpassProcessingDoneOut.
  1957. * The compressor may read and write to multiPassStorage.
  1958. * The compressor should indicate which type of pass it would prefer
  1959. * to perform next by setting *requestedNextPassTypeOut.
  1960. *
  1961. * Parameters:
  1962. *
  1963. * ci:
  1964. * Component instance / instance globals.
  1965. *
  1966. * multiPassStorage:
  1967. * The multipass storage object that the compressor should use to
  1968. * store and retrieve information between passes.
  1969. *
  1970. * interpassProcessingDoneOut:
  1971. * Points to a Boolean. Set this to false if you want your
  1972. * ImageCodecProcessBetweenPasses function to be called again to
  1973. * perform more processing, true if not.
  1974. *
  1975. * requestedNextPassModeFlagsOut:
  1976. * Set *requestedNextPassModeFlagsOut to indicate the type of pass
  1977. * that should be performed next:
  1978. * To recommend a repeated analysis pass, set it to
  1979. * kICMCompressionPassMode_ReadFromMultiPassStorage |
  1980. * kICMCompressionPassMode_WriteToMultiPassStorage.
  1981. * To recommend a final encoding pass, set it to
  1982. * kICMCompressionPassMode_ReadFromMultiPassStorage |
  1983. * kICMCompressionPassMode_OutputEncodedFrames.
  1984. * If source frame buffers are not necessary for the recommended
  1985. * pass (eg, because all the required data has been copied into
  1986. * multipass storage), set kICMCompressionPassMode_NoSourceFrames.
  1987. *
  1988. * Availability:
  1989. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  1990. * CarbonLib: not available
  1991. * Non-Carbon CFM: not available
  1992. }
  1993. function ImageCodecProcessBetweenPasses( ci: ComponentInstance; multiPassStorage: ICMMultiPassStorageRef; var interpassProcessingDoneOut: Boolean; var requestedNextPassModeFlagsOut: ICMCompressionPassModeFlags ): ComponentResult; external name '_ImageCodecProcessBetweenPasses';
  1994. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  1995. { (Selector 61 skipped) }
  1996. { (Selector 62 skipped) }
  1997. { (Selector 63 skipped) }
  1998. { (Selector 64 skipped) }
  1999. { (Selector 65 skipped) }
  2000. { (Selector 66 skipped) }
  2001. {
  2002. * ImageCodecPreflight()
  2003. *
  2004. * Availability:
  2005. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2006. * CarbonLib: in CarbonLib 1.0 and later
  2007. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2008. * Windows: in qtmlClient.lib 3.0 and later
  2009. }
  2010. function ImageCodecPreflight( ci: ComponentInstance; var params: CodecDecompressParams ): ComponentResult; external name '_ImageCodecPreflight';
  2011. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2012. {
  2013. * ImageCodecInitialize()
  2014. *
  2015. * Availability:
  2016. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2017. * CarbonLib: in CarbonLib 1.0 and later
  2018. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2019. * Windows: in qtmlClient.lib 3.0 and later
  2020. }
  2021. function ImageCodecInitialize( ci: ComponentInstance; var cap: ImageSubCodecDecompressCapabilities ): ComponentResult; external name '_ImageCodecInitialize';
  2022. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2023. {
  2024. * ImageCodecBeginBand()
  2025. *
  2026. * Availability:
  2027. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2028. * CarbonLib: in CarbonLib 1.0 and later
  2029. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2030. * Windows: in qtmlClient.lib 3.0 and later
  2031. }
  2032. function ImageCodecBeginBand( ci: ComponentInstance; var params: CodecDecompressParams; var drp: ImageSubCodecDecompressRecord; flags: SIGNEDLONG ): ComponentResult; external name '_ImageCodecBeginBand';
  2033. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2034. {
  2035. * ImageCodecDrawBand()
  2036. *
  2037. * Availability:
  2038. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2039. * CarbonLib: in CarbonLib 1.0 and later
  2040. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2041. * Windows: in qtmlClient.lib 3.0 and later
  2042. }
  2043. function ImageCodecDrawBand( ci: ComponentInstance; var drp: ImageSubCodecDecompressRecord ): ComponentResult; external name '_ImageCodecDrawBand';
  2044. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2045. {
  2046. * ImageCodecEndBand()
  2047. *
  2048. * Availability:
  2049. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2050. * CarbonLib: in CarbonLib 1.0 and later
  2051. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2052. * Windows: in qtmlClient.lib 3.0 and later
  2053. }
  2054. function ImageCodecEndBand( ci: ComponentInstance; var drp: ImageSubCodecDecompressRecord; result: OSErr; flags: SIGNEDLONG ): ComponentResult; external name '_ImageCodecEndBand';
  2055. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2056. {
  2057. * ImageCodecQueueStarting()
  2058. *
  2059. * Availability:
  2060. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2061. * CarbonLib: in CarbonLib 1.0 and later
  2062. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2063. * Windows: in qtmlClient.lib 3.0 and later
  2064. }
  2065. function ImageCodecQueueStarting( ci: ComponentInstance ): ComponentResult; external name '_ImageCodecQueueStarting';
  2066. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2067. {
  2068. * ImageCodecQueueStopping()
  2069. *
  2070. * Availability:
  2071. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2072. * CarbonLib: in CarbonLib 1.0 and later
  2073. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2074. * Windows: in qtmlClient.lib 3.0 and later
  2075. }
  2076. function ImageCodecQueueStopping( ci: ComponentInstance ): ComponentResult; external name '_ImageCodecQueueStopping';
  2077. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2078. {
  2079. * ImageCodecDroppingFrame()
  2080. *
  2081. * Availability:
  2082. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2083. * CarbonLib: in CarbonLib 1.0 and later
  2084. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2085. * Windows: in qtmlClient.lib 3.0 and later
  2086. }
  2087. function ImageCodecDroppingFrame( ci: ComponentInstance; const (*var*) drp: ImageSubCodecDecompressRecord ): ComponentResult; external name '_ImageCodecDroppingFrame';
  2088. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2089. {
  2090. * ImageCodecScheduleFrame()
  2091. *
  2092. * Availability:
  2093. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2094. * CarbonLib: in CarbonLib 1.0.2 and later
  2095. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  2096. * Windows: in qtmlClient.lib 4.0 and later
  2097. }
  2098. function ImageCodecScheduleFrame( ci: ComponentInstance; const (*var*) drp: ImageSubCodecDecompressRecord; triggerProc: ImageCodecTimeTriggerUPP; triggerProcRefCon: UnivPtr ): ComponentResult; external name '_ImageCodecScheduleFrame';
  2099. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2100. {
  2101. * ImageCodecCancelTrigger()
  2102. *
  2103. * Availability:
  2104. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2105. * CarbonLib: in CarbonLib 1.0.2 and later
  2106. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  2107. * Windows: in qtmlClient.lib 4.0 and later
  2108. }
  2109. function ImageCodecCancelTrigger( ci: ComponentInstance ): ComponentResult; external name '_ImageCodecCancelTrigger';
  2110. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2111. {
  2112. * ImageCodecDecodeBand()
  2113. *
  2114. * Availability:
  2115. * Mac OS X: in version 10.4 (or QuickTime 7.0) and later in QuickTime.framework
  2116. * CarbonLib: not available
  2117. * Non-Carbon CFM: not available
  2118. * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
  2119. }
  2120. function ImageCodecDecodeBand( ci: ComponentInstance; var drp: ImageSubCodecDecompressRecord; flags: UNSIGNEDLONG ): ComponentResult; external name '_ImageCodecDecodeBand';
  2121. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  2122. { selectors for component calls }
  2123. const
  2124. kImageCodecGetCodecInfoSelect = $0000;
  2125. kImageCodecGetCompressionTimeSelect = $0001;
  2126. kImageCodecGetMaxCompressionSizeSelect = $0002;
  2127. kImageCodecPreCompressSelect = $0003;
  2128. kImageCodecBandCompressSelect = $0004;
  2129. kImageCodecPreDecompressSelect = $0005;
  2130. kImageCodecBandDecompressSelect = $0006;
  2131. kImageCodecBusySelect = $0007;
  2132. kImageCodecGetCompressedImageSizeSelect = $0008;
  2133. kImageCodecGetSimilaritySelect = $0009;
  2134. kImageCodecTrimImageSelect = $000A;
  2135. kImageCodecRequestSettingsSelect = $000B;
  2136. kImageCodecGetSettingsSelect = $000C;
  2137. kImageCodecSetSettingsSelect = $000D;
  2138. kImageCodecFlushSelect = $000E;
  2139. kImageCodecSetTimeCodeSelect = $000F;
  2140. kImageCodecIsImageDescriptionEquivalentSelect = $0010;
  2141. kImageCodecNewMemorySelect = $0011;
  2142. kImageCodecDisposeMemorySelect = $0012;
  2143. kImageCodecHitTestDataSelect = $0013;
  2144. kImageCodecNewImageBufferMemorySelect = $0014;
  2145. kImageCodecExtractAndCombineFieldsSelect = $0015;
  2146. kImageCodecGetMaxCompressionSizeWithSourcesSelect = $0016;
  2147. kImageCodecSetTimeBaseSelect = $0017;
  2148. kImageCodecSourceChangedSelect = $0018;
  2149. kImageCodecFlushFrameSelect = $0019;
  2150. kImageCodecGetSettingsAsTextSelect = $001A;
  2151. kImageCodecGetParameterListHandleSelect = $001B;
  2152. kImageCodecGetParameterListSelect = $001C;
  2153. kImageCodecCreateStandardParameterDialogSelect = $001D;
  2154. kImageCodecIsStandardParameterDialogEventSelect = $001E;
  2155. kImageCodecDismissStandardParameterDialogSelect = $001F;
  2156. kImageCodecStandardParameterDialogDoActionSelect = $0020;
  2157. kImageCodecNewImageGWorldSelect = $0021;
  2158. kImageCodecDisposeImageGWorldSelect = $0022;
  2159. kImageCodecHitTestDataWithFlagsSelect = $0023;
  2160. kImageCodecValidateParametersSelect = $0024;
  2161. kImageCodecGetBaseMPWorkFunctionSelect = $0025;
  2162. kImageCodecLockBitsSelect = $0026;
  2163. kImageCodecUnlockBitsSelect = $0027;
  2164. kImageCodecRequestGammaLevelSelect = $0028;
  2165. kImageCodecGetSourceDataGammaLevelSelect = $0029;
  2166. kImageCodecGetDecompressLatencySelect = $002B;
  2167. kImageCodecMergeFloatingImageOntoWindowSelect = $002C;
  2168. kImageCodecRemoveFloatingImageSelect = $002D;
  2169. kImageCodecGetDITLForSizeSelect = $002E;
  2170. kImageCodecDITLInstallSelect = $002F;
  2171. kImageCodecDITLEventSelect = $0030;
  2172. kImageCodecDITLItemSelect = $0031;
  2173. kImageCodecDITLRemoveSelect = $0032;
  2174. kImageCodecDITLValidateInputSelect = $0033;
  2175. kImageCodecGetPreferredChunkSizeAndAlignmentSelect = $0036;
  2176. kImageCodecPrepareToCompressFramesSelect = $0037;
  2177. kImageCodecEncodeFrameSelect = $0038;
  2178. kImageCodecCompleteFrameSelect = $0039;
  2179. kImageCodecBeginPassSelect = $003A;
  2180. kImageCodecEndPassSelect = $003B;
  2181. kImageCodecProcessBetweenPassesSelect = $003C;
  2182. kImageCodecPreflightSelect = $0200;
  2183. kImageCodecInitializeSelect = $0201;
  2184. kImageCodecBeginBandSelect = $0202;
  2185. kImageCodecDrawBandSelect = $0203;
  2186. kImageCodecEndBandSelect = $0204;
  2187. kImageCodecQueueStartingSelect = $0205;
  2188. kImageCodecQueueStoppingSelect = $0206;
  2189. kImageCodecDroppingFrameSelect = $0207;
  2190. kImageCodecScheduleFrameSelect = $0208;
  2191. kImageCodecCancelTriggerSelect = $0209;
  2192. kImageCodecDecodeBandSelect = $020F;
  2193. const
  2194. kMotionJPEGTag = FourCharCode('mjpg');
  2195. kJPEGQuantizationTablesImageDescriptionExtension = FourCharCode('mjqt');
  2196. kJPEGHuffmanTablesImageDescriptionExtension = FourCharCode('mjht');
  2197. kFieldInfoImageDescriptionExtension = FourCharCode('fiel'); { image description extension describing the field count and field orderings}
  2198. const
  2199. kFieldOrderUnknown = 0;
  2200. kFieldsStoredF1F2DisplayedF1F2 = 1;
  2201. kFieldsStoredF1F2DisplayedF2F1 = 2;
  2202. kFieldsStoredF2F1DisplayedF1F2 = 5;
  2203. kFieldsStoredF2F1DisplayedF2F1 = 6;
  2204. type
  2205. MotionJPEGApp1MarkerPtr = ^MotionJPEGApp1Marker;
  2206. MotionJPEGApp1Marker = record
  2207. unused: SIGNEDLONG;
  2208. tag: SIGNEDLONG;
  2209. fieldSize: SIGNEDLONG;
  2210. paddedFieldSize: SIGNEDLONG;
  2211. offsetToNextField: SIGNEDLONG;
  2212. qTableOffset: SIGNEDLONG;
  2213. huffmanTableOffset: SIGNEDLONG;
  2214. sofOffset: SIGNEDLONG;
  2215. sosOffset: SIGNEDLONG;
  2216. soiOffset: SIGNEDLONG;
  2217. end;
  2218. type
  2219. FieldInfoImageDescriptionExtensionPtr = ^FieldInfoImageDescriptionExtension;
  2220. FieldInfoImageDescriptionExtension = record
  2221. fieldCount: UInt8;
  2222. fieldOrderings: UInt8;
  2223. end;
  2224. {
  2225. * QTPhotoSetSampling()
  2226. *
  2227. * Availability:
  2228. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2229. * CarbonLib: in CarbonLib 1.0 and later
  2230. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2231. * Windows: in qtmlClient.lib 3.0 and later
  2232. }
  2233. function QTPhotoSetSampling( codec: ComponentInstance; yH: SInt16; yV: SInt16; cbH: SInt16; cbV: SInt16; crH: SInt16; crV: SInt16 ): ComponentResult; external name '_QTPhotoSetSampling';
  2234. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2235. {
  2236. * QTPhotoSetRestartInterval()
  2237. *
  2238. * Availability:
  2239. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2240. * CarbonLib: in CarbonLib 1.0 and later
  2241. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2242. * Windows: in qtmlClient.lib 3.0 and later
  2243. }
  2244. function QTPhotoSetRestartInterval( codec: ComponentInstance; restartInterval: UInt16 ): ComponentResult; external name '_QTPhotoSetRestartInterval';
  2245. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2246. {
  2247. * QTPhotoDefineHuffmanTable()
  2248. *
  2249. * Availability:
  2250. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2251. * CarbonLib: in CarbonLib 1.0 and later
  2252. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2253. * Windows: in qtmlClient.lib 3.0 and later
  2254. }
  2255. function QTPhotoDefineHuffmanTable( codec: ComponentInstance; componentNumber: SInt16; isDC: Boolean; lengthCounts: UInt8Ptr; values: UInt8Ptr ): ComponentResult; external name '_QTPhotoDefineHuffmanTable';
  2256. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2257. {
  2258. * QTPhotoDefineQuantizationTable()
  2259. *
  2260. * Availability:
  2261. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2262. * CarbonLib: in CarbonLib 1.0 and later
  2263. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  2264. * Windows: in qtmlClient.lib 3.0 and later
  2265. }
  2266. function QTPhotoDefineQuantizationTable( codec: ComponentInstance; componentNumber: SInt16; table: UInt8Ptr ): ComponentResult; external name '_QTPhotoDefineQuantizationTable';
  2267. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2268. { selectors for component calls }
  2269. const
  2270. kQTPhotoSetSamplingSelect = $0100;
  2271. kQTPhotoSetRestartIntervalSelect = $0101;
  2272. kQTPhotoDefineHuffmanTableSelect = $0102;
  2273. kQTPhotoDefineQuantizationTableSelect = $0103;
  2274. {
  2275. * Summary:
  2276. * Properties for image compressor components
  2277. }
  2278. const
  2279. {
  2280. * Property class for image compressor components.
  2281. }
  2282. kQTPropertyClass_ImageCompressor = FourCharCode('imco');
  2283. {
  2284. * Summary:
  2285. * Enforced properties for image compressor components
  2286. *
  2287. * Discussion:
  2288. * Image compressors that sometimes or always restrict image
  2289. * dimensions, clean aperture and/or pixel aspect ratio should
  2290. * support these properties.
  2291. * If these properties can change dynamically for a compressor (eg,
  2292. * in response to user interaction) then the properties should be
  2293. * listenable, and the compressor should call the listeners whenever
  2294. * the properties change. (In this case, the component's
  2295. * GetComponentPropertyInfo function should set the
  2296. * kComponentPropertyFlagWillNotifyListeners flag.)
  2297. * If a compressor has a mode in which these properties are
  2298. * flexible, then when the component is in that mode, (a) the
  2299. * component's GetComponentProperty function should return
  2300. * kQTPropertyAskLaterErr for these properties, and (b) the
  2301. * component's GetComponentPropertyInfo function should set the
  2302. * kComponentPropertyFlagCanGetLater flag for these properties.
  2303. }
  2304. const
  2305. {
  2306. * The encoded width enforced for compressed frames.
  2307. }
  2308. kICMImageCompressorPropertyID_EnforcedEncodedWidth = FourCharCode('enwi'); { SInt32, Read/Sometimes Listen }
  2309. {
  2310. * The encoded height enforced for compressed frames.
  2311. }
  2312. kICMImageCompressorPropertyID_EnforcedEncodedHeight = FourCharCode('enhe'); { SInt32, Read/Sometimes Listen }
  2313. {
  2314. * The clean aperture enforced for compressed frames.
  2315. }
  2316. kICMImageCompressorPropertyID_EnforcedCleanAperture = FourCharCode('encl'); { CleanApertureImageDescriptionExtension, Read/Sometimes Listen }
  2317. {
  2318. * The pixel aspect ratio enforced for compressed frames.
  2319. }
  2320. kICMImageCompressorPropertyID_EnforcedPixelAspectRatio = FourCharCode('enpa'); { PixelAspectRatioImageDescriptionExtension, Read/Sometimes Listen }
  2321. {
  2322. * The number and order of fields enforced for compressed frames.
  2323. }
  2324. kICMImageCompressorPropertyID_EnforcedFieldInfo = FourCharCode('enfi'); { FieldInfoImageDescriptionExtension2, Read/Sometimes Listen }
  2325. {
  2326. * Summary:
  2327. * DV Compressor Component Properties.
  2328. }
  2329. const
  2330. {
  2331. * Property class for DV compressors. (Applicable to DV25, DV50,
  2332. * NTSC, PAL, PROPAL.)
  2333. }
  2334. kQTPropertyClass_DVCompressor = FourCharCode('dvco');
  2335. {
  2336. * If set, indicates that the compressed frames should be marked as
  2337. * progressive-scan. By default, this flag is clear, meaning that
  2338. * frames should be marked as interlaced.
  2339. }
  2340. kDVCompressorPropertyID_ProgressiveScan = FourCharCode('prog'); { Boolean, Read/Write }
  2341. {
  2342. * If set, indicates that the compressor should use a 16:9 picture
  2343. * aspect ratio. If clear, the compressor will use the default 4:3
  2344. * picture aspect ratio.
  2345. }
  2346. kDVCompressorPropertyID_AspectRatio16x9 = FourCharCode('16x9'); { Boolean, Read/Write }
  2347. { source identifier -- placed in root container of description, one or more required }
  2348. const
  2349. kEffectSourceName = FourCharCode('src ');
  2350. { source type -- placed in the input map to identify the source kind }
  2351. const
  2352. kEffectDataSourceType = FourCharCode('dtst');
  2353. { default effect types }
  2354. const
  2355. kEffectRawSource = 0; { the source is raw image data}
  2356. kEffectGenericType = FourCharCode('geff'); { generic effect for combining others}
  2357. type
  2358. EffectSourcePtr = ^EffectSource;
  2359. SourceDataPtr = ^SourceData;
  2360. SourceData = record
  2361. case SInt16 of
  2362. 0: (
  2363. image: CDSequenceDataSourcePtr;
  2364. );
  2365. 1: (
  2366. effect: EffectSourcePtr;
  2367. );
  2368. end;
  2369. EffectSource = record
  2370. effectType: SIGNEDLONG; { type of effect or kEffectRawSource if raw ICM data}
  2371. data: Ptr; { track data for this effect}
  2372. source: SourceData; { source/effect pointers}
  2373. next: EffectSourcePtr; { the next source for the parent effect}
  2374. { fields added for QuickTime 4.0}
  2375. lastTranslatedFrameTime: TimeValue; { start frame time of last converted frame, may be -1}
  2376. lastFrameDuration: TimeValue; { duration of the last converted frame, may be zero}
  2377. lastFrameTimeScale: TimeValue; { time scale of this source frame, only has meaning if above fields are valid}
  2378. end;
  2379. type
  2380. ICMFrameTimeRecord_QT3Ptr = ^ICMFrameTimeRecord_QT3;
  2381. ICMFrameTimeRecord_QT3 = record
  2382. value: wide; { frame display time}
  2383. scale: SIGNEDLONG; { timescale of value/duration fields}
  2384. base: UnivPtr; { timebase}
  2385. duration: SIGNEDLONG; { duration frame is to be displayed (0 if unknown)}
  2386. rate: Fixed; { rate of timebase relative to wall-time}
  2387. recordSize: SIGNEDLONG; { total number of bytes in ICMFrameTimeRecord}
  2388. frameNumber: SIGNEDLONG; { number of frame, zero if not known}
  2389. flags: SIGNEDLONG;
  2390. virtualStartTime: wide; { conceptual start time}
  2391. virtualDuration: SIGNEDLONG; { conceptual duration}
  2392. end;
  2393. type
  2394. EffectsFrameParamsPtr = ^EffectsFrameParams;
  2395. EffectsFrameParams = record
  2396. frameTime: ICMFrameTimeRecord_QT3; { timing data (uses non-extended ICMFrameTimeRecord)}
  2397. effectDuration: SIGNEDLONG; { the duration of a single effect frame}
  2398. doAsync: Boolean; { set to true if the effect can go async}
  2399. pad: array[0..2] of UInt8;
  2400. source: EffectSourcePtr; { ptr to the source input tree}
  2401. refCon: UnivPtr; { storage for the effect}
  2402. end;
  2403. {
  2404. * ImageCodecEffectSetup()
  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 3.0 and later
  2410. * Windows: in qtmlClient.lib 3.0 and later
  2411. }
  2412. function ImageCodecEffectSetup( effect: ComponentInstance; var p: CodecDecompressParams ): ComponentResult; external name '_ImageCodecEffectSetup';
  2413. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2414. {
  2415. * ImageCodecEffectBegin()
  2416. *
  2417. * Availability:
  2418. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2419. * CarbonLib: in CarbonLib 1.0 and later
  2420. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2421. * Windows: in qtmlClient.lib 3.0 and later
  2422. }
  2423. function ImageCodecEffectBegin( effect: ComponentInstance; var p: CodecDecompressParams; ePtr: EffectsFrameParamsPtr ): ComponentResult; external name '_ImageCodecEffectBegin';
  2424. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2425. {
  2426. * ImageCodecEffectRenderFrame()
  2427. *
  2428. * Availability:
  2429. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2430. * CarbonLib: in CarbonLib 1.0 and later
  2431. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2432. * Windows: in qtmlClient.lib 3.0 and later
  2433. }
  2434. function ImageCodecEffectRenderFrame( effect: ComponentInstance; p: EffectsFrameParamsPtr ): ComponentResult; external name '_ImageCodecEffectRenderFrame';
  2435. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2436. {
  2437. * ImageCodecEffectConvertEffectSourceToFormat()
  2438. *
  2439. * Availability:
  2440. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2441. * CarbonLib: in CarbonLib 1.0 and later
  2442. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2443. * Windows: in qtmlClient.lib 3.0 and later
  2444. }
  2445. function ImageCodecEffectConvertEffectSourceToFormat( effect: ComponentInstance; sourceToConvert: EffectSourcePtr; requestedDesc: ImageDescriptionHandle ): ComponentResult; external name '_ImageCodecEffectConvertEffectSourceToFormat';
  2446. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2447. {
  2448. * ImageCodecEffectCancel()
  2449. *
  2450. * Availability:
  2451. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2452. * CarbonLib: in CarbonLib 1.0 and later
  2453. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2454. * Windows: in qtmlClient.lib 3.0 and later
  2455. }
  2456. function ImageCodecEffectCancel( effect: ComponentInstance; p: EffectsFrameParamsPtr ): ComponentResult; external name '_ImageCodecEffectCancel';
  2457. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2458. {
  2459. * ImageCodecEffectGetSpeed()
  2460. *
  2461. * Availability:
  2462. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2463. * CarbonLib: in CarbonLib 1.0 and later
  2464. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2465. * Windows: in qtmlClient.lib 3.0 and later
  2466. }
  2467. function ImageCodecEffectGetSpeed( effect: ComponentInstance; parameters: QTAtomContainer; var pFPS: Fixed ): ComponentResult; external name '_ImageCodecEffectGetSpeed';
  2468. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2469. const
  2470. kSMPTENoFlag = 0;
  2471. kSMPTESmoothEdgeFlag = $01; { smooth edges of the stroke}
  2472. kSMPTEStrokeEdgeFlag = $02; { stroke edge with color}
  2473. type
  2474. SMPTEFlags = SIGNEDLONG;
  2475. SMPTEFrameReference = SIGNEDLONG;
  2476. const
  2477. kSlideHorizontalWipe = 1;
  2478. kSlideVerticalWipe = 2;
  2479. kTopLeftWipe = 3;
  2480. kTopRightWipe = 4;
  2481. kBottomRightWipe = 5;
  2482. kBottomLeftWipe = 6;
  2483. kFourCornerWipe = 7;
  2484. kFourBoxWipe = 8;
  2485. kBarnVerticalWipe = 21;
  2486. kBarnHorizontalWipe = 22;
  2487. kTopCenterWipe = 23;
  2488. kRightCenterWipe = 24;
  2489. kBottomCenterWipe = 25;
  2490. kLeftCenterWipe = 26;
  2491. kDiagonalLeftDownWipe = 41;
  2492. kDiagonalRightDownWipe = 42;
  2493. kTopBottomBowTieWipe = 43;
  2494. kLeftRightBowTieWipe = 44;
  2495. kDiagonalLeftOutWipe = 45;
  2496. kDiagonalRightOutWipe = 46;
  2497. kDiagonalCrossWipe = 47;
  2498. kDiagonalBoxWipe = 48;
  2499. kFilledVWipe = 61;
  2500. kFilledVRightWipe = 62;
  2501. kFilledVBottomWipe = 63;
  2502. kFilledVLeftWipe = 64;
  2503. kHollowVWipe = 65;
  2504. kHollowVRightWipe = 66;
  2505. kHollowVBottomWipe = 67;
  2506. kHollowVLeftWipe = 68;
  2507. kVerticalZigZagWipe = 71;
  2508. kHorizontalZigZagWipe = 72;
  2509. kVerticalBarnZigZagWipe = 73;
  2510. kHorizontalBarnZigZagWipe = 74;
  2511. const
  2512. kRectangleWipe = 101;
  2513. kDiamondWipe = 102;
  2514. kTriangleWipe = 103;
  2515. kTriangleRightWipe = 104;
  2516. kTriangleUpsideDownWipe = 105;
  2517. kTriangleLeftWipe = 106;
  2518. kSpaceShipWipe = 107;
  2519. kSpaceShipRightWipe = 108;
  2520. kSpaceShipUpsideDownWipe = 109;
  2521. kSpaceShipLeftWipe = 110;
  2522. kPentagonWipe = 111;
  2523. kPentagonUpsideDownWipe = 112;
  2524. kHexagonWipe = 113;
  2525. kHexagonSideWipe = 114;
  2526. kCircleWipe = 119;
  2527. kOvalWipe = 120;
  2528. kOvalSideWipe = 121;
  2529. kCatEyeWipe = 122;
  2530. kCatEyeSideWipe = 123;
  2531. kRoundRectWipe = 124;
  2532. kRoundRectSideWipe = 125;
  2533. kFourPointStarWipe = 127;
  2534. kFivePointStarWipe = 128;
  2535. kStarOfDavidWipe = 129;
  2536. kHeartWipe = 130;
  2537. kKeyholeWipe = 131;
  2538. const
  2539. kRotatingTopWipe = 201;
  2540. kRotatingRightWipe = 202;
  2541. kRotatingBottomWipe = 203;
  2542. kRotatingLeftWipe = 204;
  2543. kRotatingTopBottomWipe = 205;
  2544. kRotatingLeftRightWipe = 206;
  2545. kRotatingQuadrantWipe = 207;
  2546. kTopToBottom180Wipe = 211;
  2547. kRightToLeft180Wipe = 212;
  2548. kTopToBottom90Wipe = 213;
  2549. kRightToLeft90Wipe = 214;
  2550. kTop180Wipe = 221;
  2551. kRight180Wipe = 222;
  2552. kBottom180Wipe = 223;
  2553. kLeft180Wipe = 224;
  2554. kCounterRotatingTopBottomWipe = 225;
  2555. kCounterRotatingLeftRightWipe = 226;
  2556. kDoubleRotatingTopBottomWipe = 227;
  2557. kDoubleRotatingLeftRightWipe = 228;
  2558. kVOpenTopWipe = 231;
  2559. kVOpenRightWipe = 232;
  2560. kVOpenBottomWipe = 233;
  2561. kVOpenLeftWipe = 234;
  2562. kVOpenTopBottomWipe = 235;
  2563. kVOpenLeftRightWipe = 236;
  2564. kRotatingTopLeftWipe = 241;
  2565. kRotatingBottomLeftWipe = 242;
  2566. kRotatingBottomRightWipe = 243;
  2567. kRotatingTopRightWipe = 244;
  2568. kRotatingTopLeftBottomRightWipe = 245;
  2569. kRotatingBottomLeftTopRightWipe = 246;
  2570. kRotatingTopLeftRightWipe = 251;
  2571. kRotatingLeftTopBottomWipe = 252;
  2572. kRotatingBottomLeftRightWipe = 253;
  2573. kRotatingRightTopBottomWipe = 254;
  2574. kRotatingDoubleCenterRightWipe = 261;
  2575. kRotatingDoubleCenterTopWipe = 262;
  2576. kRotatingDoubleCenterTopBottomWipe = 263;
  2577. kRotatingDoubleCenterLeftRightWipe = 264;
  2578. const
  2579. kHorizontalMatrixWipe = 301;
  2580. kVerticalMatrixWipe = 302;
  2581. kTopLeftDiagonalMatrixWipe = 303;
  2582. kTopRightDiagonalMatrixWipe = 304;
  2583. kBottomRightDiagonalMatrixWipe = 305;
  2584. kBottomLeftDiagonalMatrixWipe = 306;
  2585. kClockwiseTopLeftMatrixWipe = 310;
  2586. kClockwiseTopRightMatrixWipe = 311;
  2587. kClockwiseBottomRightMatrixWipe = 312;
  2588. kClockwiseBottomLeftMatrixWipe = 313;
  2589. kCounterClockwiseTopLeftMatrixWipe = 314;
  2590. kCounterClockwiseTopRightMatrixWipe = 315;
  2591. kCounterClockwiseBottomRightMatrixWipe = 316;
  2592. kCounterClockwiseBottomLeftMatrixWipe = 317;
  2593. kVerticalStartTopMatrixWipe = 320;
  2594. kVerticalStartBottomMatrixWipe = 321;
  2595. kVerticalStartTopOppositeMatrixWipe = 322;
  2596. kVerticalStartBottomOppositeMatrixWipe = 323;
  2597. kHorizontalStartLeftMatrixWipe = 324;
  2598. kHorizontalStartRightMatrixWipe = 325;
  2599. kHorizontalStartLeftOppositeMatrixWipe = 326;
  2600. kHorizontalStartRightOppositeMatrixWipe = 327;
  2601. kDoubleDiagonalTopRightMatrixWipe = 328;
  2602. kDoubleDiagonalBottomRightMatrixWipe = 329;
  2603. kDoubleSpiralTopMatixWipe = 340;
  2604. kDoubleSpiralBottomMatixWipe = 341;
  2605. kDoubleSpiralLeftMatixWipe = 342;
  2606. kDoubleSpiralRightMatixWipe = 343;
  2607. kQuadSpiralVerticalMatixWipe = 344;
  2608. kQuadSpiralHorizontalMatixWipe = 345;
  2609. kVerticalWaterfallLeftMatrixWipe = 350;
  2610. kVerticalWaterfallRightMatrixWipe = 351;
  2611. kHorizontalWaterfallLeftMatrixWipe = 352;
  2612. kHorizontalWaterfallRightMatrixWipe = 353;
  2613. kRandomWipe = 409; { non-SMPTE standard numbers}
  2614. kRandomWipeGroupWipe = 501;
  2615. kRandomIrisGroupWipe = 502;
  2616. kRandomRadialGroupWipe = 503;
  2617. kRandomMatrixGroupWipe = 504;
  2618. type
  2619. SMPTEWipeType = UNSIGNEDLONG;
  2620. {
  2621. * ImageCodecEffectPrepareSMPTEFrame()
  2622. *
  2623. * Availability:
  2624. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2625. * CarbonLib: in CarbonLib 1.0.2 and later
  2626. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  2627. * Windows: in qtmlClient.lib 4.0 and later
  2628. }
  2629. function ImageCodecEffectPrepareSMPTEFrame( effect: ComponentInstance; destPixMap: PixMapPtr; var returnValue: SMPTEFrameReference ): ComponentResult; external name '_ImageCodecEffectPrepareSMPTEFrame';
  2630. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2631. {
  2632. * ImageCodecEffectDisposeSMPTEFrame()
  2633. *
  2634. * Availability:
  2635. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2636. * CarbonLib: in CarbonLib 1.0.2 and later
  2637. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  2638. * Windows: in qtmlClient.lib 4.0 and later
  2639. }
  2640. function ImageCodecEffectDisposeSMPTEFrame( effect: ComponentInstance; frameRef: SMPTEFrameReference ): ComponentResult; external name '_ImageCodecEffectDisposeSMPTEFrame';
  2641. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2642. {
  2643. * ImageCodecEffectRenderSMPTEFrame()
  2644. *
  2645. * Availability:
  2646. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2647. * CarbonLib: in CarbonLib 1.0.2 and later
  2648. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  2649. * Windows: in qtmlClient.lib 4.0 and later
  2650. }
  2651. function ImageCodecEffectRenderSMPTEFrame( effect: ComponentInstance; destPixMap: PixMapPtr; frameRef: SMPTEFrameReference; effectPercentageEven: Fixed; effectPercentageOdd: Fixed; var pSourceRect: Rect; var matrixP: MatrixRecord; effectNumber: SMPTEWipeType; xRepeat: SIGNEDLONG; yRepeat: SIGNEDLONG; flags: SMPTEFlags; penWidth: Fixed; strokeValue: SIGNEDLONG ): ComponentResult; external name '_ImageCodecEffectRenderSMPTEFrame';
  2652. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2653. { selectors for component calls }
  2654. const
  2655. kImageCodecEffectSetupSelect = $0300;
  2656. kImageCodecEffectBeginSelect = $0301;
  2657. kImageCodecEffectRenderFrameSelect = $0302;
  2658. kImageCodecEffectConvertEffectSourceToFormatSelect = $0303;
  2659. kImageCodecEffectCancelSelect = $0304;
  2660. kImageCodecEffectGetSpeedSelect = $0305;
  2661. kImageCodecEffectPrepareSMPTEFrameSelect = $0100;
  2662. kImageCodecEffectDisposeSMPTEFrameSelect = $0101;
  2663. kImageCodecEffectRenderSMPTEFrameSelect = $0102;
  2664. { curve atom types and data structures }
  2665. const
  2666. kCurvePathAtom = FourCharCode('path');
  2667. kCurveEndAtom = FourCharCode('zero');
  2668. kCurveAntialiasControlAtom = FourCharCode('anti');
  2669. kCurveAntialiasOff = 0;
  2670. kCurveAntialiasOn = $FFFFFFFF;
  2671. kCurveFillTypeAtom = FourCharCode('fill');
  2672. kCurvePenThicknessAtom = FourCharCode('pent');
  2673. kCurveMiterLimitAtom = FourCharCode('mitr');
  2674. kCurveJoinAttributesAtom = FourCharCode('join');
  2675. kCurveMinimumDepthAtom = FourCharCode('mind');
  2676. kCurveDepthAlwaysOffscreenMask = $80000000;
  2677. kCurveTransferModeAtom = FourCharCode('xfer');
  2678. kCurveGradientAngleAtom = FourCharCode('angl');
  2679. kCurveGradientRadiusAtom = FourCharCode('radi');
  2680. kCurveGradientOffsetAtom = FourCharCode('cent');
  2681. const
  2682. kCurveARGBColorAtom = FourCharCode('argb');
  2683. type
  2684. ARGBColorPtr = ^ARGBColor;
  2685. ARGBColor = record
  2686. alpha: UInt16;
  2687. red: UInt16;
  2688. green: UInt16;
  2689. blue: UInt16;
  2690. end;
  2691. const
  2692. kCurveGradientRecordAtom = FourCharCode('grad');
  2693. type
  2694. GradientColorRecordPtr = ^GradientColorRecord;
  2695. GradientColorRecord = record
  2696. thisColor: ARGBColor;
  2697. endingPercentage: Fixed;
  2698. end;
  2699. type
  2700. GradientColorPtr = GradientColorRecordPtr;
  2701. const
  2702. kCurveGradientTypeAtom = FourCharCode('grdt');
  2703. { currently supported gradient types }
  2704. const
  2705. kLinearGradient = 0;
  2706. kCircularGradient = 1;
  2707. type
  2708. GradientType = SIGNEDLONG;
  2709. {
  2710. * CurveGetLength()
  2711. *
  2712. * Availability:
  2713. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2714. * CarbonLib: in CarbonLib 1.0 and later
  2715. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2716. * Windows: in qtmlClient.lib 3.0 and later
  2717. }
  2718. function CurveGetLength( effect: ComponentInstance; var target: gxPaths; index: SIGNEDLONG; var wideLength: wide ): ComponentResult; external name '_CurveGetLength';
  2719. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2720. {
  2721. * CurveLengthToPoint()
  2722. *
  2723. * Availability:
  2724. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2725. * CarbonLib: in CarbonLib 1.0 and later
  2726. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2727. * Windows: in qtmlClient.lib 3.0 and later
  2728. }
  2729. function CurveLengthToPoint( effect: ComponentInstance; var target: gxPaths; index: SIGNEDLONG; length: Fixed; var location: FixedPoint; var tangent: FixedPoint ): ComponentResult; external name '_CurveLengthToPoint';
  2730. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2731. {
  2732. * CurveNewPath()
  2733. *
  2734. * Availability:
  2735. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2736. * CarbonLib: in CarbonLib 1.0 and later
  2737. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2738. * Windows: in qtmlClient.lib 3.0 and later
  2739. }
  2740. function CurveNewPath( effect: ComponentInstance; var pPath: Handle ): ComponentResult; external name '_CurveNewPath';
  2741. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2742. {
  2743. * CurveCountPointsInPath()
  2744. *
  2745. * Availability:
  2746. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2747. * CarbonLib: in CarbonLib 1.0 and later
  2748. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2749. * Windows: in qtmlClient.lib 3.0 and later
  2750. }
  2751. function CurveCountPointsInPath( effect: ComponentInstance; var aPath: gxPaths; contourIndex: UNSIGNEDLONG; var pCount: UNSIGNEDLONG ): ComponentResult; external name '_CurveCountPointsInPath';
  2752. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2753. {
  2754. * CurveGetPathPoint()
  2755. *
  2756. * Availability:
  2757. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2758. * CarbonLib: in CarbonLib 1.0 and later
  2759. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2760. * Windows: in qtmlClient.lib 3.0 and later
  2761. }
  2762. function CurveGetPathPoint( effect: ComponentInstance; var aPath: gxPaths; contourIndex: UNSIGNEDLONG; pointIndex: UNSIGNEDLONG; var thePoint: gxPoint; var ptIsOnPath: Boolean ): ComponentResult; external name '_CurveGetPathPoint';
  2763. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2764. {
  2765. * CurveInsertPointIntoPath()
  2766. *
  2767. * Availability:
  2768. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2769. * CarbonLib: in CarbonLib 1.0 and later
  2770. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2771. * Windows: in qtmlClient.lib 3.0 and later
  2772. }
  2773. function CurveInsertPointIntoPath( effect: ComponentInstance; var aPoint: gxPoint; thePath: Handle; contourIndex: UNSIGNEDLONG; pointIndex: UNSIGNEDLONG; ptIsOnPath: Boolean ): ComponentResult; external name '_CurveInsertPointIntoPath';
  2774. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2775. {
  2776. * CurveSetPathPoint()
  2777. *
  2778. * Availability:
  2779. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2780. * CarbonLib: in CarbonLib 1.0 and later
  2781. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2782. * Windows: in qtmlClient.lib 3.0 and later
  2783. }
  2784. function CurveSetPathPoint( effect: ComponentInstance; var aPath: gxPaths; contourIndex: UNSIGNEDLONG; pointIndex: UNSIGNEDLONG; var thePoint: gxPoint; ptIsOnPath: Boolean ): ComponentResult; external name '_CurveSetPathPoint';
  2785. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2786. {
  2787. * CurveGetNearestPathPoint()
  2788. *
  2789. * Availability:
  2790. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2791. * CarbonLib: in CarbonLib 1.0 and later
  2792. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2793. * Windows: in qtmlClient.lib 3.0 and later
  2794. }
  2795. function CurveGetNearestPathPoint( effect: ComponentInstance; var aPath: gxPaths; var thePoint: FixedPoint; var contourIndex: UNSIGNEDLONG; var pointIndex: UNSIGNEDLONG; var theDelta: Fixed ): ComponentResult; external name '_CurveGetNearestPathPoint';
  2796. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2797. {
  2798. * CurvePathPointToLength()
  2799. *
  2800. * Availability:
  2801. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2802. * CarbonLib: in CarbonLib 1.0 and later
  2803. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2804. * Windows: in qtmlClient.lib 3.0 and later
  2805. }
  2806. function CurvePathPointToLength( ci: ComponentInstance; var aPath: gxPaths; startDist: Fixed; endDist: Fixed; var thePoint: FixedPoint; var pLength: Fixed ): ComponentResult; external name '_CurvePathPointToLength';
  2807. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2808. {
  2809. * CurveCreateVectorStream()
  2810. *
  2811. * Availability:
  2812. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2813. * CarbonLib: in CarbonLib 1.0 and later
  2814. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2815. * Windows: in qtmlClient.lib 3.0 and later
  2816. }
  2817. function CurveCreateVectorStream( effect: ComponentInstance; var pStream: Handle ): ComponentResult; external name '_CurveCreateVectorStream';
  2818. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2819. {
  2820. * CurveAddAtomToVectorStream()
  2821. *
  2822. * Availability:
  2823. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2824. * CarbonLib: in CarbonLib 1.0 and later
  2825. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2826. * Windows: in qtmlClient.lib 3.0 and later
  2827. }
  2828. function CurveAddAtomToVectorStream( effect: ComponentInstance; atomType: OSType; atomSize: Size; pAtomData: UnivPtr; vectorStream: Handle ): ComponentResult; external name '_CurveAddAtomToVectorStream';
  2829. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2830. {
  2831. * CurveAddPathAtomToVectorStream()
  2832. *
  2833. * Availability:
  2834. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2835. * CarbonLib: in CarbonLib 1.0 and later
  2836. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2837. * Windows: in qtmlClient.lib 3.0 and later
  2838. }
  2839. function CurveAddPathAtomToVectorStream( effect: ComponentInstance; pathData: Handle; vectorStream: Handle ): ComponentResult; external name '_CurveAddPathAtomToVectorStream';
  2840. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2841. {
  2842. * CurveAddZeroAtomToVectorStream()
  2843. *
  2844. * Availability:
  2845. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2846. * CarbonLib: in CarbonLib 1.0 and later
  2847. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2848. * Windows: in qtmlClient.lib 3.0 and later
  2849. }
  2850. function CurveAddZeroAtomToVectorStream( effect: ComponentInstance; vectorStream: Handle ): ComponentResult; external name '_CurveAddZeroAtomToVectorStream';
  2851. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2852. {
  2853. * CurveGetAtomDataFromVectorStream()
  2854. *
  2855. * Availability:
  2856. * Mac OS X: in version 10.0 and later in QuickTime.framework
  2857. * CarbonLib: in CarbonLib 1.0 and later
  2858. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2859. * Windows: in qtmlClient.lib 3.0 and later
  2860. }
  2861. function CurveGetAtomDataFromVectorStream( effect: ComponentInstance; vectorStream: Handle; atomType: SIGNEDLONG; var dataSize: SIGNEDLONG; var dataPtr: Ptr ): ComponentResult; external name '_CurveGetAtomDataFromVectorStream';
  2862. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
  2863. { selectors for component calls }
  2864. const
  2865. kCurveGetLengthSelect = $0100;
  2866. kCurveLengthToPointSelect = $0101;
  2867. kCurveNewPathSelect = $0102;
  2868. kCurveCountPointsInPathSelect = $0103;
  2869. kCurveGetPathPointSelect = $0104;
  2870. kCurveInsertPointIntoPathSelect = $0105;
  2871. kCurveSetPathPointSelect = $0106;
  2872. kCurveGetNearestPathPointSelect = $0107;
  2873. kCurvePathPointToLengthSelect = $0108;
  2874. kCurveCreateVectorStreamSelect = $0109;
  2875. kCurveAddAtomToVectorStreamSelect = $010A;
  2876. kCurveAddPathAtomToVectorStreamSelect = $010B;
  2877. kCurveAddZeroAtomToVectorStreamSelect = $010C;
  2878. kCurveGetAtomDataFromVectorStreamSelect = $010D;
  2879. { UPP call backs }
  2880. {$endc} {not TARGET_CPU_64}
  2881. {$endc} {TARGET_OS_MAC}
  2882. {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
  2883. end.
  2884. {$endc} {not MACOSALLINCLUDE}