annotate loader/qtx/qtxsdk/components.h @ 5253:e331fefb520e

some more...
author arpi
date Thu, 21 Mar 2002 21:00:21 +0000
parents 4c9966c2b2ed
children 2cb0e0e83e95
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5253
e331fefb520e some more...
arpi
parents: 2797
diff changeset
1 // Basic types:
e331fefb520e some more...
arpi
parents: 2797
diff changeset
2
e331fefb520e some more...
arpi
parents: 2797
diff changeset
3 typedef char * Ptr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
4 typedef Ptr * Handle;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
5 typedef long Size;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
6 typedef unsigned char Boolean;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
7 typedef unsigned char Str31[32];
e331fefb520e some more...
arpi
parents: 2797
diff changeset
8 typedef long Fixed;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
9
e331fefb520e some more...
arpi
parents: 2797
diff changeset
10 typedef long OSErr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
11 typedef int OSType;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
12
2501
alex
parents:
diff changeset
13 typedef long ComponentResult;
5253
e331fefb520e some more...
arpi
parents: 2797
diff changeset
14 typedef unsigned char UInt8;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
15 typedef signed char SInt8;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
16 typedef unsigned short UInt16;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
17 typedef signed short SInt16;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
18 typedef unsigned long UInt32;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
19 typedef signed long SInt32;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
20
e331fefb520e some more...
arpi
parents: 2797
diff changeset
21 #define FOUR_CHAR_CODE(x) ((unsigned long)(x)) /* otherwise compiler will complain about values with high bit set */
2501
alex
parents:
diff changeset
22
2797
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
23 // codec private shit:
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
24 typedef void *GlobalsPtr;
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
25 typedef void **Globals;
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
26
5253
e331fefb520e some more...
arpi
parents: 2797
diff changeset
27 //==================== COMPONENTS ===========================
2797
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
28
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
29 struct ComponentParameters {
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
30 UInt8 flags; /* call modifiers: sync/async, deferred, immed, etc */
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
31 UInt8 paramSize; /* size in bytes of actual parameters passed to this call */
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
32 short what; /* routine selector, negative for Component management calls */
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
33 long params[1]; /* actual parameters for the indicated routine */
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
34 };
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
35 typedef struct ComponentParameters ComponentParameters;
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
36
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
37
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
38 struct ComponentDescription {
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
39 OSType componentType; /* A unique 4-byte code indentifying the command set */
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
40 OSType componentSubType; /* Particular flavor of this instance */
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
41 OSType componentManufacturer; /* Vendor indentification */
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
42 unsigned long componentFlags; /* 8 each for Component,Type,SubType,Manuf/revision */
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
43 unsigned long componentFlagsMask; /* Mask for specifying which flags to consider in search, zero during registration */
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
44 };
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
45 typedef struct ComponentDescription ComponentDescription;
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
46
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
47
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
48 struct ResourceSpec {
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
49 OSType resType; /* 4-byte code */
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
50 short resID; /* */
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
51 };
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
52 typedef struct ResourceSpec ResourceSpec;
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
53
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
54
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
55 struct ComponentResource {
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
56 ComponentDescription cd; /* Registration parameters */
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
57 ResourceSpec component; /* resource where Component code is found */
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
58 ResourceSpec componentName; /* name string resource */
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
59 ResourceSpec componentInfo; /* info string resource */
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
60 ResourceSpec componentIcon; /* icon resource */
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
61 };
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
62 typedef struct ComponentResource ComponentResource;
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
63 typedef ComponentResource * ComponentResourcePtr;
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
64 typedef ComponentResourcePtr * ComponentResourceHandle;
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
65
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
66
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
67 struct ComponentRecord {
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
68 long data[1];
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
69 };
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
70 typedef struct ComponentRecord ComponentRecord;
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
71 typedef ComponentRecord * Component;
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
72
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
73
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
74 struct ComponentInstanceRecord {
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
75 long data[1];
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
76 };
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
77 typedef struct ComponentInstanceRecord ComponentInstanceRecord;
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
78
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
79 typedef ComponentInstanceRecord * ComponentInstance;
4c9966c2b2ed updated
arpi
parents: 2776
diff changeset
80
5253
e331fefb520e some more...
arpi
parents: 2797
diff changeset
81 // ========================= QUICKDRAW =========================
e331fefb520e some more...
arpi
parents: 2797
diff changeset
82
e331fefb520e some more...
arpi
parents: 2797
diff changeset
83 struct Rect {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
84 short top;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
85 short left;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
86 short bottom;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
87 short right;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
88 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
89 typedef struct Rect Rect;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
90 typedef Rect * RectPtr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
91
e331fefb520e some more...
arpi
parents: 2797
diff changeset
92 struct RGBColor {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
93 unsigned short red; /*magnitude of red component*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
94 unsigned short green; /*magnitude of green component*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
95 unsigned short blue; /*magnitude of blue component*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
96 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
97 typedef struct RGBColor RGBColor;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
98 typedef RGBColor * RGBColorPtr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
99 typedef RGBColorPtr * RGBColorHdl;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
100
e331fefb520e some more...
arpi
parents: 2797
diff changeset
101 struct ColorSpec {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
102 short value; /*index or other value*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
103 RGBColor rgb; /*true color*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
104 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
105 typedef struct ColorSpec ColorSpec;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
106 typedef ColorSpec * ColorSpecPtr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
107 typedef ColorSpec CSpecArray[1];
e331fefb520e some more...
arpi
parents: 2797
diff changeset
108
e331fefb520e some more...
arpi
parents: 2797
diff changeset
109 struct ColorTable {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
110 long ctSeed; /*unique identifier for table*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
111 short ctFlags; /*high bit: 0 = PixMap; 1 = device*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
112 short ctSize; /*number of entries in CTTable*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
113 CSpecArray ctTable; /*array [0..0] of ColorSpec*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
114 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
115 typedef struct ColorTable ColorTable;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
116 typedef ColorTable * CTabPtr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
117 typedef CTabPtr * CTabHandle;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
118
e331fefb520e some more...
arpi
parents: 2797
diff changeset
119 struct MatrixRecord {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
120 Fixed matrix[3][3];
e331fefb520e some more...
arpi
parents: 2797
diff changeset
121 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
122 typedef struct MatrixRecord MatrixRecord;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
123 typedef MatrixRecord * MatrixRecordPtr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
124
e331fefb520e some more...
arpi
parents: 2797
diff changeset
125 typedef long ImageSequence;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
126 typedef OSType CodecType;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
127 typedef unsigned short CodecFlags;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
128 typedef unsigned long CodecQ;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
129
e331fefb520e some more...
arpi
parents: 2797
diff changeset
130 struct ImageDescription {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
131 long idSize; /* total size of ImageDescription including extra data ( CLUTs and other per sequence data ) */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
132 CodecType cType; /* what kind of codec compressed this data */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
133 long resvd1; /* reserved for Apple use */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
134 short resvd2; /* reserved for Apple use */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
135 short dataRefIndex; /* set to zero */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
136 short version; /* which version is this data */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
137 short revisionLevel; /* what version of that codec did this */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
138 long vendor; /* whose codec compressed this data */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
139 CodecQ temporalQuality; /* what was the temporal quality factor */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
140 CodecQ spatialQuality; /* what was the spatial quality factor */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
141 short width; /* how many pixels wide is this data */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
142 short height; /* how many pixels high is this data */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
143 Fixed hRes; /* horizontal resolution */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
144 Fixed vRes; /* vertical resolution */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
145 long dataSize; /* if known, the size of data for this image descriptor */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
146 short frameCount; /* number of frames this description applies to */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
147 Str31 name; /* name of codec ( in case not installed ) */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
148 short depth; /* what depth is this data (1-32) or ( 33-40 grayscale ) */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
149 short clutID; /* clut id or if 0 clut follows or -1 if no clut */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
150 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
151 typedef struct ImageDescription ImageDescription;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
152 typedef ImageDescription * ImageDescriptionPtr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
153 typedef ImageDescriptionPtr * ImageDescriptionHandle;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
154
e331fefb520e some more...
arpi
parents: 2797
diff changeset
155 /* values for PixMap.pixelFormat*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
156 enum {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
157 k16LE555PixelFormat = FOUR_CHAR_CODE('L555'), /* 16 bit LE rgb 555 (PC)*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
158 k16LE5551PixelFormat = FOUR_CHAR_CODE('5551'), /* 16 bit LE rgb 5551*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
159 k16BE565PixelFormat = FOUR_CHAR_CODE('B565'), /* 16 bit BE rgb 565*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
160 k16LE565PixelFormat = FOUR_CHAR_CODE('L565'), /* 16 bit LE rgb 565*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
161 k24BGRPixelFormat = FOUR_CHAR_CODE('24BG'), /* 24 bit bgr */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
162 k32BGRAPixelFormat = FOUR_CHAR_CODE('BGRA'), /* 32 bit bgra (Matrox)*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
163 k32ABGRPixelFormat = FOUR_CHAR_CODE('ABGR'), /* 32 bit abgr */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
164 k32RGBAPixelFormat = FOUR_CHAR_CODE('RGBA'), /* 32 bit rgba */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
165 kYUVSPixelFormat = FOUR_CHAR_CODE('yuvs'), /* YUV 4:2:2 byte ordering 16-unsigned = 'YUY2'*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
166 kYUVUPixelFormat = FOUR_CHAR_CODE('yuvu'), /* YUV 4:2:2 byte ordering 16-signed*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
167 kYVU9PixelFormat = FOUR_CHAR_CODE('YVU9'), /* YVU9 Planar 9*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
168 kYUV411PixelFormat = FOUR_CHAR_CODE('Y411'), /* YUV 4:1:1 Interleaved 16*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
169 kYVYU422PixelFormat = FOUR_CHAR_CODE('YVYU'), /* YVYU 4:2:2 byte ordering 16*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
170 kUYVY422PixelFormat = FOUR_CHAR_CODE('UYVY'), /* UYVY 4:2:2 byte ordering 16*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
171 kYUV211PixelFormat = FOUR_CHAR_CODE('Y211'), /* YUV 2:1:1 Packed 8*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
172 k2vuyPixelFormat = FOUR_CHAR_CODE('2vuy') /* UYVY 4:2:2 byte ordering 16*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
173 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
174
e331fefb520e some more...
arpi
parents: 2797
diff changeset
175 struct PixMapExtension {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
176 long extSize; /*size of struct, duh!*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
177 unsigned long pmBits; /*pixmap attributes bitfield*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
178 void * pmGD; /*this is a GDHandle*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
179 long pmSeed;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
180 Fixed gammaLevel; /*pixmap gammalevel*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
181 Fixed requestedGammaLevel;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
182 unsigned long reserved2;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
183 long longRowBytes; /*used when rowBytes > 16382*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
184 unsigned long signature;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
185 Handle baseAddrHandle;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
186 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
187 typedef struct PixMapExtension PixMapExtension;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
188
e331fefb520e some more...
arpi
parents: 2797
diff changeset
189 typedef PixMapExtension * PixMapExtPtr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
190 typedef PixMapExtPtr * PixMapExtHandle;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
191
e331fefb520e some more...
arpi
parents: 2797
diff changeset
192
e331fefb520e some more...
arpi
parents: 2797
diff changeset
193 struct PixMap {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
194 Ptr baseAddr; /*pointer to pixels*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
195 short rowBytes; /*offset to next line*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
196 Rect bounds; /*encloses bitmap*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
197 short pmVersion; /*pixMap version number*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
198 short packType; /*defines packing format*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
199 long packSize; /*length of pixel data*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
200 Fixed hRes; /*horiz. resolution (ppi)*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
201 Fixed vRes; /*vert. resolution (ppi)*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
202 short pixelType; /*defines pixel type*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
203 short pixelSize; /*# bits in pixel*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
204 short cmpCount; /*# components in pixel*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
205 short cmpSize; /*# bits per component*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
206 OSType pixelFormat; /*fourCharCode representation*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
207 CTabHandle pmTable; /*color map for this pixMap*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
208 PixMapExtHandle pmExt; /*Handle to pixMap extension*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
209 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
210 typedef struct PixMap PixMap;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
211 typedef PixMap * PixMapPtr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
212 typedef PixMapPtr * PixMapHandle;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
213
e331fefb520e some more...
arpi
parents: 2797
diff changeset
214
e331fefb520e some more...
arpi
parents: 2797
diff changeset
215 struct BitMap {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
216 Ptr baseAddr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
217 short rowBytes;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
218 Rect bounds;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
219 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
220 typedef struct BitMap BitMap;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
221 typedef BitMap * BitMapPtr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
222 typedef BitMapPtr * BitMapHandle;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
223
e331fefb520e some more...
arpi
parents: 2797
diff changeset
224 // ============================== CODECS ===========================
e331fefb520e some more...
arpi
parents: 2797
diff changeset
225
e331fefb520e some more...
arpi
parents: 2797
diff changeset
226 typedef Component CompressorComponent;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
227 typedef Component DecompressorComponent;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
228 typedef Component CodecComponent;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
229
e331fefb520e some more...
arpi
parents: 2797
diff changeset
230 // callbacks:
e331fefb520e some more...
arpi
parents: 2797
diff changeset
231 typedef void* ImageCodecDrawBandCompleteUPP;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
232 typedef void* ICMProgressProcRecord;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
233 typedef void* ICMCompletionProcRecord;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
234 typedef void* ICMDataProcRecord;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
235 typedef void* ICMFrameTimePtr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
236 typedef void* CDSequenceDataSourcePtr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
237 typedef void* ICMFrameTimeInfoPtr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
238
e331fefb520e some more...
arpi
parents: 2797
diff changeset
239 // graphics port
e331fefb520e some more...
arpi
parents: 2797
diff changeset
240 typedef struct OpaqueGrafPtr* GrafPtr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
241 typedef GrafPtr CGrafPtr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
242
e331fefb520e some more...
arpi
parents: 2797
diff changeset
243 typedef struct OpaqueRgnHandle* RgnHandle;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
244
e331fefb520e some more...
arpi
parents: 2797
diff changeset
245 struct CodecCapabilities {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
246 long flags;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
247 short wantedPixelSize;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
248 short extendWidth;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
249 short extendHeight;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
250 short bandMin;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
251 short bandInc;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
252 short pad;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
253 unsigned long time;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
254 long flags2; /* field new in QuickTime 4.0 */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
255 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
256 typedef struct CodecCapabilities CodecCapabilities;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
257
e331fefb520e some more...
arpi
parents: 2797
diff changeset
258 struct __attribute__((__packed__)) CodecDecompressParams {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
259 ImageSequence sequenceID; /* predecompress,banddecompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
260 ImageDescriptionHandle imageDescription; /* predecompress,banddecompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
261 Ptr data;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
262 long bufferSize;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
263
e331fefb520e some more...
arpi
parents: 2797
diff changeset
264 long frameNumber;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
265 long startLine;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
266 long stopLine;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
267 long conditionFlags;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
268
e331fefb520e some more...
arpi
parents: 2797
diff changeset
269 CodecFlags callerFlags;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
270 // short
e331fefb520e some more...
arpi
parents: 2797
diff changeset
271 CodecCapabilities * capabilities; /* predecompress,banddecompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
272 ICMProgressProcRecord progressProcRecord;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
273 ICMCompletionProcRecord completionProcRecord;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
274
e331fefb520e some more...
arpi
parents: 2797
diff changeset
275 ICMDataProcRecord dataProcRecord;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
276 CGrafPtr port; /* predecompress,banddecompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
277 PixMap dstPixMap; /* predecompress,banddecompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
278 BitMapPtr maskBits;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
279 PixMapPtr mattePixMap;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
280 Rect srcRect; /* predecompress,banddecompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
281 MatrixRecord * matrix; /* predecompress,banddecompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
282 CodecQ accuracy; /* predecompress,banddecompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
283 short transferMode; /* predecompress,banddecompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
284 ICMFrameTimePtr frameTime; /* banddecompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
285 long reserved[1];
e331fefb520e some more...
arpi
parents: 2797
diff changeset
286
e331fefb520e some more...
arpi
parents: 2797
diff changeset
287 /* The following fields only exist for QuickTime 2.0 and greater */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
288 SInt8 matrixFlags; /* high bit set if 2x resize */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
289 SInt8 matrixType;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
290 Rect dstRect; /* only valid for simple transforms */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
291
e331fefb520e some more...
arpi
parents: 2797
diff changeset
292 /* The following fields only exist for QuickTime 2.1 and greater */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
293 UInt16 majorSourceChangeSeed;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
294 UInt16 minorSourceChangeSeed;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
295 CDSequenceDataSourcePtr sourceData;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
296
e331fefb520e some more...
arpi
parents: 2797
diff changeset
297 RgnHandle maskRegion;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
298
e331fefb520e some more...
arpi
parents: 2797
diff changeset
299 /* The following fields only exist for QuickTime 2.5 and greater */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
300 OSType ** wantedDestinationPixelTypes; /* Handle to 0-terminated list of OSTypes */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
301
e331fefb520e some more...
arpi
parents: 2797
diff changeset
302 long screenFloodMethod;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
303 long screenFloodValue;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
304 short preferredOffscreenPixelSize;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
305
e331fefb520e some more...
arpi
parents: 2797
diff changeset
306 /* The following fields only exist for QuickTime 3.0 and greater */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
307 ICMFrameTimeInfoPtr syncFrameTime; /* banddecompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
308 Boolean needUpdateOnTimeChange; /* banddecompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
309 Boolean enableBlackLining;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
310 Boolean needUpdateOnSourceChange; /* band decompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
311 Boolean pad;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
312
e331fefb520e some more...
arpi
parents: 2797
diff changeset
313 long unused;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
314
e331fefb520e some more...
arpi
parents: 2797
diff changeset
315 CGrafPtr finalDestinationPort;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
316
e331fefb520e some more...
arpi
parents: 2797
diff changeset
317 long requestedBufferWidth; /* must set codecWantsSpecialScaling to indicate this field is valid*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
318 long requestedBufferHeight; /* must set codecWantsSpecialScaling to indicate this field is valid*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
319
e331fefb520e some more...
arpi
parents: 2797
diff changeset
320 /* The following fields only exist for QuickTime 4.0 and greater */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
321 Rect displayableAreaOfRequestedBuffer; /* set in predecompress*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
322 Boolean requestedSingleField;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
323 Boolean needUpdateOnNextIdle;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
324 Boolean pad2[2];
e331fefb520e some more...
arpi
parents: 2797
diff changeset
325 Fixed bufferGammaLevel;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
326
e331fefb520e some more...
arpi
parents: 2797
diff changeset
327 /* The following fields only exist for QuickTime 5.0 and greater */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
328 UInt32 taskWeight; /* preferred weight for MP tasks implementing this operation*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
329 OSType taskName; /* preferred name (type) for MP tasks implementing this operation*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
330 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
331 typedef struct CodecDecompressParams CodecDecompressParams;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
332
e331fefb520e some more...
arpi
parents: 2797
diff changeset
333
e331fefb520e some more...
arpi
parents: 2797
diff changeset
334
e331fefb520e some more...
arpi
parents: 2797
diff changeset
335 struct ImageSubCodecDecompressCapabilities {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
336 long recordSize; /* sizeof(ImageSubCodecDecompressCapabilities)*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
337 long decompressRecordSize; /* size of your codec's decompress record*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
338 Boolean canAsync; /* default true*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
339 UInt8 pad0;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
340
e331fefb520e some more...
arpi
parents: 2797
diff changeset
341 /* The following fields only exist for QuickTime 4.0 and greater */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
342 UInt16 suggestedQueueSize;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
343 Boolean canProvideTrigger;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
344
e331fefb520e some more...
arpi
parents: 2797
diff changeset
345 /* The following fields only exist for QuickTime 5.0 and greater */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
346 Boolean subCodecFlushesScreen; /* only used on Mac OS X*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
347 Boolean subCodecCallsDrawBandComplete;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
348 UInt8 pad2[1];
e331fefb520e some more...
arpi
parents: 2797
diff changeset
349
e331fefb520e some more...
arpi
parents: 2797
diff changeset
350 /* The following fields only exist for QuickTime 5.1 and greater */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
351 Boolean isChildCodec; /* set by base codec before calling Initialize*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
352 UInt8 pad3[3];
e331fefb520e some more...
arpi
parents: 2797
diff changeset
353 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
354 typedef struct ImageSubCodecDecompressCapabilities ImageSubCodecDecompressCapabilities;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
355
e331fefb520e some more...
arpi
parents: 2797
diff changeset
356
e331fefb520e some more...
arpi
parents: 2797
diff changeset
357 struct ImageSubCodecDecompressRecord {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
358 Ptr baseAddr;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
359 long rowBytes;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
360 Ptr codecData;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
361 ICMProgressProcRecord progressProcRecord;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
362 ICMDataProcRecord dataProcRecord;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
363 void * userDecompressRecord; /* pointer to codec-specific per-band data*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
364 UInt8 frameType;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
365 Boolean inhibitMP; /* 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.)*/
e331fefb520e some more...
arpi
parents: 2797
diff changeset
366 UInt8 pad[2];
e331fefb520e some more...
arpi
parents: 2797
diff changeset
367 long priv[2];
e331fefb520e some more...
arpi
parents: 2797
diff changeset
368
e331fefb520e some more...
arpi
parents: 2797
diff changeset
369 /* The following fields only exist for QuickTime 5.0 and greater */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
370 ImageCodecDrawBandCompleteUPP drawBandCompleteUPP; /* 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. */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
371 void * drawBandCompleteRefCon; /* 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. */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
372 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
373 typedef struct ImageSubCodecDecompressRecord ImageSubCodecDecompressRecord;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
374
e331fefb520e some more...
arpi
parents: 2797
diff changeset
375
e331fefb520e some more...
arpi
parents: 2797
diff changeset
376 /* These are the bits that are set in the Component flags, and also in the codecInfo struct. */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
377 enum {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
378 codecInfoDoes1 = (1L << 0), /* codec can work with 1-bit pixels */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
379 codecInfoDoes2 = (1L << 1), /* codec can work with 2-bit pixels */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
380 codecInfoDoes4 = (1L << 2), /* codec can work with 4-bit pixels */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
381 codecInfoDoes8 = (1L << 3), /* codec can work with 8-bit pixels */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
382 codecInfoDoes16 = (1L << 4), /* codec can work with 16-bit pixels */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
383 codecInfoDoes32 = (1L << 5), /* codec can work with 32-bit pixels */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
384 codecInfoDoesDither = (1L << 6), /* codec can do ditherMode */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
385 codecInfoDoesStretch = (1L << 7), /* codec can stretch to arbitrary sizes */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
386 codecInfoDoesShrink = (1L << 8), /* codec can shrink to arbitrary sizes */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
387 codecInfoDoesMask = (1L << 9), /* codec can mask to clipping regions */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
388 codecInfoDoesTemporal = (1L << 10), /* codec can handle temporal redundancy */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
389 codecInfoDoesDouble = (1L << 11), /* codec can stretch to double size exactly */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
390 codecInfoDoesQuad = (1L << 12), /* codec can stretch to quadruple size exactly */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
391 codecInfoDoesHalf = (1L << 13), /* codec can shrink to half size */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
392 codecInfoDoesQuarter = (1L << 14), /* codec can shrink to quarter size */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
393 codecInfoDoesRotate = (1L << 15), /* codec can rotate on decompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
394 codecInfoDoesHorizFlip = (1L << 16), /* codec can flip horizontally on decompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
395 codecInfoDoesVertFlip = (1L << 17), /* codec can flip vertically on decompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
396 codecInfoHasEffectParameterList = (1L << 18), /* codec implements get effects parameter list call, once was codecInfoDoesSkew */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
397 codecInfoDoesBlend = (1L << 19), /* codec can blend on decompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
398 codecInfoDoesWarp = (1L << 20), /* codec can warp arbitrarily on decompress */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
399 codecInfoDoesRecompress = (1L << 21), /* codec can recompress image without accumulating errors */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
400 codecInfoDoesSpool = (1L << 22), /* codec can spool image data */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
401 codecInfoDoesRateConstrain = (1L << 23) /* codec can data rate constrain */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
402 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
403
e331fefb520e some more...
arpi
parents: 2797
diff changeset
404
e331fefb520e some more...
arpi
parents: 2797
diff changeset
405 enum {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
406 codecInfoDepth1 = (1L << 0), /* compressed data at 1 bpp depth available */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
407 codecInfoDepth2 = (1L << 1), /* compressed data at 2 bpp depth available */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
408 codecInfoDepth4 = (1L << 2), /* compressed data at 4 bpp depth available */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
409 codecInfoDepth8 = (1L << 3), /* compressed data at 8 bpp depth available */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
410 codecInfoDepth16 = (1L << 4), /* compressed data at 16 bpp depth available */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
411 codecInfoDepth32 = (1L << 5), /* compressed data at 32 bpp depth available */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
412 codecInfoDepth24 = (1L << 6), /* compressed data at 24 bpp depth available */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
413 codecInfoDepth33 = (1L << 7), /* compressed data at 1 bpp monochrome depth available */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
414 codecInfoDepth34 = (1L << 8), /* compressed data at 2 bpp grayscale depth available */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
415 codecInfoDepth36 = (1L << 9), /* compressed data at 4 bpp grayscale depth available */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
416 codecInfoDepth40 = (1L << 10), /* compressed data at 8 bpp grayscale depth available */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
417 codecInfoStoresClut = (1L << 11), /* compressed data can have custom cluts */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
418 codecInfoDoesLossless = (1L << 12), /* compressed data can be stored in lossless format */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
419 codecInfoSequenceSensitive = (1L << 13) /* compressed data is sensitive to out of sequence decoding */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
420 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
421
e331fefb520e some more...
arpi
parents: 2797
diff changeset
422 struct CodecInfo {
e331fefb520e some more...
arpi
parents: 2797
diff changeset
423 Str31 typeName; /* name of the codec type i.e.: 'Apple Image Compression' */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
424 short version; /* version of the codec data that this codec knows about */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
425 short revisionLevel; /* revision level of this codec i.e: 0x00010001 (1.0.1) */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
426 long vendor; /* Maker of this codec i.e: 'appl' */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
427 long decompressFlags; /* codecInfo flags for decompression capabilities */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
428 long compressFlags; /* codecInfo flags for compression capabilities */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
429 long formatFlags; /* codecInfo flags for compression format details */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
430 UInt8 compressionAccuracy; /* measure (1-255) of accuracy of this codec for compress (0 if unknown) */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
431 UInt8 decompressionAccuracy; /* measure (1-255) of accuracy of this codec for decompress (0 if unknown) */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
432 unsigned short compressionSpeed; /* ( millisecs for compressing 320x240 on base mac II) (0 if unknown) */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
433 unsigned short decompressionSpeed; /* ( millisecs for decompressing 320x240 on mac II)(0 if unknown) */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
434 UInt8 compressionLevel; /* measure (1-255) of compression level of this codec (0 if unknown) */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
435 UInt8 resvd; /* pad */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
436 short minimumHeight; /* minimum height of image (block size) */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
437 short minimumWidth; /* minimum width of image (block size) */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
438 short decompressPipelineLatency; /* in milliseconds ( for asynchronous codecs ) */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
439 short compressPipelineLatency; /* in milliseconds ( for asynchronous codecs ) */
e331fefb520e some more...
arpi
parents: 2797
diff changeset
440 long privateData;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
441 };
e331fefb520e some more...
arpi
parents: 2797
diff changeset
442 typedef struct CodecInfo CodecInfo;
e331fefb520e some more...
arpi
parents: 2797
diff changeset
443
e331fefb520e some more...
arpi
parents: 2797
diff changeset
444