ImageCodec.pas 89 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228
  1. {
  2. File: ImageCodec.p
  3. Contains: QuickTime Interfaces.
  4. Version: Technology: QuickTime 6.0
  5. Release: Universal Interfaces 3.4.2
  6. Copyright: © 1990-2002 by Apple Computer, Inc., all rights reserved
  7. Bugs?: For bug reports, consult the following page on
  8. the World Wide Web:
  9. http://www.freepascal.org/bugs.html
  10. }
  11. {
  12. Modified for use with Free Pascal
  13. Version 200
  14. Please report any bugs to <[email protected]>
  15. }
  16. {$mode macpas}
  17. {$packenum 1}
  18. {$macro on}
  19. {$inline on}
  20. {$CALLING MWPASCAL}
  21. unit ImageCodec;
  22. interface
  23. {$setc UNIVERSAL_INTERFACES_VERSION := $0342}
  24. {$setc GAP_INTERFACES_VERSION := $0200}
  25. {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
  26. {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
  27. {$endc}
  28. {$ifc defined CPUPOWERPC and defined CPUI386}
  29. {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
  30. {$endc}
  31. {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
  32. {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
  33. {$endc}
  34. {$ifc not defined __ppc__ and defined CPUPOWERPC}
  35. {$setc __ppc__ := 1}
  36. {$elsec}
  37. {$setc __ppc__ := 0}
  38. {$endc}
  39. {$ifc not defined __i386__ and defined CPUI386}
  40. {$setc __i386__ := 1}
  41. {$elsec}
  42. {$setc __i386__ := 0}
  43. {$endc}
  44. {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
  45. {$error Conflicting definitions for __ppc__ and __i386__}
  46. {$endc}
  47. {$ifc defined __ppc__ and __ppc__}
  48. {$setc TARGET_CPU_PPC := TRUE}
  49. {$setc TARGET_CPU_X86 := FALSE}
  50. {$elifc defined __i386__ and __i386__}
  51. {$setc TARGET_CPU_PPC := FALSE}
  52. {$setc TARGET_CPU_X86 := TRUE}
  53. {$elsec}
  54. {$error Neither __ppc__ nor __i386__ is defined.}
  55. {$endc}
  56. {$setc TARGET_CPU_PPC_64 := FALSE}
  57. {$ifc defined FPC_BIG_ENDIAN}
  58. {$setc TARGET_RT_BIG_ENDIAN := TRUE}
  59. {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
  60. {$elifc defined FPC_LITTLE_ENDIAN}
  61. {$setc TARGET_RT_BIG_ENDIAN := FALSE}
  62. {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
  63. {$elsec}
  64. {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
  65. {$endc}
  66. {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
  67. {$setc CALL_NOT_IN_CARBON := FALSE}
  68. {$setc OLDROUTINENAMES := FALSE}
  69. {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
  70. {$setc OPAQUE_UPP_TYPES := TRUE}
  71. {$setc OTCARBONAPPLICATION := TRUE}
  72. {$setc OTKERNEL := FALSE}
  73. {$setc PM_USE_SESSION_APIS := TRUE}
  74. {$setc TARGET_API_MAC_CARBON := TRUE}
  75. {$setc TARGET_API_MAC_OS8 := FALSE}
  76. {$setc TARGET_API_MAC_OSX := TRUE}
  77. {$setc TARGET_CARBON := TRUE}
  78. {$setc TARGET_CPU_68K := FALSE}
  79. {$setc TARGET_CPU_MIPS := FALSE}
  80. {$setc TARGET_CPU_SPARC := FALSE}
  81. {$setc TARGET_OS_MAC := TRUE}
  82. {$setc TARGET_OS_UNIX := FALSE}
  83. {$setc TARGET_OS_WIN32 := FALSE}
  84. {$setc TARGET_RT_MAC_68881 := FALSE}
  85. {$setc TARGET_RT_MAC_CFM := FALSE}
  86. {$setc TARGET_RT_MAC_MACHO := TRUE}
  87. {$setc TYPED_FUNCTION_POINTERS := TRUE}
  88. {$setc TYPE_BOOL := FALSE}
  89. {$setc TYPE_EXTENDED := FALSE}
  90. {$setc TYPE_LONGLONG := TRUE}
  91. uses MacTypes,Events,QDOffscreen,OSUtils,Dialogs,Quickdraw,Components,GXTypes,ImageCompression,Movies;
  92. {$ALIGN MAC68K}
  93. { codec capabilities flags }
  94. const
  95. codecCanScale = $00000001;
  96. codecCanMask = $00000002;
  97. codecCanMatte = $00000004;
  98. codecCanTransform = $00000008;
  99. codecCanTransferMode = $00000010;
  100. codecCanCopyPrev = $00000020;
  101. codecCanSpool = $00000040;
  102. codecCanClipVertical = $00000080;
  103. codecCanClipRectangular = $00000100;
  104. codecCanRemapColor = $00000200;
  105. codecCanFastDither = $00000400;
  106. codecCanSrcExtract = $00000800;
  107. codecCanCopyPrevComp = $00001000;
  108. codecCanAsync = $00002000;
  109. codecCanMakeMask = $00004000;
  110. codecCanShift = $00008000;
  111. codecCanAsyncWhen = $00010000;
  112. codecCanShieldCursor = $00020000;
  113. codecCanManagePrevBuffer = $00040000;
  114. codecHasVolatileBuffer = $00080000; { codec requires redraw after window movement }
  115. codecWantsRegionMask = $00100000;
  116. codecImageBufferIsOnScreen = $00200000; { old def of codec using overlay surface, = ( codecIsDirectToScreenOnly | codecUsesOverlaySurface | codecImageBufferIsOverlaySurface | codecSrcMustBeImageBuffer ) }
  117. codecWantsDestinationPixels = $00400000;
  118. codecWantsSpecialScaling = $00800000;
  119. codecHandlesInputs = $01000000;
  120. codecCanDoIndirectSurface = $02000000; { codec can handle indirect surface (GDI) }
  121. codecIsSequenceSensitive = $04000000;
  122. codecRequiresOffscreen = $08000000;
  123. codecRequiresMaskBits = $10000000;
  124. codecCanRemapResolution = $20000000;
  125. codecIsDirectToScreenOnly = $40000000; { codec can only decompress data to the screen }
  126. codecCanLockSurface = $80000000; { codec can lock destination surface, icm doesn't lock for you }
  127. { codec capabilities flags2 }
  128. codecUsesOverlaySurface = $00000001; { codec uses overlay surface }
  129. codecImageBufferIsOverlaySurface = $00000002; { codec image buffer is overlay surface, the bits in the buffer are on the screen }
  130. codecSrcMustBeImageBuffer = $00000004; { codec can only source data from an image buffer }
  131. codecImageBufferIsInAGPMemory = $00000010; { codec image buffer is in AGP space, byte writes are OK }
  132. codecImageBufferIsInPCIMemory = $00000020; { codec image buffer is across a PCI bus; byte writes are bad }
  133. codecImageBufferMemoryFlagsValid = $00000040; { set by ImageCodecNewImageBufferMemory/NewImageGWorld to indicate that it set the AGP/PCI flags (supported in QuickTime 6.0 and later) }
  134. codecDrawsHigherQualityScaled = $00000080; { codec will draw higher-quality image if it performs scaling (eg, wipe effect with border) }
  135. type
  136. CodecCapabilitiesPtr = ^CodecCapabilities;
  137. CodecCapabilities = record
  138. flags: SInt32;
  139. wantedPixelSize: SInt16;
  140. extendWidth: SInt16;
  141. extendHeight: SInt16;
  142. bandMin: SInt16;
  143. bandInc: SInt16;
  144. pad: SInt16;
  145. time: UInt32;
  146. flags2: SInt32; { field new in QuickTime 4.0 }
  147. end;
  148. { codec condition flags }
  149. const
  150. codecConditionFirstBand = $00000001;
  151. codecConditionLastBand = $00000002;
  152. codecConditionFirstFrame = $00000004;
  153. codecConditionNewDepth = $00000008;
  154. codecConditionNewTransform = $00000010;
  155. codecConditionNewSrcRect = $00000020;
  156. codecConditionNewMask = $00000040;
  157. codecConditionNewMatte = $00000080;
  158. codecConditionNewTransferMode = $00000100;
  159. codecConditionNewClut = $00000200;
  160. codecConditionNewAccuracy = $00000400;
  161. codecConditionNewDestination = $00000800;
  162. codecConditionFirstScreen = $00001000;
  163. codecConditionDoCursor = $00002000;
  164. codecConditionCatchUpDiff = $00004000;
  165. codecConditionMaskMayBeChanged = $00008000;
  166. codecConditionToBuffer = $00010000;
  167. codecConditionCodecChangedMask = $80000000;
  168. codecInfoResourceType = $63646369 (* 'cdci' *); { codec info resource type }
  169. codecInterfaceVersion = 2; { high word returned in component GetVersion }
  170. type
  171. CDSequenceDataSourceQueueEntryPtr = ^CDSequenceDataSourceQueueEntry;
  172. CDSequenceDataSourceQueueEntry = record
  173. nextBusy: Ptr;
  174. descSeed: SInt32;
  175. dataDesc: Handle;
  176. data: Ptr;
  177. dataSize: SInt32;
  178. useCount: SInt32;
  179. frameTime: TimeValue;
  180. frameDuration: TimeValue;
  181. timeScale: TimeValue;
  182. end;
  183. CDSequenceDataSourcePtr = ^CDSequenceDataSource;
  184. CDSequenceDataSource = record
  185. recordSize: SInt32;
  186. next: Ptr;
  187. seqID: ImageSequence;
  188. sourceID: ImageSequenceDataSource;
  189. sourceType: OSType;
  190. sourceInputNumber: SInt32;
  191. dataPtr: Ptr;
  192. dataDescription: Handle;
  193. changeSeed: SInt32;
  194. transferProc: ICMConvertDataFormatUPP;
  195. transferRefcon: Ptr;
  196. dataSize: SInt32;
  197. { fields available in QT 3 and later }
  198. dataQueue: QHdrPtr; { queue of CDSequenceDataSourceQueueEntry structures }
  199. originalDataPtr: Ptr;
  200. originalDataSize: SInt32;
  201. originalDataDescription: Handle;
  202. originalDataDescriptionSeed: SInt32;
  203. end;
  204. ICMFrameTimeInfoPtr = ^ICMFrameTimeInfo;
  205. ICMFrameTimeInfo = record
  206. startTime: wide;
  207. scale: SInt32;
  208. duration: SInt32;
  209. end;
  210. CodecCompressParamsPtr = ^CodecCompressParams;
  211. CodecCompressParams = record
  212. sequenceID: ImageSequence; { precompress,bandcompress }
  213. imageDescription: ImageDescriptionHandle; { precompress,bandcompress }
  214. data: Ptr;
  215. bufferSize: SInt32;
  216. frameNumber: SInt32;
  217. startLine: SInt32;
  218. stopLine: SInt32;
  219. conditionFlags: SInt32;
  220. callerFlags: CodecFlags;
  221. capabilities: CodecCapabilitiesPtr; { precompress,bandcompress }
  222. progressProcRecord: ICMProgressProcRecord;
  223. completionProcRecord: ICMCompletionProcRecord;
  224. flushProcRecord: ICMFlushProcRecord;
  225. srcPixMap: PixMap; { precompress,bandcompress }
  226. prevPixMap: PixMap;
  227. spatialQuality: CodecQ;
  228. temporalQuality: CodecQ;
  229. similarity: Fixed;
  230. dataRateParams: DataRateParamsPtr;
  231. reserved: SInt32;
  232. { The following fields only exist for QuickTime 2.1 and greater }
  233. majorSourceChangeSeed: UInt16;
  234. minorSourceChangeSeed: UInt16;
  235. sourceData: CDSequenceDataSourcePtr;
  236. { The following fields only exist for QuickTime 2.5 and greater }
  237. preferredPacketSizeInBytes: SInt32;
  238. { The following fields only exist for QuickTime 3.0 and greater }
  239. requestedBufferWidth: SInt32; { must set codecWantsSpecialScaling to indicate this field is valid }
  240. requestedBufferHeight: SInt32; { must set codecWantsSpecialScaling to indicate this field is valid }
  241. { The following fields only exist for QuickTime 4.0 and greater }
  242. wantedSourcePixelType: OSType;
  243. { The following fields only exist for QuickTime 5.0 and greater }
  244. compressedDataSize: SInt32; { if nonzero, this overrides (*imageDescription)->dataSize }
  245. taskWeight: UInt32; { preferred weight for MP tasks implementing this operation }
  246. taskName: OSType; { preferred name (type) for MP tasks implementing this operation }
  247. end;
  248. CodecDecompressParamsPtr = ^CodecDecompressParams;
  249. CodecDecompressParams = record
  250. sequenceID: ImageSequence; { predecompress,banddecompress }
  251. imageDescription: ImageDescriptionHandle; { predecompress,banddecompress }
  252. data: Ptr;
  253. bufferSize: SInt32;
  254. frameNumber: SInt32;
  255. startLine: SInt32;
  256. stopLine: SInt32;
  257. conditionFlags: SInt32;
  258. callerFlags: CodecFlags;
  259. capabilities: CodecCapabilitiesPtr; { predecompress,banddecompress }
  260. progressProcRecord: ICMProgressProcRecord;
  261. completionProcRecord: ICMCompletionProcRecord;
  262. dataProcRecord: ICMDataProcRecord;
  263. port: CGrafPtr; { predecompress,banddecompress }
  264. dstPixMap: PixMap; { predecompress,banddecompress }
  265. maskBits: BitMapPtr;
  266. mattePixMap: PixMapPtr;
  267. srcRect: Rect; { predecompress,banddecompress }
  268. matrix: MatrixRecordPtr; { predecompress,banddecompress }
  269. accuracy: CodecQ; { predecompress,banddecompress }
  270. transferMode: SInt16; { predecompress,banddecompress }
  271. frameTime: ICMFrameTimePtr; { banddecompress }
  272. reserved: array [0..0] of SInt32;
  273. { The following fields only exist for QuickTime 2.0 and greater }
  274. matrixFlags: SInt8; { high bit set if 2x resize }
  275. matrixType: SInt8;
  276. dstRect: Rect; { only valid for simple transforms }
  277. { The following fields only exist for QuickTime 2.1 and greater }
  278. majorSourceChangeSeed: UInt16;
  279. minorSourceChangeSeed: UInt16;
  280. sourceData: CDSequenceDataSourcePtr;
  281. maskRegion: RgnHandle;
  282. { The following fields only exist for QuickTime 2.5 and greater }
  283. wantedDestinationPixelTypes: ^OSTypePtr; { Handle to 0-terminated list of OSTypes }
  284. screenFloodMethod: SInt32;
  285. screenFloodValue: SInt32;
  286. preferredOffscreenPixelSize: SInt16;
  287. { The following fields only exist for QuickTime 3.0 and greater }
  288. syncFrameTime: ICMFrameTimeInfoPtr; { banddecompress }
  289. needUpdateOnTimeChange: boolean; { banddecompress }
  290. enableBlackLining: boolean;
  291. needUpdateOnSourceChange: boolean; { band decompress }
  292. pad: boolean;
  293. unused: SInt32;
  294. finalDestinationPort: CGrafPtr;
  295. requestedBufferWidth: SInt32; { must set codecWantsSpecialScaling to indicate this field is valid }
  296. requestedBufferHeight: SInt32; { must set codecWantsSpecialScaling to indicate this field is valid }
  297. { The following fields only exist for QuickTime 4.0 and greater }
  298. displayableAreaOfRequestedBuffer: Rect; { set in predecompress }
  299. requestedSingleField: boolean;
  300. needUpdateOnNextIdle: boolean;
  301. pad2: array [0..1] of boolean;
  302. bufferGammaLevel: Fixed;
  303. { The following fields only exist for QuickTime 5.0 and greater }
  304. taskWeight: UInt32; { preferred weight for MP tasks implementing this operation }
  305. taskName: OSType; { preferred name (type) for MP tasks implementing this operation }
  306. { The following fields only exist for QuickTime 6.0 and greater }
  307. bidirectionalPredictionMode: boolean;
  308. destinationBufferMemoryPreference: SInt8; { 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. }
  309. codecBufferMemoryPreference: SInt8; { may indicate preferred kind of memory that NewImageGWorld/NewImageBufferMemory should create its buffer in, if applicable. }
  310. pad4: SInt8;
  311. mediaContextID: QTMediaContextID;
  312. end;
  313. const
  314. matrixFlagScale2x = $00000080;
  315. matrixFlagScale1x = $00000040;
  316. matrixFlagScaleHalf = $00000020;
  317. kScreenFloodMethodNone = 0;
  318. kScreenFloodMethodKeyColor = 1;
  319. kScreenFloodMethodAlpha = 2;
  320. kFlushLastQueuedFrame = 0;
  321. kFlushFirstQueuedFrame = 1;
  322. kNewImageGWorldErase = $00000001;
  323. { values for destinationBufferMemoryPreference and codecBufferMemoryPreference }
  324. kICMImageBufferNoPreference = 0;
  325. kICMImageBufferPreferMainMemory = 1;
  326. kICMImageBufferPreferVideoMemory = 2;
  327. type
  328. {$ifc TYPED_FUNCTION_POINTERS}
  329. ImageCodecTimeTriggerProcPtr = procedure(refcon: UnivPtr);
  330. {$elsec}
  331. ImageCodecTimeTriggerProcPtr = ProcPtr;
  332. {$endc}
  333. {$ifc TYPED_FUNCTION_POINTERS}
  334. ImageCodecDrawBandCompleteProcPtr = procedure(refcon: UnivPtr; drawBandResult: ComponentResult; drawBandCompleteFlags: UInt32);
  335. {$elsec}
  336. ImageCodecDrawBandCompleteProcPtr = ProcPtr;
  337. {$endc}
  338. {$ifc OPAQUE_UPP_TYPES}
  339. ImageCodecTimeTriggerUPP = ^SInt32; { an opaque UPP }
  340. {$elsec}
  341. ImageCodecTimeTriggerUPP = UniversalProcPtr;
  342. {$endc}
  343. {$ifc OPAQUE_UPP_TYPES}
  344. ImageCodecDrawBandCompleteUPP = ^SInt32; { an opaque UPP }
  345. {$elsec}
  346. ImageCodecDrawBandCompleteUPP = UniversalProcPtr;
  347. {$endc}
  348. const
  349. uppImageCodecTimeTriggerProcInfo = $000000C0;
  350. uppImageCodecDrawBandCompleteProcInfo = $00000FC0;
  351. {
  352. * NewImageCodecTimeTriggerUPP()
  353. *
  354. * Availability:
  355. * Non-Carbon CFM: available as macro/inline
  356. * CarbonLib: in CarbonLib 1.0.2 and later
  357. * Mac OS X: in version 10.0 and later
  358. }
  359. function NewImageCodecTimeTriggerUPP(userRoutine: ImageCodecTimeTriggerProcPtr): ImageCodecTimeTriggerUPP; external name '_NewImageCodecTimeTriggerUPP'; { old name was NewImageCodecTimeTriggerProc }
  360. {
  361. * NewImageCodecDrawBandCompleteUPP()
  362. *
  363. * Availability:
  364. * Non-Carbon CFM: available as macro/inline
  365. * CarbonLib: in CarbonLib 1.3 and later
  366. * Mac OS X: in version 10.0 and later
  367. }
  368. function NewImageCodecDrawBandCompleteUPP(userRoutine: ImageCodecDrawBandCompleteProcPtr): ImageCodecDrawBandCompleteUPP; external name '_NewImageCodecDrawBandCompleteUPP'; { old name was NewImageCodecDrawBandCompleteProc }
  369. {
  370. * DisposeImageCodecTimeTriggerUPP()
  371. *
  372. * Availability:
  373. * Non-Carbon CFM: available as macro/inline
  374. * CarbonLib: in CarbonLib 1.0.2 and later
  375. * Mac OS X: in version 10.0 and later
  376. }
  377. procedure DisposeImageCodecTimeTriggerUPP(userUPP: ImageCodecTimeTriggerUPP); external name '_DisposeImageCodecTimeTriggerUPP';
  378. {
  379. * DisposeImageCodecDrawBandCompleteUPP()
  380. *
  381. * Availability:
  382. * Non-Carbon CFM: available as macro/inline
  383. * CarbonLib: in CarbonLib 1.3 and later
  384. * Mac OS X: in version 10.0 and later
  385. }
  386. procedure DisposeImageCodecDrawBandCompleteUPP(userUPP: ImageCodecDrawBandCompleteUPP); external name '_DisposeImageCodecDrawBandCompleteUPP';
  387. {
  388. * InvokeImageCodecTimeTriggerUPP()
  389. *
  390. * Availability:
  391. * Non-Carbon CFM: available as macro/inline
  392. * CarbonLib: in CarbonLib 1.0.2 and later
  393. * Mac OS X: in version 10.0 and later
  394. }
  395. procedure InvokeImageCodecTimeTriggerUPP(refcon: UnivPtr; userRoutine: ImageCodecTimeTriggerUPP); external name '_InvokeImageCodecTimeTriggerUPP'; { old name was CallImageCodecTimeTriggerProc }
  396. {
  397. * InvokeImageCodecDrawBandCompleteUPP()
  398. *
  399. * Availability:
  400. * Non-Carbon CFM: available as macro/inline
  401. * CarbonLib: in CarbonLib 1.3 and later
  402. * Mac OS X: in version 10.0 and later
  403. }
  404. procedure InvokeImageCodecDrawBandCompleteUPP(refcon: UnivPtr; drawBandResult: ComponentResult; drawBandCompleteFlags: UInt32; userRoutine: ImageCodecDrawBandCompleteUPP); external name '_InvokeImageCodecDrawBandCompleteUPP'; { old name was CallImageCodecDrawBandCompleteProc }
  405. type
  406. ImageSubCodecDecompressCapabilitiesPtr = ^ImageSubCodecDecompressCapabilities;
  407. ImageSubCodecDecompressCapabilities = record
  408. recordSize: SInt32; { sizeof(ImageSubCodecDecompressCapabilities) }
  409. decompressRecordSize: SInt32; { size of your codec's decompress record }
  410. canAsync: boolean; { default true }
  411. pad0: SInt8;
  412. { The following field only exists for QuickTime 4.1 and greater }
  413. suggestedQueueSize: UInt16;
  414. { The following field only exists for QuickTime 4.0 and greater }
  415. canProvideTrigger: boolean;
  416. { The following fields only exist for QuickTime 5.0 and greater }
  417. subCodecFlushesScreen: boolean; { only used on Mac OS X }
  418. subCodecCallsDrawBandComplete: boolean;
  419. pad2: SInt8;
  420. { The following fields only exist for QuickTime 5.0.1 and greater }
  421. isChildCodec: boolean; { set by base codec before calling Initialize }
  422. pad3,pad4,pad5: SInt8;
  423. end;
  424. const
  425. kCodecFrameTypeUnknown = 0;
  426. kCodecFrameTypeKey = 1;
  427. kCodecFrameTypeDifference = 2;
  428. kCodecFrameTypeDroppableDifference = 3;
  429. type
  430. ImageSubCodecDecompressRecordPtr = ^ImageSubCodecDecompressRecord;
  431. ImageSubCodecDecompressRecord = record
  432. baseAddr: Ptr;
  433. rowBytes: SInt32;
  434. codecData: Ptr;
  435. progressProcRecord: ICMProgressProcRecord;
  436. dataProcRecord: ICMDataProcRecord;
  437. userDecompressRecord: Ptr; { pointer to codec-specific per-band data }
  438. frameType: SInt8;
  439. 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.) }
  440. pad: packed array [0..1] of UInt8;
  441. priv: array [0..1] of SInt32;
  442. { The following fields only exist for QuickTime 5.0 and greater }
  443. 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. }
  444. drawBandCompleteRefCon: Ptr; { 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. }
  445. end;
  446. {
  447. These data structures are used by code that wants to pass planar pixmap
  448. information around.
  449. The structure below gives the basic idea of what is being done.
  450. Normal instances of code will use a fixed number of planes (eg YUV420 uses
  451. three planes, Y, U and V). Each such code instance will define its own
  452. version of the PlanarPixMapInfo struct counting the number of planes it
  453. needs along with defining constants that specify the meanings of each
  454. plane.
  455. }
  456. PlanarComponentInfoPtr = ^PlanarComponentInfo;
  457. PlanarComponentInfo = record
  458. offset: SInt32;
  459. rowBytes: UInt32;
  460. end;
  461. PlanarPixMapInfoPtr = ^PlanarPixMapInfo;
  462. PlanarPixMapInfo = record
  463. componentInfo: array [0..0] of PlanarComponentInfo;
  464. end;
  465. PlanarPixmapInfoSorensonYUV9Ptr = ^PlanarPixmapInfoSorensonYUV9;
  466. PlanarPixmapInfoSorensonYUV9 = record
  467. componentInfoY: PlanarComponentInfo;
  468. componentInfoU: PlanarComponentInfo;
  469. componentInfoV: PlanarComponentInfo;
  470. end;
  471. PlanarPixmapInfoYUV420Ptr = ^PlanarPixmapInfoYUV420;
  472. PlanarPixmapInfoYUV420 = record
  473. componentInfoY: PlanarComponentInfo;
  474. componentInfoCb: PlanarComponentInfo;
  475. componentInfoCr: PlanarComponentInfo;
  476. end;
  477. const
  478. codecSuggestedBufferSentinel = $73656E74 (* 'sent' *); { codec public resource containing suggested data pattern to put past end of data buffer }
  479. { name of parameters or effect -- placed in root container, required }
  480. kParameterTitleName = $6E616D65 (* 'name' *);
  481. kParameterTitleID = 1;
  482. { codec sub-type of parameters or effect -- placed in root container, required }
  483. kParameterWhatName = $77686174 (* 'what' *);
  484. kParameterWhatID = 1;
  485. { effect version -- placed in root container, optional, but recommended }
  486. kParameterVersionName = $76657273 (* 'vers' *);
  487. kParameterVersionID = 1;
  488. { is effect repeatable -- placed in root container, optional, default is TRUE }
  489. kParameterRepeatableName = $70657465 (* 'pete' *);
  490. kParameterRepeatableID = 1;
  491. kParameterRepeatableTrue = 1;
  492. kParameterRepeatableFalse = 0;
  493. { substitution codec in case effect is missing -- placed in root container, recommended }
  494. kParameterAlternateCodecName = $73756273 (* 'subs' *);
  495. kParameterAlternateCodecID = 1;
  496. { maximum number of sources -- placed in root container, required }
  497. kParameterSourceCountName = $73726373 (* 'srcs' *);
  498. kParameterSourceCountID = 1;
  499. { EFFECT CLASSES }
  500. {
  501. The effect major class defines the major grouping of the effect.
  502. Major classes are defined only by Apple and are not extendable by third
  503. parties. Major classes are used for filtering of the effect list by
  504. applications, but do not define what UI sub-group may or may not be
  505. presented to the user. For example, the major class may be a transition,
  506. but the minor class may be a wipe.
  507. }
  508. {
  509. Effects that fail to include a
  510. kEffectMajorClassType will be classified as kMiscMajorClass.
  511. }
  512. kEffectMajorClassType = $636C7361 (* 'clsa' *);
  513. kEffectMajorClassID = 1;
  514. kGeneratorMajorClass = $67656E72 (* 'genr' *); { zero source effects }
  515. kFilterMajorClass = $66696C74 (* 'filt' *); { one source effects }
  516. kTransitionMajorClass = $7472616E (* 'tran' *); { multisource morph effects }
  517. kCompositorMajorClass = $636F6D70 (* 'comp' *); { multisource layer effects }
  518. kMiscMajorClass = $6D697363 (* 'misc' *); { all other effects }
  519. {
  520. The effect minor class defines the grouping of effects for the purposes
  521. of UI. Apple defines a set of minor classes and will extend it over
  522. time. Apple also provides strings within the UI for minor classes
  523. that it defines. Third party developers may either classify
  524. their effects as a type defined by Apple, or may define their own
  525. minor class. Effects which define a minor class of their own
  526. must also then supply a kEffectMinorClassNameType atom.
  527. }
  528. {
  529. If a kEffectMinorClassNameType atom is present, but
  530. the minor type is one defined by Apple, the Apple supplied
  531. string will be used in the UI.
  532. }
  533. {
  534. Effects that fail to supply a kEffectMinorClassType will be
  535. classified as kMiscMinorClass.
  536. }
  537. kEffectMinorClassType = $636C7369 (* 'clsi' *);
  538. kEffectMinorClassID = 1;
  539. kEffectMinorClassNameType = $636C736E (* 'clsn' *);
  540. kEffectMinorClassNameID = 1;
  541. kGeneratorMinorClass = $67656E72 (* 'genr' *); { "Generators" }
  542. kRenderMinorClass = $72656E64 (* 'rend' *); { "Render" }
  543. kFilterMinorClass = $66696C74 (* 'filt' *); { "Filters" }
  544. kArtisticMinorClass = $61727473 (* 'arts' *); { "Artistic }
  545. kBlurMinorClass = $626C7572 (* 'blur' *); { "Blur" }
  546. kSharpenMinorClass = $73687270 (* 'shrp' *); { "Sharpen" }
  547. kDistortMinorClass = $64697374 (* 'dist' *); { "Distort" }
  548. kNoiseMinorClass = $6E6F6973 (* 'nois' *); { "Noise" }
  549. kAdjustmentMinorClass = $61647374 (* 'adst' *); { "Adjustments" }
  550. kTransitionMinorClass = $7472616E (* 'tran' *); { "Transitions" }
  551. kWipeMinorClass = $77697065 (* 'wipe' *); { "Wipes" }
  552. k3DMinorClass = $707A7265 (* 'pzre' *); { "3D Transitions" }
  553. kCompositorMinorClass = $636F6D70 (* 'comp' *); { "Compositors" }
  554. kEffectsMinorClass = $66786678 (* 'fxfx' *); { "Special Effects" }
  555. kMiscMinorClass = $6D697363 (* 'misc' *); { "Miscellaneous" }
  556. {
  557. Effects can define a number of "preset" values which will be presented to the user
  558. in a simplified UI. Each preset is an atom within the parameter description list
  559. and must have an atom ID from 1 going up sequentially. Inside of this atom are three other
  560. atoms containing:
  561. 1) the name of the preset as a Pascal string
  562. 2) a preview picture for the preset, 86 x 64 pixels in size
  563. 3) the ENTIRE set of parameter values needed to create a sample of this preset.
  564. }
  565. kEffectPresetType = $70656666 (* 'peff' *);
  566. kPresetNameType = $706E616D (* 'pnam' *);
  567. kPresetNameID = 1;
  568. kPresetPreviewPictureType = $70706374 (* 'ppct' *);
  569. kPresetPreviewPictureID = 1;
  570. kPresetSettingsType = $70737374 (* 'psst' *);
  571. kPresetSettingsID = 1;
  572. kParameterDependencyName = $64656570 (* 'deep' *);
  573. kParameterDependencyID = 1;
  574. kParameterListDependsUponColorProfiles = $70726F66 (* 'prof' *);
  575. kParameterListDependsUponFonts = $666F6E74 (* 'font' *);
  576. type
  577. ParameterDependancyRecordPtr = ^ParameterDependancyRecord;
  578. ParameterDependancyRecord = record
  579. dependCount: SInt32;
  580. depends: array [0..0] of OSType;
  581. end;
  582. {
  583. enumeration list in container -- placed in root container, optional unless used by a
  584. parameter in the list
  585. }
  586. const
  587. kParameterEnumList = $656E756D (* 'enum' *);
  588. type
  589. EnumValuePairPtr = ^EnumValuePair;
  590. EnumValuePair = record
  591. value: SInt32;
  592. name: Str255;
  593. end;
  594. EnumListRecordPtr = ^EnumListRecord;
  595. EnumListRecord = record
  596. enumCount: SInt32; { number of enumeration items to follow }
  597. values: array [0..0] of EnumValuePair; { values and names for them, packed }
  598. end;
  599. { atom type of parameter }
  600. const
  601. kParameterAtomTypeAndID = $74797065 (* 'type' *);
  602. kNoAtom = $6E6F6E65 (* 'none' *); { atom type for no data got/set }
  603. kAtomNoFlags = $00000000;
  604. kAtomNotInterpolated = $00000001; { atom can never be interpolated }
  605. kAtomInterpolateIsOptional = $00000002; { atom can be interpolated, but it is an advanced user operation }
  606. kAtomMayBeIndexed = $00000004; { more than one value of atom can exist with accending IDs (ie, lists of colors) }
  607. type
  608. ParameterAtomTypeAndIDPtr = ^ParameterAtomTypeAndID;
  609. ParameterAtomTypeAndID = record
  610. atomType: QTAtomType; { type of atom this data comes from/goes into }
  611. atomID: QTAtomID; { ID of atom this data comes from/goes into }
  612. atomFlags: SInt32; { options for this atom }
  613. atomName: Str255; { name of this value type }
  614. end;
  615. { data type of a parameter }
  616. const
  617. kParameterDataType = $64617461 (* 'data' *);
  618. kParameterTypeDataLong = 2; { SInt16 value }
  619. kParameterTypeDataFixed = 3; { fixed point value }
  620. kParameterTypeDataRGBValue = 8; { RGBColor data }
  621. kParameterTypeDataDouble = 11; { IEEE 64 bit floating point value }
  622. kParameterTypeDataText = $74657874 (* 'text' *); { editable text item }
  623. kParameterTypeDataEnum = $656E756D (* 'enum' *); { enumerated lookup value }
  624. kParameterTypeDataBitField = $626F6F6C (* 'bool' *); { bit field value (something that holds boolean(s)) }
  625. kParameterTypeDataImage = $696D6167 (* 'imag' *); { reference to an image via Picture data }
  626. type
  627. ParameterDataTypePtr = ^ParameterDataType;
  628. ParameterDataType = record
  629. dataType: OSType; { type of data this item is stored as }
  630. end;
  631. {
  632. alternate (optional) data type -- main data type always required.
  633. Must be modified or deleted when modifying main data type.
  634. Main data type must be modified when alternate is modified.
  635. }
  636. const
  637. kParameterAlternateDataType = $616C7431 (* 'alt1' *);
  638. kParameterTypeDataColorValue = $636D6C72 (* 'cmlr' *); { CMColor data (supported on machines with ColorSync) }
  639. kParameterTypeDataCubic = $63756269 (* 'cubi' *); { cubic bezier(s) (no built-in support) }
  640. kParameterTypeDataNURB = $6E757262 (* 'nurb' *); { nurb(s) (no built-in support) }
  641. type
  642. ParameterAlternateDataEntryPtr = ^ParameterAlternateDataEntry;
  643. ParameterAlternateDataEntry = record
  644. dataType: OSType; { type of data this item is stored as }
  645. alternateAtom: QTAtomType; { where to store }
  646. end;
  647. ParameterAlternateDataTypePtr = ^ParameterAlternateDataType;
  648. ParameterAlternateDataType = record
  649. numEntries: SInt32;
  650. entries: array [0..0] of ParameterAlternateDataEntry;
  651. end;
  652. { legal values for the parameter }
  653. const
  654. kParameterDataRange = $72616E67 (* 'rang' *);
  655. kNoMinimumLongFixed = $7FFFFFFF; { ignore minimum/maxiumum values }
  656. kNoMaximumLongFixed = $80000000;
  657. kNoScaleLongFixed = 0; { don't perform any scaling of value }
  658. kNoPrecision = -1; { allow as many digits as format }
  659. { 'text' }
  660. type
  661. StringRangeRecordPtr = ^StringRangeRecord;
  662. StringRangeRecord = record
  663. maxChars: SInt32; { maximum length of string }
  664. maxLines: SInt32; { number of editing lines to use (1 typical, 0 to default) }
  665. end;
  666. { 'long' }
  667. LongRangeRecordPtr = ^LongRangeRecord;
  668. LongRangeRecord = record
  669. minValue: SInt32; { no less than this }
  670. maxValue: SInt32; { no more than this }
  671. scaleValue: SInt32; { muliply content by this going in, divide going out }
  672. precisionDigits: SInt32; { # digits of precision when editing via typing }
  673. end;
  674. { 'enum' }
  675. EnumRangeRecordPtr = ^EnumRangeRecord;
  676. EnumRangeRecord = record
  677. enumID: SInt32; { 'enum' list in root container to search within }
  678. end;
  679. { 'fixd' }
  680. FixedRangeRecordPtr = ^FixedRangeRecord;
  681. FixedRangeRecord = record
  682. minValue: Fixed; { no less than this }
  683. maxValue: Fixed; { no more than this }
  684. scaleValue: Fixed; { muliply content by this going in, divide going out }
  685. precisionDigits: SInt32; { # digits of precision when editing via typing }
  686. end;
  687. { 'doub' }
  688. { 'bool' }
  689. BooleanRangeRecordPtr = ^BooleanRangeRecord;
  690. BooleanRangeRecord = record
  691. maskValue: SInt32; { value to mask on/off to set/clear the boolean }
  692. end;
  693. { 'rgb ' }
  694. RGBRangeRecordPtr = ^RGBRangeRecord;
  695. RGBRangeRecord = record
  696. minColor: RGBColor;
  697. maxColor: RGBColor;
  698. end;
  699. { 'imag' }
  700. const
  701. kParameterImageNoFlags = 0;
  702. kParameterImageIsPreset = 1;
  703. kStandardPresetGroup = $70736574 (* 'pset' *);
  704. type
  705. ImageRangeRecordPtr = ^ImageRangeRecord;
  706. ImageRangeRecord = record
  707. imageFlags: SInt32;
  708. fileType: OSType; { file type to contain the preset group (normally kStandardPresetGroup) }
  709. replacedAtoms: SInt32; { # atoms at this level replaced by this preset group }
  710. end;
  711. { union of all of the above }
  712. { UI behavior of a parameter }
  713. const
  714. kParameterDataBehavior = $6469746C (* 'ditl' *);
  715. { items edited via typing }
  716. kParameterItemEditText = $65646974 (* 'edit' *); { edit text box }
  717. kParameterItemEditLong = $6C6F6E67 (* 'long' *); { long number editing box }
  718. kParameterItemEditFixed = $66697864 (* 'fixd' *); { fixed point number editing box }
  719. kParameterItemEditDouble = $646F7562 (* 'doub' *); { double number editing box }
  720. { items edited via control(s) }
  721. kParameterItemPopUp = $706F7075 (* 'popu' *); { pop up value for enum types }
  722. kParameterItemRadioCluster = $72616469 (* 'radi' *); { radio cluster for enum types }
  723. kParameterItemCheckBox = $63686578 (* 'chex' *); { check box for booleans }
  724. kParameterItemControl = $636E746C (* 'cntl' *); { item controlled via a standard control of some type }
  725. { special user items }
  726. kParameterItemLine = $6C696E65 (* 'line' *); { line }
  727. kParameterItemColorPicker = $7069636B (* 'pick' *); { color swatch & picker }
  728. kParameterItemGroupDivider = $64697669 (* 'divi' *); { start of a new group of items }
  729. kParameterItemStaticText = $73746174 (* 'stat' *); { display "parameter name" as static text }
  730. kParameterItemDragImage = $696D6167 (* 'imag' *); { allow image display, along with drag and drop }
  731. { flags valid for lines and groups }
  732. kGraphicsNoFlags = $00000000; { no options for graphics }
  733. kGraphicsFlagsGray = $00000001; { draw lines with gray }
  734. { flags valid for groups }
  735. kGroupNoFlags = $00000000; { no options for group -- may be combined with graphics options }
  736. kGroupAlignText = $00010000; { edit text items in group have the same size }
  737. kGroupSurroundBox = $00020000; { group should be surrounded with a box }
  738. kGroupMatrix = $00040000; { side-by-side arrangement of group is okay }
  739. kGroupNoName = $00080000; { name of group should not be displayed above box }
  740. { flags valid for popup/radiocluster/checkbox/control }
  741. kDisableControl = $00000001;
  742. kDisableWhenNotEqual = $00000001;
  743. kDisableWhenEqual = $00000011;
  744. kDisableWhenLessThan = $00000021;
  745. kDisableWhenGreaterThan = $00000031; { flags valid for controls }
  746. kCustomControl = $00100000; { flags valid for popups }
  747. kPopupStoreAsString = $00010000;
  748. type
  749. ControlBehaviorsPtr = ^ControlBehaviors;
  750. ControlBehaviors = record
  751. groupID: QTAtomID; { group under control of this item }
  752. controlValue: SInt32; { control value for comparison purposes }
  753. end;
  754. ParameterDataBehaviorPtr = ^ParameterDataBehavior;
  755. ParameterDataBehavior = record
  756. behaviorType: OSType;
  757. behaviorFlags: SInt32;
  758. case SInt16 of
  759. 0: (
  760. controls: ControlBehaviors;
  761. );
  762. end;
  763. { higher level purpose of a parameter or set of parameters }
  764. const
  765. kParameterDataUsage = $75736520 (* 'use ' *);
  766. kParameterUsagePixels = $7069786C (* 'pixl' *);
  767. kParameterUsageRectangle = $72656374 (* 'rect' *);
  768. kParameterUsagePoint = $78792020 (* 'xy ' *);
  769. kParameterUsage3DPoint = $78797A20 (* 'xyz ' *);
  770. kParameterUsageDegrees = $64656772 (* 'degr' *);
  771. kParameterUsageRadians = $72616473 (* 'rads' *);
  772. kParameterUsagePercent = $70636E74 (* 'pcnt' *);
  773. kParameterUsageSeconds = $73656373 (* 'secs' *);
  774. kParameterUsageMilliseconds = $6D736563 (* 'msec' *);
  775. kParameterUsageMicroseconds = $C2B57365 (* 'µsec' *);
  776. kParameterUsage3by3Matrix = $33627933 (* '3by3' *);
  777. kParameterUsageCircularDegrees = $64656763 (* 'degc' *);
  778. kParameterUsageCircularRadians = $72616463 (* 'radc' *);
  779. type
  780. ParameterDataUsagePtr = ^ParameterDataUsage;
  781. ParameterDataUsage = record
  782. usageType: OSType; { higher level purpose of the data or group }
  783. end;
  784. { default value(s) for a parameter }
  785. const
  786. kParameterDataDefaultItem = $64666C74 (* 'dflt' *);
  787. { atoms that help to fill in data within the info window }
  788. kParameterInfoLongName = $C2A96E61 (* '©nam' *);
  789. kParameterInfoCopyright = $C2A96370 (* '©cpy' *);
  790. kParameterInfoDescription = $C2A9696E (* '©inf' *);
  791. kParameterInfoWindowTitle = $C2A9776E (* '©wnt' *);
  792. kParameterInfoPicture = $C2A97069 (* '©pix' *);
  793. kParameterInfoManufacturer = $C2A96D61 (* '©man' *);
  794. kParameterInfoIDs = 1;
  795. { flags for ImageCodecValidateParameters }
  796. kParameterValidationNoFlags = $00000000;
  797. kParameterValidationFinalValidation = $00000001;
  798. type
  799. QTParameterValidationOptions = SInt32;
  800. { QTAtomTypes for atoms in image compressor settings containers }
  801. const
  802. kImageCodecSettingsFieldCount = $6669656C (* 'fiel' *); { Number of fields (UInt8) }
  803. kImageCodecSettingsFieldOrdering = $66646F6D (* 'fdom' *); { Ordering of fields (UInt8) }
  804. kImageCodecSettingsFieldOrderingF1F2 = 1;
  805. kImageCodecSettingsFieldOrderingF2F1 = 2;
  806. { Additional Image Description Extensions }
  807. kColorInfoImageDescriptionExtension = $636F6C72 (* 'colr' *); { image description extension describing the color properties }
  808. kPixelAspectRatioImageDescriptionExtension = $70617370 (* 'pasp' *); { image description extension describing the pixel aspect ratio }
  809. kCleanApertureImageDescriptionExtension = $636C6170 (* 'clap' *); { image description extension describing the pixel aspect ratio }
  810. { Color Info Image Description Extension types }
  811. kVideoColorInfoImageDescriptionExtensionType = $6E636C63 (* 'nclc' *); { For video color descriptions (defined below) }
  812. kICCProfileColorInfoImageDescriptionExtensionType = $70726F66 (* 'prof' *); { For ICC Profile color descriptions (not defined here) }
  813. { Video Color Info Image Description Extensions }
  814. type
  815. NCLCColorInfoImageDescriptionExtensionPtr = ^NCLCColorInfoImageDescriptionExtension;
  816. NCLCColorInfoImageDescriptionExtension = record
  817. colorParamType: OSType; { Type of color parameter 'nclc' }
  818. primaries: UInt16; { CIE 1931 xy chromaticity coordinates }
  819. transferFunction: UInt16; { Nonlinear transfer function from RGB to ErEgEb }
  820. matrix: UInt16; { Matrix from ErEgEb to EyEcbEcr }
  821. end;
  822. { Primaries }
  823. const
  824. kQTPrimaries_ITU_R709_2 = 1; { ITU-R BT.709-2, SMPTE 274M-1995, and SMPTE 296M-1997 }
  825. kQTPrimaries_Unknown = 2; { Unknown }
  826. kQTPrimaries_EBU_3213 = 5; { EBU Tech. 3213 (1981) }
  827. kQTPrimaries_SMPTE_C = 6; { SMPTE C Primaries from SMPTE RP 145-1993 }
  828. { Transfer Function }
  829. kQTTransferFunction_ITU_R709_2 = 1; { Recommendation ITU-R BT.709-2, SMPTE 274M-1995, SMPTE 296M-1997, SMPTE 293M-1996 and SMPTE 170M-1994 }
  830. kQTTransferFunction_Unknown = 2; { Unknown }
  831. kQTTransferFunction_SMPTE_240M_1995 = 7; { SMPTE 240M-1995 and interim color implementation of SMPTE 274M-1995 }
  832. { Matrix }
  833. kQTMatrix_ITU_R_709_2 = 1; { Recommendation ITU-R BT.709-2 (1125/60/2:1 only), SMPTE 274M-1995 and SMPTE 296M-1997 }
  834. kQTMatrix_Unknown = 2; { Unknown }
  835. 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 }
  836. kQTMatrix_SMPTE_240M_1995 = 7; { SMPTE 240M-1995 and interim color implementation of SMPTE 274M-1995 }
  837. { Field/Frame Info Image Description (this remaps to FieldInfoImageDescriptionExtension) }
  838. type
  839. FieldInfoImageDescriptionExtension2Ptr = ^FieldInfoImageDescriptionExtension2;
  840. FieldInfoImageDescriptionExtension2 = packed record
  841. fields: UInt8;
  842. detail: UInt8;
  843. end;
  844. const
  845. kQTFieldsProgressiveScan = 1;
  846. kQTFieldsInterlaced = 2;
  847. kQTFieldDetailUnknown = 0;
  848. kQTFieldDetailTemporalTopFirst = 1;
  849. kQTFieldDetailTemporalBottomFirst = 6;
  850. kQTFieldDetailSpatialFirstLineEarly = 9;
  851. kQTFieldDetailSpatialFirstLineLate = 14;
  852. { Pixel Aspect Ratio Image Description Extensions }
  853. type
  854. PixelAspectRatioImageDescriptionExtensionPtr = ^PixelAspectRatioImageDescriptionExtension;
  855. PixelAspectRatioImageDescriptionExtension = record
  856. hSpacing: UInt32; { Horizontal Spacing }
  857. vSpacing: UInt32; { Vertical Spacing }
  858. end;
  859. { Clean Aperture Image Description Extensions }
  860. CleanApertureImageDescriptionExtensionPtr = ^CleanApertureImageDescriptionExtension;
  861. CleanApertureImageDescriptionExtension = record
  862. cleanApertureWidthN: UInt32; { width of clean aperture, numerator, denominator }
  863. cleanApertureWidthD: UInt32;
  864. cleanApertureHeightN: UInt32; { height of clean aperture, numerator, denominator }
  865. cleanApertureHeightD: UInt32;
  866. horizOffN: UInt32; { horizontal offset of clean aperture center minus (width-1)/2, numerator, denominator }
  867. horizOffD: UInt32;
  868. vertOffN: UInt32; { vertical offset of clean aperture center minus (height-1)/2, numerator, denominator }
  869. vertOffD: UInt32;
  870. end;
  871. {$ifc TYPED_FUNCTION_POINTERS}
  872. ImageCodecMPDrawBandProcPtr = function(refcon: UnivPtr; var drp: ImageSubCodecDecompressRecord): ComponentResult;
  873. {$elsec}
  874. ImageCodecMPDrawBandProcPtr = ProcPtr;
  875. {$endc}
  876. {$ifc OPAQUE_UPP_TYPES}
  877. ImageCodecMPDrawBandUPP = ^SInt32; { an opaque UPP }
  878. {$elsec}
  879. ImageCodecMPDrawBandUPP = UniversalProcPtr;
  880. {$endc}
  881. const
  882. uppImageCodecMPDrawBandProcInfo = $000003F0;
  883. {
  884. * NewImageCodecMPDrawBandUPP()
  885. *
  886. * Availability:
  887. * Non-Carbon CFM: available as macro/inline
  888. * CarbonLib: in CarbonLib 1.0 and later
  889. * Mac OS X: in version 10.0 and later
  890. }
  891. function NewImageCodecMPDrawBandUPP(userRoutine: ImageCodecMPDrawBandProcPtr): ImageCodecMPDrawBandUPP; external name '_NewImageCodecMPDrawBandUPP'; { old name was NewImageCodecMPDrawBandProc }
  892. {
  893. * DisposeImageCodecMPDrawBandUPP()
  894. *
  895. * Availability:
  896. * Non-Carbon CFM: available as macro/inline
  897. * CarbonLib: in CarbonLib 1.0 and later
  898. * Mac OS X: in version 10.0 and later
  899. }
  900. procedure DisposeImageCodecMPDrawBandUPP(userUPP: ImageCodecMPDrawBandUPP); external name '_DisposeImageCodecMPDrawBandUPP';
  901. {
  902. * InvokeImageCodecMPDrawBandUPP()
  903. *
  904. * Availability:
  905. * Non-Carbon CFM: available as macro/inline
  906. * CarbonLib: in CarbonLib 1.0 and later
  907. * Mac OS X: in version 10.0 and later
  908. }
  909. function InvokeImageCodecMPDrawBandUPP(refcon: UnivPtr; var drp: ImageSubCodecDecompressRecord; userRoutine: ImageCodecMPDrawBandUPP): ComponentResult; external name '_InvokeImageCodecMPDrawBandUPP'; { old name was CallImageCodecMPDrawBandProc }
  910. { codec selectors 0-127 are reserved by Apple }
  911. { codec selectors 128-191 are subtype specific }
  912. { codec selectors 192-255 are vendor specific }
  913. { codec selectors 256-32767 are available for general use }
  914. { negative selectors are reserved by the Component Manager }
  915. {
  916. * ImageCodecGetCodecInfo()
  917. *
  918. * Availability:
  919. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  920. * CarbonLib: in CarbonLib 1.0 and later
  921. * Mac OS X: in version 10.0 and later
  922. * Windows: in qtmlClient.lib 3.0 and later
  923. }
  924. function ImageCodecGetCodecInfo(ci: ComponentInstance; var info: CodecInfo): ComponentResult; external name '_ImageCodecGetCodecInfo';
  925. {
  926. * ImageCodecGetCompressionTime()
  927. *
  928. * Availability:
  929. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  930. * CarbonLib: in CarbonLib 1.0 and later
  931. * Mac OS X: in version 10.0 and later
  932. * Windows: in qtmlClient.lib 3.0 and later
  933. }
  934. function ImageCodecGetCompressionTime(ci: ComponentInstance; src: PixMapHandle; const (*var*) srcRect: Rect; depth: SInt16; var spatialQuality: CodecQ; var temporalQuality: CodecQ; var time: UInt32): ComponentResult; external name '_ImageCodecGetCompressionTime';
  935. {
  936. * ImageCodecGetMaxCompressionSize()
  937. *
  938. * Availability:
  939. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  940. * CarbonLib: in CarbonLib 1.0 and later
  941. * Mac OS X: in version 10.0 and later
  942. * Windows: in qtmlClient.lib 3.0 and later
  943. }
  944. function ImageCodecGetMaxCompressionSize(ci: ComponentInstance; src: PixMapHandle; const (*var*) srcRect: Rect; depth: SInt16; quality: CodecQ; var size: SInt32): ComponentResult; external name '_ImageCodecGetMaxCompressionSize';
  945. {
  946. * ImageCodecPreCompress()
  947. *
  948. * Availability:
  949. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  950. * CarbonLib: in CarbonLib 1.0 and later
  951. * Mac OS X: in version 10.0 and later
  952. * Windows: in qtmlClient.lib 3.0 and later
  953. }
  954. function ImageCodecPreCompress(ci: ComponentInstance; var params: CodecCompressParams): ComponentResult; external name '_ImageCodecPreCompress';
  955. {
  956. * ImageCodecBandCompress()
  957. *
  958. * Availability:
  959. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  960. * CarbonLib: in CarbonLib 1.0 and later
  961. * Mac OS X: in version 10.0 and later
  962. * Windows: in qtmlClient.lib 3.0 and later
  963. }
  964. function ImageCodecBandCompress(ci: ComponentInstance; var params: CodecCompressParams): ComponentResult; external name '_ImageCodecBandCompress';
  965. {
  966. * ImageCodecPreDecompress()
  967. *
  968. * Availability:
  969. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  970. * CarbonLib: in CarbonLib 1.0 and later
  971. * Mac OS X: in version 10.0 and later
  972. * Windows: in qtmlClient.lib 3.0 and later
  973. }
  974. function ImageCodecPreDecompress(ci: ComponentInstance; var params: CodecDecompressParams): ComponentResult; external name '_ImageCodecPreDecompress';
  975. {
  976. * ImageCodecBandDecompress()
  977. *
  978. * Availability:
  979. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  980. * CarbonLib: in CarbonLib 1.0 and later
  981. * Mac OS X: in version 10.0 and later
  982. * Windows: in qtmlClient.lib 3.0 and later
  983. }
  984. function ImageCodecBandDecompress(ci: ComponentInstance; var params: CodecDecompressParams): ComponentResult; external name '_ImageCodecBandDecompress';
  985. {
  986. * ImageCodecBusy()
  987. *
  988. * Availability:
  989. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  990. * CarbonLib: in CarbonLib 1.0 and later
  991. * Mac OS X: in version 10.0 and later
  992. * Windows: in qtmlClient.lib 3.0 and later
  993. }
  994. function ImageCodecBusy(ci: ComponentInstance; seq: ImageSequence): ComponentResult; external name '_ImageCodecBusy';
  995. {
  996. * ImageCodecGetCompressedImageSize()
  997. *
  998. * Availability:
  999. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1000. * CarbonLib: in CarbonLib 1.0 and later
  1001. * Mac OS X: in version 10.0 and later
  1002. * Windows: in qtmlClient.lib 3.0 and later
  1003. }
  1004. function ImageCodecGetCompressedImageSize(ci: ComponentInstance; desc: ImageDescriptionHandle; data: Ptr; bufferSize: SInt32; dataProc: ICMDataProcRecordPtr; var dataSize: SInt32): ComponentResult; external name '_ImageCodecGetCompressedImageSize';
  1005. {
  1006. * ImageCodecGetSimilarity()
  1007. *
  1008. * Availability:
  1009. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1010. * CarbonLib: in CarbonLib 1.0 and later
  1011. * Mac OS X: in version 10.0 and later
  1012. * Windows: in qtmlClient.lib 3.0 and later
  1013. }
  1014. function ImageCodecGetSimilarity(ci: ComponentInstance; src: PixMapHandle; const (*var*) srcRect: Rect; desc: ImageDescriptionHandle; data: Ptr; var similarity: Fixed): ComponentResult; external name '_ImageCodecGetSimilarity';
  1015. {
  1016. * ImageCodecTrimImage()
  1017. *
  1018. * Availability:
  1019. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1020. * CarbonLib: in CarbonLib 1.0 and later
  1021. * Mac OS X: in version 10.0 and later
  1022. * Windows: in qtmlClient.lib 3.0 and later
  1023. }
  1024. function ImageCodecTrimImage(ci: ComponentInstance; Desc: ImageDescriptionHandle; inData: Ptr; inBufferSize: SInt32; dataProc: ICMDataProcRecordPtr; outData: Ptr; outBufferSize: SInt32; flushProc: ICMFlushProcRecordPtr; var trimRect: Rect; progressProc: ICMProgressProcRecordPtr): ComponentResult; external name '_ImageCodecTrimImage';
  1025. {
  1026. * ImageCodecRequestSettings()
  1027. *
  1028. * Availability:
  1029. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1030. * CarbonLib: in CarbonLib 1.0 and later
  1031. * Mac OS X: in version 10.0 and later
  1032. * Windows: in qtmlClient.lib 3.0 and later
  1033. }
  1034. function ImageCodecRequestSettings(ci: ComponentInstance; settings: Handle; var rp: Rect; filterProc: ModalFilterUPP): ComponentResult; external name '_ImageCodecRequestSettings';
  1035. {
  1036. * ImageCodecGetSettings()
  1037. *
  1038. * Availability:
  1039. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1040. * CarbonLib: in CarbonLib 1.0 and later
  1041. * Mac OS X: in version 10.0 and later
  1042. * Windows: in qtmlClient.lib 3.0 and later
  1043. }
  1044. function ImageCodecGetSettings(ci: ComponentInstance; settings: Handle): ComponentResult; external name '_ImageCodecGetSettings';
  1045. {
  1046. * ImageCodecSetSettings()
  1047. *
  1048. * Availability:
  1049. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1050. * CarbonLib: in CarbonLib 1.0 and later
  1051. * Mac OS X: in version 10.0 and later
  1052. * Windows: in qtmlClient.lib 3.0 and later
  1053. }
  1054. function ImageCodecSetSettings(ci: ComponentInstance; settings: Handle): ComponentResult; external name '_ImageCodecSetSettings';
  1055. {
  1056. * ImageCodecFlush()
  1057. *
  1058. * Availability:
  1059. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1060. * CarbonLib: in CarbonLib 1.0 and later
  1061. * Mac OS X: in version 10.0 and later
  1062. * Windows: in qtmlClient.lib 3.0 and later
  1063. }
  1064. function ImageCodecFlush(ci: ComponentInstance): ComponentResult; external name '_ImageCodecFlush';
  1065. {
  1066. * ImageCodecSetTimeCode()
  1067. *
  1068. * Availability:
  1069. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1070. * CarbonLib: in CarbonLib 1.0 and later
  1071. * Mac OS X: in version 10.0 and later
  1072. * Windows: in qtmlClient.lib 3.0 and later
  1073. }
  1074. function ImageCodecSetTimeCode(ci: ComponentInstance; timeCodeFormat: UnivPtr; timeCodeTime: UnivPtr): ComponentResult; external name '_ImageCodecSetTimeCode';
  1075. {
  1076. * ImageCodecIsImageDescriptionEquivalent()
  1077. *
  1078. * Availability:
  1079. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1080. * CarbonLib: in CarbonLib 1.0 and later
  1081. * Mac OS X: in version 10.0 and later
  1082. * Windows: in qtmlClient.lib 3.0 and later
  1083. }
  1084. function ImageCodecIsImageDescriptionEquivalent(ci: ComponentInstance; newDesc: ImageDescriptionHandle; var equivalent: boolean): ComponentResult; external name '_ImageCodecIsImageDescriptionEquivalent';
  1085. {
  1086. * ImageCodecNewMemory()
  1087. *
  1088. * Availability:
  1089. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1090. * CarbonLib: in CarbonLib 1.0 and later
  1091. * Mac OS X: in version 10.0 and later
  1092. * Windows: in qtmlClient.lib 3.0 and later
  1093. }
  1094. function ImageCodecNewMemory(ci: ComponentInstance; var data: Ptr; dataSize: Size; dataUse: SInt32; memoryGoneProc: ICMMemoryDisposedUPP; refCon: UnivPtr): ComponentResult; external name '_ImageCodecNewMemory';
  1095. {
  1096. * ImageCodecDisposeMemory()
  1097. *
  1098. * Availability:
  1099. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1100. * CarbonLib: in CarbonLib 1.0 and later
  1101. * Mac OS X: in version 10.0 and later
  1102. * Windows: in qtmlClient.lib 3.0 and later
  1103. }
  1104. function ImageCodecDisposeMemory(ci: ComponentInstance; data: Ptr): ComponentResult; external name '_ImageCodecDisposeMemory';
  1105. {
  1106. * ImageCodecHitTestData()
  1107. *
  1108. * Availability:
  1109. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1110. * CarbonLib: in CarbonLib 1.0 and later
  1111. * Mac OS X: in version 10.0 and later
  1112. * Windows: in qtmlClient.lib 3.0 and later
  1113. }
  1114. function ImageCodecHitTestData(ci: ComponentInstance; desc: ImageDescriptionHandle; data: UnivPtr; dataSize: Size; where: Point; var hit: boolean): ComponentResult; external name '_ImageCodecHitTestData';
  1115. {
  1116. * ImageCodecNewImageBufferMemory()
  1117. *
  1118. * Availability:
  1119. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1120. * CarbonLib: in CarbonLib 1.0 and later
  1121. * Mac OS X: in version 10.0 and later
  1122. * Windows: in qtmlClient.lib 3.0 and later
  1123. }
  1124. function ImageCodecNewImageBufferMemory(ci: ComponentInstance; var params: CodecDecompressParams; flags: SInt32; memoryGoneProc: ICMMemoryDisposedUPP; refCon: UnivPtr): ComponentResult; external name '_ImageCodecNewImageBufferMemory';
  1125. {
  1126. * ImageCodecExtractAndCombineFields()
  1127. *
  1128. * Availability:
  1129. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1130. * CarbonLib: in CarbonLib 1.0 and later
  1131. * Mac OS X: in version 10.0 and later
  1132. * Windows: in qtmlClient.lib 3.0 and later
  1133. }
  1134. function ImageCodecExtractAndCombineFields(ci: ComponentInstance; fieldFlags: SInt32; data1: UnivPtr; dataSize1: SInt32; desc1: ImageDescriptionHandle; data2: UnivPtr; dataSize2: SInt32; desc2: ImageDescriptionHandle; outputData: UnivPtr; var outDataSize: SInt32; descOut: ImageDescriptionHandle): ComponentResult; external name '_ImageCodecExtractAndCombineFields';
  1135. {
  1136. * ImageCodecGetMaxCompressionSizeWithSources()
  1137. *
  1138. * Availability:
  1139. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1140. * CarbonLib: in CarbonLib 1.0 and later
  1141. * Mac OS X: in version 10.0 and later
  1142. * Windows: in qtmlClient.lib 3.0 and later
  1143. }
  1144. function ImageCodecGetMaxCompressionSizeWithSources(ci: ComponentInstance; src: PixMapHandle; const (*var*) srcRect: Rect; depth: SInt16; quality: CodecQ; sourceData: CDSequenceDataSourcePtr; var size: SInt32): ComponentResult; external name '_ImageCodecGetMaxCompressionSizeWithSources';
  1145. {
  1146. * ImageCodecSetTimeBase()
  1147. *
  1148. * Availability:
  1149. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1150. * CarbonLib: in CarbonLib 1.0 and later
  1151. * Mac OS X: in version 10.0 and later
  1152. * Windows: in qtmlClient.lib 3.0 and later
  1153. }
  1154. function ImageCodecSetTimeBase(ci: ComponentInstance; base: UnivPtr): ComponentResult; external name '_ImageCodecSetTimeBase';
  1155. {
  1156. * ImageCodecSourceChanged()
  1157. *
  1158. * Availability:
  1159. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1160. * CarbonLib: in CarbonLib 1.0 and later
  1161. * Mac OS X: in version 10.0 and later
  1162. * Windows: in qtmlClient.lib 3.0 and later
  1163. }
  1164. function ImageCodecSourceChanged(ci: ComponentInstance; majorSourceChangeSeed: UInt32; minorSourceChangeSeed: UInt32; sourceData: CDSequenceDataSourcePtr; var flagsOut: SInt32): ComponentResult; external name '_ImageCodecSourceChanged';
  1165. {
  1166. * ImageCodecFlushFrame()
  1167. *
  1168. * Availability:
  1169. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1170. * CarbonLib: in CarbonLib 1.0 and later
  1171. * Mac OS X: in version 10.0 and later
  1172. * Windows: in qtmlClient.lib 3.0 and later
  1173. }
  1174. function ImageCodecFlushFrame(ci: ComponentInstance; flags: UInt32): ComponentResult; external name '_ImageCodecFlushFrame';
  1175. {
  1176. * ImageCodecGetSettingsAsText()
  1177. *
  1178. * Availability:
  1179. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1180. * CarbonLib: in CarbonLib 1.1 and later
  1181. * Mac OS X: in version 10.0 and later
  1182. * Windows: in qtmlClient.lib 3.0 and later
  1183. }
  1184. function ImageCodecGetSettingsAsText(ci: ComponentInstance; var text: Handle): ComponentResult; external name '_ImageCodecGetSettingsAsText';
  1185. {
  1186. * ImageCodecGetParameterListHandle()
  1187. *
  1188. * Availability:
  1189. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1190. * CarbonLib: in CarbonLib 1.0 and later
  1191. * Mac OS X: in version 10.0 and later
  1192. * Windows: in qtmlClient.lib 3.0 and later
  1193. }
  1194. function ImageCodecGetParameterListHandle(ci: ComponentInstance; var parameterDescriptionHandle: Handle): ComponentResult; external name '_ImageCodecGetParameterListHandle';
  1195. {
  1196. * ImageCodecGetParameterList()
  1197. *
  1198. * Availability:
  1199. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1200. * CarbonLib: in CarbonLib 1.0 and later
  1201. * Mac OS X: in version 10.0 and later
  1202. * Windows: in qtmlClient.lib 3.0 and later
  1203. }
  1204. function ImageCodecGetParameterList(ci: ComponentInstance; var parameterDescription: QTAtomContainer): ComponentResult; external name '_ImageCodecGetParameterList';
  1205. {
  1206. * ImageCodecCreateStandardParameterDialog()
  1207. *
  1208. * Availability:
  1209. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1210. * CarbonLib: in CarbonLib 1.0 and later
  1211. * Mac OS X: in version 10.0 and later
  1212. * Windows: in qtmlClient.lib 3.0 and later
  1213. }
  1214. function ImageCodecCreateStandardParameterDialog(ci: ComponentInstance; parameterDescription: QTAtomContainer; parameters: QTAtomContainer; dialogOptions: QTParameterDialogOptions; existingDialog: DialogPtr; existingUserItem: SInt16; var createdDialog: QTParameterDialog): ComponentResult; external name '_ImageCodecCreateStandardParameterDialog';
  1215. {
  1216. * ImageCodecIsStandardParameterDialogEvent()
  1217. *
  1218. * Availability:
  1219. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1220. * CarbonLib: in CarbonLib 1.0 and later
  1221. * Mac OS X: in version 10.0 and later
  1222. * Windows: in qtmlClient.lib 3.0 and later
  1223. }
  1224. function ImageCodecIsStandardParameterDialogEvent(ci: ComponentInstance; var pEvent: EventRecord; createdDialog: QTParameterDialog): ComponentResult; external name '_ImageCodecIsStandardParameterDialogEvent';
  1225. {
  1226. * ImageCodecDismissStandardParameterDialog()
  1227. *
  1228. * Availability:
  1229. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1230. * CarbonLib: in CarbonLib 1.0 and later
  1231. * Mac OS X: in version 10.0 and later
  1232. * Windows: in qtmlClient.lib 3.0 and later
  1233. }
  1234. function ImageCodecDismissStandardParameterDialog(ci: ComponentInstance; createdDialog: QTParameterDialog): ComponentResult; external name '_ImageCodecDismissStandardParameterDialog';
  1235. {
  1236. * ImageCodecStandardParameterDialogDoAction()
  1237. *
  1238. * Availability:
  1239. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1240. * CarbonLib: in CarbonLib 1.0 and later
  1241. * Mac OS X: in version 10.0 and later
  1242. * Windows: in qtmlClient.lib 3.0 and later
  1243. }
  1244. function ImageCodecStandardParameterDialogDoAction(ci: ComponentInstance; createdDialog: QTParameterDialog; action: SInt32; params: UnivPtr): ComponentResult; external name '_ImageCodecStandardParameterDialogDoAction';
  1245. {
  1246. * ImageCodecNewImageGWorld()
  1247. *
  1248. * Availability:
  1249. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1250. * CarbonLib: in CarbonLib 1.0 and later
  1251. * Mac OS X: in version 10.0 and later
  1252. * Windows: in qtmlClient.lib 3.0 and later
  1253. }
  1254. function ImageCodecNewImageGWorld(ci: ComponentInstance; var params: CodecDecompressParams; var newGW: GWorldPtr; flags: SInt32): ComponentResult; external name '_ImageCodecNewImageGWorld';
  1255. {
  1256. * ImageCodecDisposeImageGWorld()
  1257. *
  1258. * Availability:
  1259. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1260. * CarbonLib: in CarbonLib 1.0 and later
  1261. * Mac OS X: in version 10.0 and later
  1262. * Windows: in qtmlClient.lib 3.0 and later
  1263. }
  1264. function ImageCodecDisposeImageGWorld(ci: ComponentInstance; theGW: GWorldPtr): ComponentResult; external name '_ImageCodecDisposeImageGWorld';
  1265. {
  1266. * ImageCodecHitTestDataWithFlags()
  1267. *
  1268. * Availability:
  1269. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1270. * CarbonLib: in CarbonLib 1.1 and later
  1271. * Mac OS X: in version 10.0 and later
  1272. * Windows: in qtmlClient.lib 3.0 and later
  1273. }
  1274. function ImageCodecHitTestDataWithFlags(ci: ComponentInstance; desc: ImageDescriptionHandle; data: UnivPtr; dataSize: Size; where: Point; var hit: SInt32; hitFlags: SInt32): ComponentResult; external name '_ImageCodecHitTestDataWithFlags';
  1275. {
  1276. * ImageCodecValidateParameters()
  1277. *
  1278. * Availability:
  1279. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1280. * CarbonLib: in CarbonLib 1.0 and later
  1281. * Mac OS X: in version 10.0 and later
  1282. * Windows: in qtmlClient.lib 3.0 and later
  1283. }
  1284. function ImageCodecValidateParameters(ci: ComponentInstance; parameters: QTAtomContainer; validationFlags: QTParameterValidationOptions; errorString: StringPtr): ComponentResult; external name '_ImageCodecValidateParameters';
  1285. {
  1286. * ImageCodecGetBaseMPWorkFunction()
  1287. *
  1288. * Availability:
  1289. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1290. * CarbonLib: in CarbonLib 1.0 and later
  1291. * Mac OS X: in version 10.0 and later
  1292. * Windows: in qtmlClient.lib 3.0 and later
  1293. }
  1294. function ImageCodecGetBaseMPWorkFunction(ci: ComponentInstance; var workFunction: ComponentMPWorkFunctionUPP; var refCon: UnivPtr; drawProc: ImageCodecMPDrawBandUPP; drawProcRefCon: UnivPtr): ComponentResult; external name '_ImageCodecGetBaseMPWorkFunction';
  1295. {
  1296. * ImageCodecRequestGammaLevel()
  1297. *
  1298. * Availability:
  1299. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  1300. * CarbonLib: in CarbonLib 1.3 and later
  1301. * Mac OS X: in version 10.0 and later
  1302. * Windows: in qtmlClient.lib 5.0 and later
  1303. }
  1304. function ImageCodecRequestGammaLevel(ci: ComponentInstance; srcGammaLevel: Fixed; dstGammaLevel: Fixed; var codecCanMatch: SInt32): ComponentResult; external name '_ImageCodecRequestGammaLevel';
  1305. {
  1306. * ImageCodecGetSourceDataGammaLevel()
  1307. *
  1308. * Availability:
  1309. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  1310. * CarbonLib: in CarbonLib 1.3 and later
  1311. * Mac OS X: in version 10.0 and later
  1312. * Windows: in qtmlClient.lib 5.0 and later
  1313. }
  1314. function ImageCodecGetSourceDataGammaLevel(ci: ComponentInstance; var sourceDataGammaLevel: Fixed): ComponentResult; external name '_ImageCodecGetSourceDataGammaLevel';
  1315. {
  1316. * ImageCodecGetDecompressLatency()
  1317. *
  1318. * Availability:
  1319. * Non-Carbon CFM: in QuickTimeLib 5.0 and later
  1320. * CarbonLib: in CarbonLib 1.3 and later
  1321. * Mac OS X: in version 10.0 and later
  1322. * Windows: in qtmlClient.lib 5.0 and later
  1323. }
  1324. function ImageCodecGetDecompressLatency(ci: ComponentInstance; var latency: TimeRecord): ComponentResult; external name '_ImageCodecGetDecompressLatency';
  1325. {
  1326. * ImageCodecMergeFloatingImageOntoWindow()
  1327. *
  1328. * Availability:
  1329. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  1330. * CarbonLib: in CarbonLib 1.6 and later
  1331. * Mac OS X: in version 10.2 and later
  1332. * Windows: in qtmlClient.lib 6.0 and later
  1333. }
  1334. function ImageCodecMergeFloatingImageOntoWindow(ci: ComponentInstance; flags: UInt32): ComponentResult; external name '_ImageCodecMergeFloatingImageOntoWindow';
  1335. {
  1336. * ImageCodecRemoveFloatingImage()
  1337. *
  1338. * Availability:
  1339. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  1340. * CarbonLib: in CarbonLib 1.6 and later
  1341. * Mac OS X: in version 10.2 and later
  1342. * Windows: in qtmlClient.lib 6.0 and later
  1343. }
  1344. function ImageCodecRemoveFloatingImage(ci: ComponentInstance; flags: UInt32): ComponentResult; external name '_ImageCodecRemoveFloatingImage';
  1345. {
  1346. * ImageCodecGetDITLForSize()
  1347. *
  1348. * Availability:
  1349. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  1350. * CarbonLib: in CarbonLib 1.6 and later
  1351. * Mac OS X: in version 10.2 and later
  1352. * Windows: in qtmlClient.lib 6.0 and later
  1353. }
  1354. function ImageCodecGetDITLForSize(ci: ComponentInstance; var ditl: Handle; var requestedSize: Point): ComponentResult; external name '_ImageCodecGetDITLForSize';
  1355. {
  1356. * ImageCodecDITLInstall()
  1357. *
  1358. * Availability:
  1359. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  1360. * CarbonLib: in CarbonLib 1.6 and later
  1361. * Mac OS X: in version 10.2 and later
  1362. * Windows: in qtmlClient.lib 6.0 and later
  1363. }
  1364. function ImageCodecDITLInstall(ci: ComponentInstance; d: DialogRef; itemOffset: SInt16): ComponentResult; external name '_ImageCodecDITLInstall';
  1365. {
  1366. * ImageCodecDITLEvent()
  1367. *
  1368. * Availability:
  1369. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  1370. * CarbonLib: in CarbonLib 1.6 and later
  1371. * Mac OS X: in version 10.2 and later
  1372. * Windows: in qtmlClient.lib 6.0 and later
  1373. }
  1374. function ImageCodecDITLEvent(ci: ComponentInstance; d: DialogRef; itemOffset: SInt16; const (*var*) theEvent: EventRecord; var itemHit: SInt16; var handled: boolean): ComponentResult; external name '_ImageCodecDITLEvent';
  1375. {
  1376. * ImageCodecDITLItem()
  1377. *
  1378. * Availability:
  1379. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  1380. * CarbonLib: in CarbonLib 1.6 and later
  1381. * Mac OS X: in version 10.2 and later
  1382. * Windows: in qtmlClient.lib 6.0 and later
  1383. }
  1384. function ImageCodecDITLItem(ci: ComponentInstance; d: DialogRef; itemOffset: SInt16; itemNum: SInt16): ComponentResult; external name '_ImageCodecDITLItem';
  1385. {
  1386. * ImageCodecDITLRemove()
  1387. *
  1388. * Availability:
  1389. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  1390. * CarbonLib: in CarbonLib 1.6 and later
  1391. * Mac OS X: in version 10.2 and later
  1392. * Windows: in qtmlClient.lib 6.0 and later
  1393. }
  1394. function ImageCodecDITLRemove(ci: ComponentInstance; d: DialogRef; itemOffset: SInt16): ComponentResult; external name '_ImageCodecDITLRemove';
  1395. {
  1396. * ImageCodecDITLValidateInput()
  1397. *
  1398. * Availability:
  1399. * Non-Carbon CFM: in QuickTimeLib 6.0 and later
  1400. * CarbonLib: in CarbonLib 1.6 and later
  1401. * Mac OS X: in version 10.2 and later
  1402. * Windows: in qtmlClient.lib 6.0 and later
  1403. }
  1404. function ImageCodecDITLValidateInput(ci: ComponentInstance; var ok: boolean): ComponentResult; external name '_ImageCodecDITLValidateInput';
  1405. {
  1406. * ImageCodecPreflight()
  1407. *
  1408. * Availability:
  1409. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1410. * CarbonLib: in CarbonLib 1.0 and later
  1411. * Mac OS X: in version 10.0 and later
  1412. * Windows: in qtmlClient.lib 3.0 and later
  1413. }
  1414. function ImageCodecPreflight(ci: ComponentInstance; var params: CodecDecompressParams): ComponentResult; external name '_ImageCodecPreflight';
  1415. {
  1416. * ImageCodecInitialize()
  1417. *
  1418. * Availability:
  1419. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1420. * CarbonLib: in CarbonLib 1.0 and later
  1421. * Mac OS X: in version 10.0 and later
  1422. * Windows: in qtmlClient.lib 3.0 and later
  1423. }
  1424. function ImageCodecInitialize(ci: ComponentInstance; var cap: ImageSubCodecDecompressCapabilities): ComponentResult; external name '_ImageCodecInitialize';
  1425. {
  1426. * ImageCodecBeginBand()
  1427. *
  1428. * Availability:
  1429. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1430. * CarbonLib: in CarbonLib 1.0 and later
  1431. * Mac OS X: in version 10.0 and later
  1432. * Windows: in qtmlClient.lib 3.0 and later
  1433. }
  1434. function ImageCodecBeginBand(ci: ComponentInstance; var params: CodecDecompressParams; var drp: ImageSubCodecDecompressRecord; flags: SInt32): ComponentResult; external name '_ImageCodecBeginBand';
  1435. {
  1436. * ImageCodecDrawBand()
  1437. *
  1438. * Availability:
  1439. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1440. * CarbonLib: in CarbonLib 1.0 and later
  1441. * Mac OS X: in version 10.0 and later
  1442. * Windows: in qtmlClient.lib 3.0 and later
  1443. }
  1444. function ImageCodecDrawBand(ci: ComponentInstance; var drp: ImageSubCodecDecompressRecord): ComponentResult; external name '_ImageCodecDrawBand';
  1445. {
  1446. * ImageCodecEndBand()
  1447. *
  1448. * Availability:
  1449. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1450. * CarbonLib: in CarbonLib 1.0 and later
  1451. * Mac OS X: in version 10.0 and later
  1452. * Windows: in qtmlClient.lib 3.0 and later
  1453. }
  1454. function ImageCodecEndBand(ci: ComponentInstance; var drp: ImageSubCodecDecompressRecord; result: OSErr; flags: SInt32): ComponentResult; external name '_ImageCodecEndBand';
  1455. {
  1456. * ImageCodecQueueStarting()
  1457. *
  1458. * Availability:
  1459. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1460. * CarbonLib: in CarbonLib 1.0 and later
  1461. * Mac OS X: in version 10.0 and later
  1462. * Windows: in qtmlClient.lib 3.0 and later
  1463. }
  1464. function ImageCodecQueueStarting(ci: ComponentInstance): ComponentResult; external name '_ImageCodecQueueStarting';
  1465. {
  1466. * ImageCodecQueueStopping()
  1467. *
  1468. * Availability:
  1469. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1470. * CarbonLib: in CarbonLib 1.0 and later
  1471. * Mac OS X: in version 10.0 and later
  1472. * Windows: in qtmlClient.lib 3.0 and later
  1473. }
  1474. function ImageCodecQueueStopping(ci: ComponentInstance): ComponentResult; external name '_ImageCodecQueueStopping';
  1475. {
  1476. * ImageCodecDroppingFrame()
  1477. *
  1478. * Availability:
  1479. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1480. * CarbonLib: in CarbonLib 1.0 and later
  1481. * Mac OS X: in version 10.0 and later
  1482. * Windows: in qtmlClient.lib 3.0 and later
  1483. }
  1484. function ImageCodecDroppingFrame(ci: ComponentInstance; const (*var*) drp: ImageSubCodecDecompressRecord): ComponentResult; external name '_ImageCodecDroppingFrame';
  1485. {
  1486. * ImageCodecScheduleFrame()
  1487. *
  1488. * Availability:
  1489. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  1490. * CarbonLib: in CarbonLib 1.0.2 and later
  1491. * Mac OS X: in version 10.0 and later
  1492. * Windows: in qtmlClient.lib 4.0 and later
  1493. }
  1494. function ImageCodecScheduleFrame(ci: ComponentInstance; const (*var*) drp: ImageSubCodecDecompressRecord; triggerProc: ImageCodecTimeTriggerUPP; triggerProcRefCon: UnivPtr): ComponentResult; external name '_ImageCodecScheduleFrame';
  1495. {
  1496. * ImageCodecCancelTrigger()
  1497. *
  1498. * Availability:
  1499. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  1500. * CarbonLib: in CarbonLib 1.0.2 and later
  1501. * Mac OS X: in version 10.0 and later
  1502. * Windows: in qtmlClient.lib 4.0 and later
  1503. }
  1504. function ImageCodecCancelTrigger(ci: ComponentInstance): ComponentResult; external name '_ImageCodecCancelTrigger';
  1505. const
  1506. kMotionJPEGTag = $6D6A7067 (* 'mjpg' *);
  1507. kJPEGQuantizationTablesImageDescriptionExtension = $6D6A7174 (* 'mjqt' *);
  1508. kJPEGHuffmanTablesImageDescriptionExtension = $6D6A6874 (* 'mjht' *);
  1509. kFieldInfoImageDescriptionExtension = $6669656C (* 'fiel' *); { image description extension describing the field count and field orderings }
  1510. kFieldOrderUnknown = 0;
  1511. kFieldsStoredF1F2DisplayedF1F2 = 1;
  1512. kFieldsStoredF1F2DisplayedF2F1 = 2;
  1513. kFieldsStoredF2F1DisplayedF1F2 = 5;
  1514. kFieldsStoredF2F1DisplayedF2F1 = 6;
  1515. type
  1516. MotionJPEGApp1MarkerPtr = ^MotionJPEGApp1Marker;
  1517. MotionJPEGApp1Marker = record
  1518. unused: SInt32;
  1519. tag: SInt32;
  1520. fieldSize: SInt32;
  1521. paddedFieldSize: SInt32;
  1522. offsetToNextField: SInt32;
  1523. qTableOffset: SInt32;
  1524. huffmanTableOffset: SInt32;
  1525. sofOffset: SInt32;
  1526. sosOffset: SInt32;
  1527. soiOffset: SInt32;
  1528. end;
  1529. FieldInfoImageDescriptionExtensionPtr = ^FieldInfoImageDescriptionExtension;
  1530. FieldInfoImageDescriptionExtension = packed record
  1531. fieldCount: UInt8;
  1532. fieldOrderings: UInt8;
  1533. end;
  1534. {
  1535. * QTPhotoSetSampling()
  1536. *
  1537. * Availability:
  1538. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1539. * CarbonLib: in CarbonLib 1.0 and later
  1540. * Mac OS X: in version 10.0 and later
  1541. * Windows: in qtmlClient.lib 3.0 and later
  1542. }
  1543. function QTPhotoSetSampling(codec: ComponentInstance; yH: SInt16; yV: SInt16; cbH: SInt16; cbV: SInt16; crH: SInt16; crV: SInt16): ComponentResult; external name '_QTPhotoSetSampling';
  1544. {
  1545. * QTPhotoSetRestartInterval()
  1546. *
  1547. * Availability:
  1548. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1549. * CarbonLib: in CarbonLib 1.0 and later
  1550. * Mac OS X: in version 10.0 and later
  1551. * Windows: in qtmlClient.lib 3.0 and later
  1552. }
  1553. function QTPhotoSetRestartInterval(codec: ComponentInstance; restartInterval: UInt16): ComponentResult; external name '_QTPhotoSetRestartInterval';
  1554. {
  1555. * QTPhotoDefineHuffmanTable()
  1556. *
  1557. * Availability:
  1558. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1559. * CarbonLib: in CarbonLib 1.0 and later
  1560. * Mac OS X: in version 10.0 and later
  1561. * Windows: in qtmlClient.lib 3.0 and later
  1562. }
  1563. function QTPhotoDefineHuffmanTable(codec: ComponentInstance; componentNumber: SInt16; isDC: boolean; lengthCounts: UInt8Ptr; values: UInt8Ptr): ComponentResult; external name '_QTPhotoDefineHuffmanTable';
  1564. {
  1565. * QTPhotoDefineQuantizationTable()
  1566. *
  1567. * Availability:
  1568. * Non-Carbon CFM: in QuickTimeLib 2.5 and later
  1569. * CarbonLib: in CarbonLib 1.0 and later
  1570. * Mac OS X: in version 10.0 and later
  1571. * Windows: in qtmlClient.lib 3.0 and later
  1572. }
  1573. function QTPhotoDefineQuantizationTable(codec: ComponentInstance; componentNumber: SInt16; table: UInt8Ptr): ComponentResult; external name '_QTPhotoDefineQuantizationTable';
  1574. { source identifier -- placed in root container of description, one or more required }
  1575. const
  1576. kEffectSourceName = $73726320 (* 'src ' *);
  1577. { source type -- placed in the input map to identify the source kind }
  1578. kEffectDataSourceType = $64747374 (* 'dtst' *);
  1579. { default effect types }
  1580. kEffectRawSource = 0; { the source is raw image data }
  1581. kEffectGenericType = $67656666 (* 'geff' *); { generic effect for combining others }
  1582. type
  1583. EffectSourcePtr = ^EffectSource;
  1584. SourceDataPtr = ^SourceData;
  1585. SourceData = record
  1586. case SInt16 of
  1587. 0: (
  1588. image: CDSequenceDataSourcePtr;
  1589. );
  1590. 1: (
  1591. effect: EffectSourcePtr;
  1592. );
  1593. end;
  1594. EffectSource = record
  1595. effectType: SInt32; { type of effect or kEffectRawSource if raw ICM data }
  1596. data: Ptr; { track data for this effect }
  1597. source: SourceData; { source/effect pointers }
  1598. next: EffectSourcePtr; { the next source for the parent effect }
  1599. { fields added for QuickTime 4.0 }
  1600. lastTranslatedFrameTime: TimeValue; { start frame time of last converted frame, may be -1 }
  1601. lastFrameDuration: TimeValue; { duration of the last converted frame, may be zero }
  1602. lastFrameTimeScale: TimeValue; { time scale of this source frame, only has meaning if above fields are valid }
  1603. end;
  1604. EffectsFrameParamsPtr = ^EffectsFrameParams;
  1605. EffectsFrameParams = record
  1606. frameTime: ICMFrameTimeRecord; { timing data }
  1607. effectDuration: SInt32; { the duration of a single effect frame }
  1608. doAsync: boolean; { set to true if the effect can go async }
  1609. pad1,pad2,pad3: SInt8;
  1610. source: EffectSourcePtr; { ptr to the source input tree }
  1611. refCon: Ptr; { storage for the effect }
  1612. end;
  1613. {
  1614. * ImageCodecEffectSetup()
  1615. *
  1616. * Availability:
  1617. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1618. * CarbonLib: in CarbonLib 1.0 and later
  1619. * Mac OS X: in version 10.0 and later
  1620. * Windows: in qtmlClient.lib 3.0 and later
  1621. }
  1622. function ImageCodecEffectSetup(effect: ComponentInstance; var p: CodecDecompressParams): ComponentResult; external name '_ImageCodecEffectSetup';
  1623. {
  1624. * ImageCodecEffectBegin()
  1625. *
  1626. * Availability:
  1627. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1628. * CarbonLib: in CarbonLib 1.0 and later
  1629. * Mac OS X: in version 10.0 and later
  1630. * Windows: in qtmlClient.lib 3.0 and later
  1631. }
  1632. function ImageCodecEffectBegin(effect: ComponentInstance; var p: CodecDecompressParams; ePtr: EffectsFrameParamsPtr): ComponentResult; external name '_ImageCodecEffectBegin';
  1633. {
  1634. * ImageCodecEffectRenderFrame()
  1635. *
  1636. * Availability:
  1637. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1638. * CarbonLib: in CarbonLib 1.0 and later
  1639. * Mac OS X: in version 10.0 and later
  1640. * Windows: in qtmlClient.lib 3.0 and later
  1641. }
  1642. function ImageCodecEffectRenderFrame(effect: ComponentInstance; p: EffectsFrameParamsPtr): ComponentResult; external name '_ImageCodecEffectRenderFrame';
  1643. {
  1644. * ImageCodecEffectConvertEffectSourceToFormat()
  1645. *
  1646. * Availability:
  1647. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1648. * CarbonLib: in CarbonLib 1.0 and later
  1649. * Mac OS X: in version 10.0 and later
  1650. * Windows: in qtmlClient.lib 3.0 and later
  1651. }
  1652. function ImageCodecEffectConvertEffectSourceToFormat(effect: ComponentInstance; sourceToConvert: EffectSourcePtr; requestedDesc: ImageDescriptionHandle): ComponentResult; external name '_ImageCodecEffectConvertEffectSourceToFormat';
  1653. {
  1654. * ImageCodecEffectCancel()
  1655. *
  1656. * Availability:
  1657. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1658. * CarbonLib: in CarbonLib 1.0 and later
  1659. * Mac OS X: in version 10.0 and later
  1660. * Windows: in qtmlClient.lib 3.0 and later
  1661. }
  1662. function ImageCodecEffectCancel(effect: ComponentInstance; p: EffectsFrameParamsPtr): ComponentResult; external name '_ImageCodecEffectCancel';
  1663. {
  1664. * ImageCodecEffectGetSpeed()
  1665. *
  1666. * Availability:
  1667. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1668. * CarbonLib: in CarbonLib 1.0 and later
  1669. * Mac OS X: in version 10.0 and later
  1670. * Windows: in qtmlClient.lib 3.0 and later
  1671. }
  1672. function ImageCodecEffectGetSpeed(effect: ComponentInstance; parameters: QTAtomContainer; var pFPS: Fixed): ComponentResult; external name '_ImageCodecEffectGetSpeed';
  1673. const
  1674. kSMPTENoFlag = 0;
  1675. kSMPTESmoothEdgeFlag = $01; { smooth edges of the stroke }
  1676. kSMPTEStrokeEdgeFlag = $02; { stroke edge with color }
  1677. type
  1678. SMPTEFlags = SInt32;
  1679. SMPTEFrameReference = SInt32;
  1680. const
  1681. kSlideHorizontalWipe = 1;
  1682. kSlideVerticalWipe = 2;
  1683. kTopLeftWipe = 3;
  1684. kTopRightWipe = 4;
  1685. kBottomRightWipe = 5;
  1686. kBottomLeftWipe = 6;
  1687. kFourCornerWipe = 7;
  1688. kFourBoxWipe = 8;
  1689. kBarnVerticalWipe = 21;
  1690. kBarnHorizontalWipe = 22;
  1691. kTopCenterWipe = 23;
  1692. kRightCenterWipe = 24;
  1693. kBottomCenterWipe = 25;
  1694. kLeftCenterWipe = 26;
  1695. kDiagonalLeftDownWipe = 41;
  1696. kDiagonalRightDownWipe = 42;
  1697. kTopBottomBowTieWipe = 43;
  1698. kLeftRightBowTieWipe = 44;
  1699. kDiagonalLeftOutWipe = 45;
  1700. kDiagonalRightOutWipe = 46;
  1701. kDiagonalCrossWipe = 47;
  1702. kDiagonalBoxWipe = 48;
  1703. kFilledVWipe = 61;
  1704. kFilledVRightWipe = 62;
  1705. kFilledVBottomWipe = 63;
  1706. kFilledVLeftWipe = 64;
  1707. kHollowVWipe = 65;
  1708. kHollowVRightWipe = 66;
  1709. kHollowVBottomWipe = 67;
  1710. kHollowVLeftWipe = 68;
  1711. kVerticalZigZagWipe = 71;
  1712. kHorizontalZigZagWipe = 72;
  1713. kVerticalBarnZigZagWipe = 73;
  1714. kHorizontalBarnZigZagWipe = 74;
  1715. kRectangleWipe = 101;
  1716. kDiamondWipe = 102;
  1717. kTriangleWipe = 103;
  1718. kTriangleRightWipe = 104;
  1719. kTriangleUpsideDownWipe = 105;
  1720. kTriangleLeftWipe = 106;
  1721. kSpaceShipWipe = 107;
  1722. kSpaceShipRightWipe = 108;
  1723. kSpaceShipUpsideDownWipe = 109;
  1724. kSpaceShipLeftWipe = 110;
  1725. kPentagonWipe = 111;
  1726. kPentagonUpsideDownWipe = 112;
  1727. kHexagonWipe = 113;
  1728. kHexagonSideWipe = 114;
  1729. kCircleWipe = 119;
  1730. kOvalWipe = 120;
  1731. kOvalSideWipe = 121;
  1732. kCatEyeWipe = 122;
  1733. kCatEyeSideWipe = 123;
  1734. kRoundRectWipe = 124;
  1735. kRoundRectSideWipe = 125;
  1736. kFourPointStarWipe = 127;
  1737. kFivePointStarWipe = 128;
  1738. kStarOfDavidWipe = 129;
  1739. kHeartWipe = 130;
  1740. kKeyholeWipe = 131;
  1741. kRotatingTopWipe = 201;
  1742. kRotatingRightWipe = 202;
  1743. kRotatingBottomWipe = 203;
  1744. kRotatingLeftWipe = 204;
  1745. kRotatingTopBottomWipe = 205;
  1746. kRotatingLeftRightWipe = 206;
  1747. kRotatingQuadrantWipe = 207;
  1748. kTopToBottom180Wipe = 211;
  1749. kRightToLeft180Wipe = 212;
  1750. kTopToBottom90Wipe = 213;
  1751. kRightToLeft90Wipe = 214;
  1752. kTop180Wipe = 221;
  1753. kRight180Wipe = 222;
  1754. kBottom180Wipe = 223;
  1755. kLeft180Wipe = 224;
  1756. kCounterRotatingTopBottomWipe = 225;
  1757. kCounterRotatingLeftRightWipe = 226;
  1758. kDoubleRotatingTopBottomWipe = 227;
  1759. kDoubleRotatingLeftRightWipe = 228;
  1760. kVOpenTopWipe = 231;
  1761. kVOpenRightWipe = 232;
  1762. kVOpenBottomWipe = 233;
  1763. kVOpenLeftWipe = 234;
  1764. kVOpenTopBottomWipe = 235;
  1765. kVOpenLeftRightWipe = 236;
  1766. kRotatingTopLeftWipe = 241;
  1767. kRotatingBottomLeftWipe = 242;
  1768. kRotatingBottomRightWipe = 243;
  1769. kRotatingTopRightWipe = 244;
  1770. kRotatingTopLeftBottomRightWipe = 245;
  1771. kRotatingBottomLeftTopRightWipe = 246;
  1772. kRotatingTopLeftRightWipe = 251;
  1773. kRotatingLeftTopBottomWipe = 252;
  1774. kRotatingBottomLeftRightWipe = 253;
  1775. kRotatingRightTopBottomWipe = 254;
  1776. kRotatingDoubleCenterRightWipe = 261;
  1777. kRotatingDoubleCenterTopWipe = 262;
  1778. kRotatingDoubleCenterTopBottomWipe = 263;
  1779. kRotatingDoubleCenterLeftRightWipe = 264;
  1780. kHorizontalMatrixWipe = 301;
  1781. kVerticalMatrixWipe = 302;
  1782. kTopLeftDiagonalMatrixWipe = 303;
  1783. kTopRightDiagonalMatrixWipe = 304;
  1784. kBottomRightDiagonalMatrixWipe = 305;
  1785. kBottomLeftDiagonalMatrixWipe = 306;
  1786. kClockwiseTopLeftMatrixWipe = 310;
  1787. kClockwiseTopRightMatrixWipe = 311;
  1788. kClockwiseBottomRightMatrixWipe = 312;
  1789. kClockwiseBottomLeftMatrixWipe = 313;
  1790. kCounterClockwiseTopLeftMatrixWipe = 314;
  1791. kCounterClockwiseTopRightMatrixWipe = 315;
  1792. kCounterClockwiseBottomRightMatrixWipe = 316;
  1793. kCounterClockwiseBottomLeftMatrixWipe = 317;
  1794. kVerticalStartTopMatrixWipe = 320;
  1795. kVerticalStartBottomMatrixWipe = 321;
  1796. kVerticalStartTopOppositeMatrixWipe = 322;
  1797. kVerticalStartBottomOppositeMatrixWipe = 323;
  1798. kHorizontalStartLeftMatrixWipe = 324;
  1799. kHorizontalStartRightMatrixWipe = 325;
  1800. kHorizontalStartLeftOppositeMatrixWipe = 326;
  1801. kHorizontalStartRightOppositeMatrixWipe = 327;
  1802. kDoubleDiagonalTopRightMatrixWipe = 328;
  1803. kDoubleDiagonalBottomRightMatrixWipe = 329;
  1804. kDoubleSpiralTopMatixWipe = 340;
  1805. kDoubleSpiralBottomMatixWipe = 341;
  1806. kDoubleSpiralLeftMatixWipe = 342;
  1807. kDoubleSpiralRightMatixWipe = 343;
  1808. kQuadSpiralVerticalMatixWipe = 344;
  1809. kQuadSpiralHorizontalMatixWipe = 345;
  1810. kVerticalWaterfallLeftMatrixWipe = 350;
  1811. kVerticalWaterfallRightMatrixWipe = 351;
  1812. kHorizontalWaterfallLeftMatrixWipe = 352;
  1813. kHorizontalWaterfallRightMatrixWipe = 353;
  1814. kRandomWipe = 409; { non-SMPTE standard numbers }
  1815. kRandomWipeGroupWipe = 501;
  1816. kRandomIrisGroupWipe = 502;
  1817. kRandomRadialGroupWipe = 503;
  1818. kRandomMatrixGroupWipe = 504;
  1819. type
  1820. SMPTEWipeType = UInt32;
  1821. {
  1822. * ImageCodecEffectPrepareSMPTEFrame()
  1823. *
  1824. * Availability:
  1825. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  1826. * CarbonLib: in CarbonLib 1.0.2 and later
  1827. * Mac OS X: in version 10.0 and later
  1828. * Windows: in qtmlClient.lib 4.0 and later
  1829. }
  1830. function ImageCodecEffectPrepareSMPTEFrame(effect: ComponentInstance; destPixMap: PixMapPtr; var returnValue: SMPTEFrameReference): ComponentResult; external name '_ImageCodecEffectPrepareSMPTEFrame';
  1831. {
  1832. * ImageCodecEffectDisposeSMPTEFrame()
  1833. *
  1834. * Availability:
  1835. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  1836. * CarbonLib: in CarbonLib 1.0.2 and later
  1837. * Mac OS X: in version 10.0 and later
  1838. * Windows: in qtmlClient.lib 4.0 and later
  1839. }
  1840. function ImageCodecEffectDisposeSMPTEFrame(effect: ComponentInstance; frameRef: SMPTEFrameReference): ComponentResult; external name '_ImageCodecEffectDisposeSMPTEFrame';
  1841. {
  1842. * ImageCodecEffectRenderSMPTEFrame()
  1843. *
  1844. * Availability:
  1845. * Non-Carbon CFM: in QuickTimeLib 4.0 and later
  1846. * CarbonLib: in CarbonLib 1.0.2 and later
  1847. * Mac OS X: in version 10.0 and later
  1848. * Windows: in qtmlClient.lib 4.0 and later
  1849. }
  1850. function ImageCodecEffectRenderSMPTEFrame(effect: ComponentInstance; destPixMap: PixMapPtr; frameRef: SMPTEFrameReference; effectPercentageEven: Fixed; effectPercentageOdd: Fixed; var pSourceRect: Rect; var pMatrix: MatrixRecord; effectNumber: SMPTEWipeType; xRepeat: SInt32; yRepeat: SInt32; flags: SMPTEFlags; penWidth: Fixed; strokeValue: SInt32): ComponentResult; external name '_ImageCodecEffectRenderSMPTEFrame';
  1851. { curve atom types and data structures }
  1852. const
  1853. kCurvePathAtom = $70617468 (* 'path' *);
  1854. kCurveEndAtom = $7A65726F (* 'zero' *);
  1855. kCurveAntialiasControlAtom = $616E7469 (* 'anti' *);
  1856. kCurveAntialiasOff = 0;
  1857. kCurveAntialiasOn = $FFFFFFFF;
  1858. kCurveFillTypeAtom = $66696C6C (* 'fill' *);
  1859. kCurvePenThicknessAtom = $70656E74 (* 'pent' *);
  1860. kCurveMiterLimitAtom = $6D697472 (* 'mitr' *);
  1861. kCurveJoinAttributesAtom = $6A6F696E (* 'join' *);
  1862. kCurveMinimumDepthAtom = $6D696E64 (* 'mind' *);
  1863. kCurveDepthAlwaysOffscreenMask = $80000000;
  1864. kCurveTransferModeAtom = $78666572 (* 'xfer' *);
  1865. kCurveGradientAngleAtom = $616E676C (* 'angl' *);
  1866. kCurveGradientRadiusAtom = $72616469 (* 'radi' *);
  1867. kCurveGradientOffsetAtom = $63656E74 (* 'cent' *);
  1868. kCurveARGBColorAtom = $61726762 (* 'argb' *);
  1869. type
  1870. ARGBColorPtr = ^ARGBColor;
  1871. ARGBColor = record
  1872. alpha: UInt16;
  1873. red: UInt16;
  1874. green: UInt16;
  1875. blue: UInt16;
  1876. end;
  1877. const
  1878. kCurveGradientRecordAtom = $67726164 (* 'grad' *);
  1879. type
  1880. GradientColorRecordPtr = ^GradientColorRecord;
  1881. GradientColorRecord = record
  1882. thisColor: ARGBColor;
  1883. endingPercentage: Fixed;
  1884. end;
  1885. GradientColorPtr = ^GradientColorRecord;
  1886. const
  1887. kCurveGradientTypeAtom = $67726474 (* 'grdt' *);
  1888. { currently supported gradient types }
  1889. kLinearGradient = 0;
  1890. kCircularGradient = 1;
  1891. type
  1892. GradientType = SInt32;
  1893. {
  1894. * CurveGetLength()
  1895. *
  1896. * Availability:
  1897. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1898. * CarbonLib: in CarbonLib 1.0 and later
  1899. * Mac OS X: in version 10.0 and later
  1900. * Windows: in qtmlClient.lib 3.0 and later
  1901. }
  1902. function CurveGetLength(effect: ComponentInstance; var target: gxPaths; index: SInt32; var wideLength: wide): ComponentResult; external name '_CurveGetLength';
  1903. {
  1904. * CurveLengthToPoint()
  1905. *
  1906. * Availability:
  1907. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1908. * CarbonLib: in CarbonLib 1.0 and later
  1909. * Mac OS X: in version 10.0 and later
  1910. * Windows: in qtmlClient.lib 3.0 and later
  1911. }
  1912. function CurveLengthToPoint(effect: ComponentInstance; var target: gxPaths; index: SInt32; length: Fixed; var location: FixedPoint; var tangent: FixedPoint): ComponentResult; external name '_CurveLengthToPoint';
  1913. {
  1914. * CurveNewPath()
  1915. *
  1916. * Availability:
  1917. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1918. * CarbonLib: in CarbonLib 1.0 and later
  1919. * Mac OS X: in version 10.0 and later
  1920. * Windows: in qtmlClient.lib 3.0 and later
  1921. }
  1922. function CurveNewPath(effect: ComponentInstance; var pPath: Handle): ComponentResult; external name '_CurveNewPath';
  1923. {
  1924. * CurveCountPointsInPath()
  1925. *
  1926. * Availability:
  1927. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1928. * CarbonLib: in CarbonLib 1.0 and later
  1929. * Mac OS X: in version 10.0 and later
  1930. * Windows: in qtmlClient.lib 3.0 and later
  1931. }
  1932. function CurveCountPointsInPath(effect: ComponentInstance; var aPath: gxPaths; contourIndex: UInt32; var pCount: UInt32): ComponentResult; external name '_CurveCountPointsInPath';
  1933. {
  1934. * CurveGetPathPoint()
  1935. *
  1936. * Availability:
  1937. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1938. * CarbonLib: in CarbonLib 1.0 and later
  1939. * Mac OS X: in version 10.0 and later
  1940. * Windows: in qtmlClient.lib 3.0 and later
  1941. }
  1942. function CurveGetPathPoint(effect: ComponentInstance; var aPath: gxPaths; contourIndex: UInt32; pointIndex: UInt32; var thePoint: gxPoint; var ptIsOnPath: boolean): ComponentResult; external name '_CurveGetPathPoint';
  1943. {
  1944. * CurveInsertPointIntoPath()
  1945. *
  1946. * Availability:
  1947. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1948. * CarbonLib: in CarbonLib 1.0 and later
  1949. * Mac OS X: in version 10.0 and later
  1950. * Windows: in qtmlClient.lib 3.0 and later
  1951. }
  1952. function CurveInsertPointIntoPath(effect: ComponentInstance; var aPoint: gxPoint; thePath: Handle; contourIndex: UInt32; pointIndex: UInt32; ptIsOnPath: boolean): ComponentResult; external name '_CurveInsertPointIntoPath';
  1953. {
  1954. * CurveSetPathPoint()
  1955. *
  1956. * Availability:
  1957. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1958. * CarbonLib: in CarbonLib 1.0 and later
  1959. * Mac OS X: in version 10.0 and later
  1960. * Windows: in qtmlClient.lib 3.0 and later
  1961. }
  1962. function CurveSetPathPoint(effect: ComponentInstance; var aPath: gxPaths; contourIndex: UInt32; pointIndex: UInt32; var thePoint: gxPoint; ptIsOnPath: boolean): ComponentResult; external name '_CurveSetPathPoint';
  1963. {
  1964. * CurveGetNearestPathPoint()
  1965. *
  1966. * Availability:
  1967. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1968. * CarbonLib: in CarbonLib 1.0 and later
  1969. * Mac OS X: in version 10.0 and later
  1970. * Windows: in qtmlClient.lib 3.0 and later
  1971. }
  1972. function CurveGetNearestPathPoint(effect: ComponentInstance; var aPath: gxPaths; var thePoint: FixedPoint; var contourIndex: UInt32; var pointIndex: UInt32; var theDelta: Fixed): ComponentResult; external name '_CurveGetNearestPathPoint';
  1973. {
  1974. * CurvePathPointToLength()
  1975. *
  1976. * Availability:
  1977. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1978. * CarbonLib: in CarbonLib 1.0 and later
  1979. * Mac OS X: in version 10.0 and later
  1980. * Windows: in qtmlClient.lib 3.0 and later
  1981. }
  1982. function CurvePathPointToLength(ci: ComponentInstance; var aPath: gxPaths; startDist: Fixed; endDist: Fixed; var thePoint: FixedPoint; var pLength: Fixed): ComponentResult; external name '_CurvePathPointToLength';
  1983. {
  1984. * CurveCreateVectorStream()
  1985. *
  1986. * Availability:
  1987. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1988. * CarbonLib: in CarbonLib 1.0 and later
  1989. * Mac OS X: in version 10.0 and later
  1990. * Windows: in qtmlClient.lib 3.0 and later
  1991. }
  1992. function CurveCreateVectorStream(effect: ComponentInstance; var pStream: Handle): ComponentResult; external name '_CurveCreateVectorStream';
  1993. {
  1994. * CurveAddAtomToVectorStream()
  1995. *
  1996. * Availability:
  1997. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  1998. * CarbonLib: in CarbonLib 1.0 and later
  1999. * Mac OS X: in version 10.0 and later
  2000. * Windows: in qtmlClient.lib 3.0 and later
  2001. }
  2002. function CurveAddAtomToVectorStream(effect: ComponentInstance; atomType: OSType; atomSize: Size; pAtomData: UnivPtr; vectorStream: Handle): ComponentResult; external name '_CurveAddAtomToVectorStream';
  2003. {
  2004. * CurveAddPathAtomToVectorStream()
  2005. *
  2006. * Availability:
  2007. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2008. * CarbonLib: in CarbonLib 1.0 and later
  2009. * Mac OS X: in version 10.0 and later
  2010. * Windows: in qtmlClient.lib 3.0 and later
  2011. }
  2012. function CurveAddPathAtomToVectorStream(effect: ComponentInstance; pathData: Handle; vectorStream: Handle): ComponentResult; external name '_CurveAddPathAtomToVectorStream';
  2013. {
  2014. * CurveAddZeroAtomToVectorStream()
  2015. *
  2016. * Availability:
  2017. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2018. * CarbonLib: in CarbonLib 1.0 and later
  2019. * Mac OS X: in version 10.0 and later
  2020. * Windows: in qtmlClient.lib 3.0 and later
  2021. }
  2022. function CurveAddZeroAtomToVectorStream(effect: ComponentInstance; vectorStream: Handle): ComponentResult; external name '_CurveAddZeroAtomToVectorStream';
  2023. {
  2024. * CurveGetAtomDataFromVectorStream()
  2025. *
  2026. * Availability:
  2027. * Non-Carbon CFM: in QuickTimeLib 3.0 and later
  2028. * CarbonLib: in CarbonLib 1.0 and later
  2029. * Mac OS X: in version 10.0 and later
  2030. * Windows: in qtmlClient.lib 3.0 and later
  2031. }
  2032. function CurveGetAtomDataFromVectorStream(effect: ComponentInstance; vectorStream: Handle; atomType: SInt32; var dataSize: SInt32; var dataPtr: Ptr): ComponentResult; external name '_CurveGetAtomDataFromVectorStream';
  2033. { UPP call backs }
  2034. {$ALIGN MAC68K}
  2035. end.