1 | #
|
---|
2 | # cl.h - Compression Library typedefs and prototypes
|
---|
3 | #
|
---|
4 | # 01/07/92 Cleanup by Brian Knittel
|
---|
5 | # 02/18/92 Original Version by Brian Knittel
|
---|
6 | #
|
---|
7 |
|
---|
8 | #
|
---|
9 | # originalFormat parameter values
|
---|
10 | #
|
---|
11 | from warnings import warnpy3k
|
---|
12 | warnpy3k("the CL_old module has been removed in Python 3.0", stacklevel=2)
|
---|
13 | del warnpy3k
|
---|
14 |
|
---|
15 | MAX_NUMBER_OF_ORIGINAL_FORMATS = 32
|
---|
16 |
|
---|
17 | # Audio
|
---|
18 | MONO = 0
|
---|
19 | STEREO_INTERLEAVED = 1
|
---|
20 |
|
---|
21 | # Video
|
---|
22 | # YUV is defined to be the same thing as YCrCb (luma and two chroma components).
|
---|
23 | # 422 is appended to YUV (or YCrCb) if the chroma is sub-sampled by 2
|
---|
24 | # horizontally, packed as U Y1 V Y2 (byte order).
|
---|
25 | # 422HC is appended to YUV (or YCrCb) if the chroma is sub-sampled by 2
|
---|
26 | # vertically in addition to horizontally, and is packed the same as
|
---|
27 | # 422 except that U & V are not valid on the second line.
|
---|
28 | #
|
---|
29 | RGB = 0
|
---|
30 | RGBX = 1
|
---|
31 | RGBA = 2
|
---|
32 | RGB332 = 3
|
---|
33 |
|
---|
34 | GRAYSCALE = 4
|
---|
35 | Y = 4
|
---|
36 | YUV = 5
|
---|
37 | YCbCr = 5
|
---|
38 | YUV422 = 6 # 4:2:2 sampling
|
---|
39 | YCbCr422 = 6 # 4:2:2 sampling
|
---|
40 | YUV422HC = 7 # 4:1:1 sampling
|
---|
41 | YCbCr422HC = 7 # 4:1:1 sampling
|
---|
42 | YUV422DC = 7 # 4:1:1 sampling
|
---|
43 | YCbCr422DC = 7 # 4:1:1 sampling
|
---|
44 |
|
---|
45 | BEST_FIT = -1
|
---|
46 |
|
---|
47 | def BytesPerSample(s):
|
---|
48 | if s in (MONO, YUV):
|
---|
49 | return 2
|
---|
50 | elif s == STEREO_INTERLEAVED:
|
---|
51 | return 4
|
---|
52 | else:
|
---|
53 | return 0
|
---|
54 |
|
---|
55 | def BytesPerPixel(f):
|
---|
56 | if f in (RGB, YUV):
|
---|
57 | return 3
|
---|
58 | elif f in (RGBX, RGBA):
|
---|
59 | return 4
|
---|
60 | elif f in (RGB332, GRAYSCALE):
|
---|
61 | return 1
|
---|
62 | else:
|
---|
63 | return 2
|
---|
64 |
|
---|
65 | def AudioFormatName(f):
|
---|
66 | if f == MONO:
|
---|
67 | return 'MONO'
|
---|
68 | elif f == STEREO_INTERLEAVED:
|
---|
69 | return 'STEREO_INTERLEAVED'
|
---|
70 | else:
|
---|
71 | return 'Not a valid format'
|
---|
72 |
|
---|
73 | def VideoFormatName(f):
|
---|
74 | if f == RGB:
|
---|
75 | return 'RGB'
|
---|
76 | elif f == RGBX:
|
---|
77 | return 'RGBX'
|
---|
78 | elif f == RGBA:
|
---|
79 | return 'RGBA'
|
---|
80 | elif f == RGB332:
|
---|
81 | return 'RGB332'
|
---|
82 | elif f == GRAYSCALE:
|
---|
83 | return 'GRAYSCALE'
|
---|
84 | elif f == YUV:
|
---|
85 | return 'YUV'
|
---|
86 | elif f == YUV422:
|
---|
87 | return 'YUV422'
|
---|
88 | elif f == YUV422DC:
|
---|
89 | return 'YUV422DC'
|
---|
90 | else:
|
---|
91 | return 'Not a valid format'
|
---|
92 |
|
---|
93 | MAX_NUMBER_OF_AUDIO_ALGORITHMS = 32
|
---|
94 | MAX_NUMBER_OF_VIDEO_ALGORITHMS = 32
|
---|
95 |
|
---|
96 | #
|
---|
97 | # Algorithm types
|
---|
98 | #
|
---|
99 | AUDIO = 0
|
---|
100 | VIDEO = 1
|
---|
101 |
|
---|
102 | def AlgorithmNumber(scheme):
|
---|
103 | return scheme & 0x7fff
|
---|
104 | def AlgorithmType(scheme):
|
---|
105 | return (scheme >> 15) & 1
|
---|
106 | def Algorithm(type, n):
|
---|
107 | return n | ((type & 1) << 15)
|
---|
108 |
|
---|
109 | #
|
---|
110 | # "compressionScheme" argument values
|
---|
111 | #
|
---|
112 | UNKNOWN_SCHEME = -1
|
---|
113 |
|
---|
114 | UNCOMPRESSED_AUDIO = Algorithm(AUDIO, 0)
|
---|
115 | G711_ULAW = Algorithm(AUDIO, 1)
|
---|
116 | ULAW = Algorithm(AUDIO, 1)
|
---|
117 | G711_ALAW = Algorithm(AUDIO, 2)
|
---|
118 | ALAW = Algorithm(AUDIO, 2)
|
---|
119 | AWARE_MPEG_AUDIO = Algorithm(AUDIO, 3)
|
---|
120 | AWARE_MULTIRATE = Algorithm(AUDIO, 4)
|
---|
121 |
|
---|
122 | UNCOMPRESSED = Algorithm(VIDEO, 0)
|
---|
123 | UNCOMPRESSED_VIDEO = Algorithm(VIDEO, 0)
|
---|
124 | RLE = Algorithm(VIDEO, 1)
|
---|
125 | JPEG = Algorithm(VIDEO, 2)
|
---|
126 | MPEG_VIDEO = Algorithm(VIDEO, 3)
|
---|
127 | MVC1 = Algorithm(VIDEO, 4)
|
---|
128 | RTR = Algorithm(VIDEO, 5)
|
---|
129 | RTR1 = Algorithm(VIDEO, 5)
|
---|
130 |
|
---|
131 | #
|
---|
132 | # Parameters
|
---|
133 | #
|
---|
134 | MAX_NUMBER_OF_PARAMS = 256
|
---|
135 | # Default Parameters
|
---|
136 | IMAGE_WIDTH = 0
|
---|
137 | IMAGE_HEIGHT = 1
|
---|
138 | ORIGINAL_FORMAT = 2
|
---|
139 | INTERNAL_FORMAT = 3
|
---|
140 | COMPONENTS = 4
|
---|
141 | BITS_PER_COMPONENT = 5
|
---|
142 | FRAME_RATE = 6
|
---|
143 | COMPRESSION_RATIO = 7
|
---|
144 | EXACT_COMPRESSION_RATIO = 8
|
---|
145 | FRAME_BUFFER_SIZE = 9
|
---|
146 | COMPRESSED_BUFFER_SIZE = 10
|
---|
147 | BLOCK_SIZE = 11
|
---|
148 | PREROLL = 12
|
---|
149 | FRAME_TYPE = 13
|
---|
150 | ALGORITHM_ID = 14
|
---|
151 | ALGORITHM_VERSION = 15
|
---|
152 | ORIENTATION = 16
|
---|
153 | NUMBER_OF_FRAMES = 17
|
---|
154 | SPEED = 18
|
---|
155 | LAST_FRAME_INDEX = 19
|
---|
156 | NUMBER_OF_PARAMS = 20
|
---|
157 |
|
---|
158 | # JPEG Specific Parameters
|
---|
159 | QUALITY_FACTOR = NUMBER_OF_PARAMS + 0
|
---|
160 |
|
---|
161 | # MPEG Specific Parameters
|
---|
162 | END_OF_SEQUENCE = NUMBER_OF_PARAMS + 0
|
---|
163 |
|
---|
164 | # RTR Specific Parameters
|
---|
165 | QUALITY_LEVEL = NUMBER_OF_PARAMS + 0
|
---|
166 | ZOOM_X = NUMBER_OF_PARAMS + 1
|
---|
167 | ZOOM_Y = NUMBER_OF_PARAMS + 2
|
---|
168 |
|
---|
169 | #
|
---|
170 | # Parameter value types
|
---|
171 | #
|
---|
172 | ENUM_VALUE = 0 # only certain constant values are valid
|
---|
173 | RANGE_VALUE = 1 # any value in a given range is valid
|
---|
174 | FLOATING_ENUM_VALUE = 2 # only certain constant floating point values are valid
|
---|
175 | FLOATING_RANGE_VALUE = 3 # any value in a given floating point range is valid
|
---|
176 |
|
---|
177 | #
|
---|
178 | # Algorithm Functionality
|
---|
179 | #
|
---|
180 | DECOMPRESSOR = 1
|
---|
181 | COMPRESSOR = 2
|
---|
182 | CODEC = 3
|
---|
183 |
|
---|
184 | #
|
---|
185 | # Buffer types
|
---|
186 | #
|
---|
187 | NONE = 0
|
---|
188 | FRAME = 1
|
---|
189 | DATA = 2
|
---|
190 |
|
---|
191 | #
|
---|
192 | # Frame types
|
---|
193 | #
|
---|
194 | NONE = 0
|
---|
195 | KEYFRAME = 1
|
---|
196 | INTRA = 1
|
---|
197 | PREDICTED = 2
|
---|
198 | BIDIRECTIONAL = 3
|
---|
199 |
|
---|
200 | #
|
---|
201 | # Orientations
|
---|
202 | #
|
---|
203 | TOP_DOWN = 0
|
---|
204 | BOTTOM_UP = 1
|
---|
205 |
|
---|
206 | #
|
---|
207 | # SGI Proprietary Algorithm Header Start Code
|
---|
208 | #
|
---|
209 | HEADER_START_CODE = 0xc1C0DEC
|
---|
210 |
|
---|
211 | #
|
---|
212 | # error codes
|
---|
213 | #
|
---|
214 |
|
---|
215 | BAD_NO_BUFFERSPACE = -2 # no space for internal buffers
|
---|
216 | BAD_PVBUFFER = -3 # param/val buffer doesn't make sense
|
---|
217 | BAD_BUFFERLENGTH_NEG = -4 # negative buffer length
|
---|
218 | BAD_BUFFERLENGTH_ODD = -5 # odd length parameter/value buffer
|
---|
219 | BAD_PARAM = -6 # invalid parameter
|
---|
220 | BAD_COMPRESSION_SCHEME = -7 # compression scheme parameter invalid
|
---|
221 | BAD_COMPRESSOR_HANDLE = -8 # compression handle parameter invalid
|
---|
222 | BAD_COMPRESSOR_HANDLE_POINTER = -9 # compression handle pointer invalid
|
---|
223 | BAD_BUFFER_HANDLE = -10 # buffer handle invalid
|
---|
224 | BAD_BUFFER_QUERY_SIZE = -11 # buffer query size too large
|
---|
225 | JPEG_ERROR = -12 # error from libjpeg
|
---|
226 | BAD_FRAME_SIZE = -13 # frame size invalid
|
---|
227 | PARAM_OUT_OF_RANGE = -14 # parameter out of range
|
---|
228 | ADDED_ALGORITHM_ERROR = -15 # added algorithm had a unique error
|
---|
229 | BAD_ALGORITHM_TYPE = -16 # bad algorithm type
|
---|
230 | BAD_ALGORITHM_NAME = -17 # bad algorithm name
|
---|
231 | BAD_BUFFERING = -18 # bad buffering calls
|
---|
232 | BUFFER_NOT_CREATED = -19 # buffer not created
|
---|
233 | BAD_BUFFER_EXISTS = -20 # buffer already created
|
---|
234 | BAD_INTERNAL_FORMAT = -21 # invalid internal format
|
---|
235 | BAD_BUFFER_POINTER = -22 # invalid buffer pointer
|
---|
236 | FRAME_BUFFER_SIZE_ZERO = -23 # frame buffer has zero size
|
---|
237 | BAD_STREAM_HEADER = -24 # invalid stream header
|
---|
238 |
|
---|
239 | BAD_LICENSE = -25 # netls license not valid
|
---|
240 | AWARE_ERROR = -26 # error from libawcmp
|
---|