blob: 70e8f8e7d9a68b04285b90223e326da820c4dc1f [file] [log] [blame]
Sjoerd Mullenderc4315491992-09-23 14:53:00 +00001
2
3/* Cl objects */
4
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +00005#define CLDEBUG
6
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +00007#include <stdarg.h>
Sjoerd Mullenderc4315491992-09-23 14:53:00 +00008#include <cl.h>
Guido van Rossum72429051997-08-12 14:58:54 +00009#if defined(CL_JPEG_SOFTWARE) && !defined(CL_JPEG_COSMO)
10#include <dmedia/cl_cosmo.h>
11#endif
Roger E. Massee474fb31997-01-17 16:00:02 +000012#include "Python.h"
Sjoerd Mullenderc4315491992-09-23 14:53:00 +000013
14typedef struct {
Roger E. Massee474fb31997-01-17 16:00:02 +000015 PyObject_HEAD
Sjoerd Mullenderc4315491992-09-23 14:53:00 +000016 int ob_isCompressor; /* Compressor or Decompressor */
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +000017 CL_Handle ob_compressorHdl;
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +000018 int *ob_paramtypes;
19 int ob_nparams;
Sjoerd Mullenderc4315491992-09-23 14:53:00 +000020} clobject;
21
Roger E. Massee474fb31997-01-17 16:00:02 +000022static PyObject *ClError; /* exception cl.error */
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +000023
24static int error_handler_called = 0;
25
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +000026/*
27 * We want to use the function prototypes that are available in the C
28 * compiler on the SGI. Because of that, we need to declare the first
29 * argument of the compressor and decompressor methods as "object *",
30 * even though they are really "clobject *". Therefore we cast the
31 * argument to the proper type using this macro.
32 */
33#define SELF ((clobject *) self)
34
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +000035/********************************************************************
36 Utility routines.
37********************************************************************/
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +000038static void
Sjoerd Mullender3a997271993-02-04 16:43:28 +000039cl_ErrorHandler(CL_Handle handle, int code, const char *fmt, ...)
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +000040{
41 va_list ap;
42 char errbuf[BUFSIZ]; /* hopefully big enough */
Sjoerd Mullender384f2481992-09-29 16:43:43 +000043 char *p;
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +000044
Roger E. Massee474fb31997-01-17 16:00:02 +000045 if (PyErr_Occurred()) /* don't change existing error */
Sjoerd Mullender384f2481992-09-29 16:43:43 +000046 return;
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +000047 error_handler_called = 1;
48 va_start(ap, fmt);
49 vsprintf(errbuf, fmt, ap);
50 va_end(ap);
Sjoerd Mullender384f2481992-09-29 16:43:43 +000051 p = &errbuf[strlen(errbuf) - 1]; /* swat the line feed */
52 if (*p == '\n')
53 *p = 0;
Roger E. Massee474fb31997-01-17 16:00:02 +000054 PyErr_SetString(ClError, errbuf);
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +000055}
56
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +000057/*
58 * This assumes that params are always in the range 0 to some maximum.
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +000059 */
60static int
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +000061param_type_is_float(clobject *self, int param)
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +000062{
Sjoerd Mullender3a997271993-02-04 16:43:28 +000063 int bufferlength;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +000064
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +000065 if (self->ob_paramtypes == NULL) {
66 error_handler_called = 0;
67 bufferlength = clQueryParams(self->ob_compressorHdl, 0, 0);
68 if (error_handler_called)
69 return -1;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +000070
Roger E. Massee474fb31997-01-17 16:00:02 +000071 self->ob_paramtypes = PyMem_NEW(int, bufferlength);
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +000072 if (self->ob_paramtypes == NULL)
73 return -1;
74 self->ob_nparams = bufferlength / 2;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +000075
Roger E. Massee474fb31997-01-17 16:00:02 +000076 (void) clQueryParams(self->ob_compressorHdl,
77 self->ob_paramtypes, bufferlength);
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +000078 if (error_handler_called) {
Roger E. Massee474fb31997-01-17 16:00:02 +000079 PyMem_DEL(self->ob_paramtypes);
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +000080 self->ob_paramtypes = NULL;
81 return -1;
82 }
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +000083 }
84
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +000085 if (param < 0 || param >= self->ob_nparams)
86 return -1;
87
88 if (self->ob_paramtypes[param*2 + 1] == CL_FLOATING_ENUM_VALUE ||
89 self->ob_paramtypes[param*2 + 1] == CL_FLOATING_RANGE_VALUE)
90 return 1;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +000091 else
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +000092 return 0;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +000093}
94
95/********************************************************************
96 Single image compression/decompression.
97********************************************************************/
Roger E. Massee474fb31997-01-17 16:00:02 +000098static PyObject *
99cl_CompressImage(PyObject *self, PyObject *args)
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000100{
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000101 int compressionScheme, width, height, originalFormat;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000102 float compressionRatio;
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000103 int frameBufferSize, compressedBufferSize;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000104 char *frameBuffer;
Roger E. Massee474fb31997-01-17 16:00:02 +0000105 PyObject *compressedBuffer;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000106
Neal Norwitzb0aaec52002-04-02 18:26:33 +0000107 if (!PyArg_ParseTuple(args, "iiiifs#", &compressionScheme,
Roger E. Massee474fb31997-01-17 16:00:02 +0000108 &width, &height,
109 &originalFormat, &compressionRatio, &frameBuffer,
110 &frameBufferSize))
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000111 return NULL;
112
Roger E. Massee474fb31997-01-17 16:00:02 +0000113 retry:
114 compressedBuffer = PyString_FromStringAndSize(NULL, frameBufferSize);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000115 if (compressedBuffer == NULL)
116 return NULL;
117
118 compressedBufferSize = frameBufferSize;
119 error_handler_called = 0;
120 if (clCompressImage(compressionScheme, width, height, originalFormat,
121 compressionRatio, (void *) frameBuffer,
122 &compressedBufferSize,
Roger E. Massee474fb31997-01-17 16:00:02 +0000123 (void *) PyString_AsString(compressedBuffer))
Guido van Rossum72429051997-08-12 14:58:54 +0000124 == FAILURE || error_handler_called) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000125 Py_DECREF(compressedBuffer);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000126 if (!error_handler_called)
Roger E. Massee474fb31997-01-17 16:00:02 +0000127 PyErr_SetString(ClError, "clCompressImage failed");
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000128 return NULL;
129 }
130
131 if (compressedBufferSize > frameBufferSize) {
132 frameBufferSize = compressedBufferSize;
Roger E. Massee474fb31997-01-17 16:00:02 +0000133 Py_DECREF(compressedBuffer);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000134 goto retry;
135 }
136
137 if (compressedBufferSize < frameBufferSize)
Tim Peters5de98422002-04-27 18:44:32 +0000138 _PyString_Resize(&compressedBuffer, compressedBufferSize);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000139
140 return compressedBuffer;
141}
142
Roger E. Massee474fb31997-01-17 16:00:02 +0000143static PyObject *
144cl_DecompressImage(PyObject *self, PyObject *args)
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000145{
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000146 int compressionScheme, width, height, originalFormat;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000147 char *compressedBuffer;
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000148 int compressedBufferSize, frameBufferSize;
Roger E. Massee474fb31997-01-17 16:00:02 +0000149 PyObject *frameBuffer;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000150
Neal Norwitzb0aaec52002-04-02 18:26:33 +0000151 if (!PyArg_ParseTuple(args, "iiiis#", &compressionScheme, &width, &height,
Roger E. Massee474fb31997-01-17 16:00:02 +0000152 &originalFormat, &compressedBuffer,
153 &compressedBufferSize))
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000154 return NULL;
155
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000156 frameBufferSize = width * height * CL_BytesPerPixel(originalFormat);
157
Roger E. Massee474fb31997-01-17 16:00:02 +0000158 frameBuffer = PyString_FromStringAndSize(NULL, frameBufferSize);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000159 if (frameBuffer == NULL)
160 return NULL;
161
162 error_handler_called = 0;
163 if (clDecompressImage(compressionScheme, width, height, originalFormat,
164 compressedBufferSize, compressedBuffer,
Roger E. Massee474fb31997-01-17 16:00:02 +0000165 (void *) PyString_AsString(frameBuffer))
Guido van Rossum72429051997-08-12 14:58:54 +0000166 == FAILURE || error_handler_called) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000167 Py_DECREF(frameBuffer);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000168 if (!error_handler_called)
Roger E. Massee474fb31997-01-17 16:00:02 +0000169 PyErr_SetString(ClError, "clDecompressImage failed");
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000170 return NULL;
171 }
172
173 return frameBuffer;
174}
175
176/********************************************************************
177 Sequential compression/decompression.
178********************************************************************/
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000179#define CheckCompressor(self) if ((self)->ob_compressorHdl == NULL) { \
Roger E. Massee474fb31997-01-17 16:00:02 +0000180 PyErr_SetString(PyExc_RuntimeError, "(de)compressor not active"); \
181 return NULL; \
182}
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000183
Roger E. Massee474fb31997-01-17 16:00:02 +0000184static PyObject *
Neal Norwitz50905b52002-03-31 14:57:24 +0000185doClose(clobject *self, int (*close_func)(CL_Handle))
Sjoerd Mullender37f17b71992-09-25 10:28:20 +0000186{
187 CheckCompressor(self);
188
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000189 error_handler_called = 0;
Guido van Rossum72429051997-08-12 14:58:54 +0000190 if ((*close_func)(self->ob_compressorHdl) == FAILURE ||
191 error_handler_called) {
Sjoerd Mullender37f17b71992-09-25 10:28:20 +0000192 if (!error_handler_called)
Roger E. Massee474fb31997-01-17 16:00:02 +0000193 PyErr_SetString(ClError, "close failed");
Sjoerd Mullender37f17b71992-09-25 10:28:20 +0000194 return NULL;
195 }
196
197 self->ob_compressorHdl = NULL;
198
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000199 if (self->ob_paramtypes)
Roger E. Massee474fb31997-01-17 16:00:02 +0000200 PyMem_DEL(self->ob_paramtypes);
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000201 self->ob_paramtypes = NULL;
202
Roger E. Massee474fb31997-01-17 16:00:02 +0000203 Py_INCREF(Py_None);
204 return Py_None;
Sjoerd Mullender37f17b71992-09-25 10:28:20 +0000205}
206
Roger E. Massee474fb31997-01-17 16:00:02 +0000207static PyObject *
Neal Norwitz50905b52002-03-31 14:57:24 +0000208clm_CloseCompressor(PyObject *self)
Sjoerd Mullender37f17b71992-09-25 10:28:20 +0000209{
Neal Norwitz50905b52002-03-31 14:57:24 +0000210 return doClose(SELF, clCloseCompressor);
Sjoerd Mullender37f17b71992-09-25 10:28:20 +0000211}
212
Roger E. Massee474fb31997-01-17 16:00:02 +0000213static PyObject *
Neal Norwitz50905b52002-03-31 14:57:24 +0000214clm_CloseDecompressor(PyObject *self)
Sjoerd Mullender384f2481992-09-29 16:43:43 +0000215{
Neal Norwitz50905b52002-03-31 14:57:24 +0000216 return doClose(SELF, clCloseDecompressor);
Sjoerd Mullender384f2481992-09-29 16:43:43 +0000217}
218
Roger E. Massee474fb31997-01-17 16:00:02 +0000219static PyObject *
220clm_Compress(PyObject *self, PyObject *args)
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000221{
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000222 int numberOfFrames;
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000223 int frameBufferSize, compressedBufferSize, size;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000224 char *frameBuffer;
Roger E. Massee474fb31997-01-17 16:00:02 +0000225 PyObject *data;
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000226
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000227 CheckCompressor(SELF);
Sjoerd Mullender37f17b71992-09-25 10:28:20 +0000228
Roger E. Massee474fb31997-01-17 16:00:02 +0000229 if (!PyArg_Parse(args, "(is#)", &numberOfFrames,
230 &frameBuffer, &frameBufferSize))
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000231 return NULL;
232
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000233 error_handler_called = 0;
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000234 size = clGetParam(SELF->ob_compressorHdl, CL_COMPRESSED_BUFFER_SIZE);
235 compressedBufferSize = size;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000236 if (error_handler_called)
237 return NULL;
238
Roger E. Massee474fb31997-01-17 16:00:02 +0000239 data = PyString_FromStringAndSize(NULL, size);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000240 if (data == NULL)
241 return NULL;
242
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +0000243 error_handler_called = 0;
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000244 if (clCompress(SELF->ob_compressorHdl, numberOfFrames,
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000245 (void *) frameBuffer, &compressedBufferSize,
Guido van Rossum72429051997-08-12 14:58:54 +0000246 (void *) PyString_AsString(data)) == FAILURE ||
247 error_handler_called) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000248 Py_DECREF(data);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000249 if (!error_handler_called)
Roger E. Massee474fb31997-01-17 16:00:02 +0000250 PyErr_SetString(ClError, "compress failed");
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +0000251 return NULL;
252 }
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000253
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000254 if (compressedBufferSize < size)
Roger E. Massee474fb31997-01-17 16:00:02 +0000255 if (_PyString_Resize(&data, compressedBufferSize))
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000256 return NULL;
257
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000258 if (compressedBufferSize > size) {
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000259 /* we didn't get all "compressed" data */
Roger E. Massee474fb31997-01-17 16:00:02 +0000260 Py_DECREF(data);
261 PyErr_SetString(ClError,
262 "compressed data is more than fitted");
Sjoerd Mullender384f2481992-09-29 16:43:43 +0000263 return NULL;
264 }
265
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +0000266 return data;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000267}
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000268
Roger E. Massee474fb31997-01-17 16:00:02 +0000269static PyObject *
270clm_Decompress(PyObject *self, PyObject *args)
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000271{
Roger E. Massee474fb31997-01-17 16:00:02 +0000272 PyObject *data;
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000273 int numberOfFrames;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000274 char *compressedData;
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000275 int compressedDataSize, dataSize;
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000276
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000277 CheckCompressor(SELF);
Sjoerd Mullender37f17b71992-09-25 10:28:20 +0000278
Roger E. Massee474fb31997-01-17 16:00:02 +0000279 if (!PyArg_Parse(args, "(is#)", &numberOfFrames, &compressedData,
280 &compressedDataSize))
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000281 return NULL;
282
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000283 error_handler_called = 0;
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000284 dataSize = clGetParam(SELF->ob_compressorHdl, CL_FRAME_BUFFER_SIZE);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000285 if (error_handler_called)
286 return NULL;
287
Roger E. Massee474fb31997-01-17 16:00:02 +0000288 data = PyString_FromStringAndSize(NULL, dataSize);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000289 if (data == NULL)
290 return NULL;
291
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +0000292 error_handler_called = 0;
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000293 if (clDecompress(SELF->ob_compressorHdl, numberOfFrames,
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000294 compressedDataSize, (void *) compressedData,
Guido van Rossum72429051997-08-12 14:58:54 +0000295 (void *) PyString_AsString(data)) == FAILURE ||
296 error_handler_called) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000297 Py_DECREF(data);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000298 if (!error_handler_called)
Roger E. Massee474fb31997-01-17 16:00:02 +0000299 PyErr_SetString(ClError, "decompress failed");
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +0000300 return NULL;
301 }
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000302
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +0000303 return data;
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000304}
305
Roger E. Massee474fb31997-01-17 16:00:02 +0000306static PyObject *
307doParams(clobject *self, PyObject *args, int (*func)(CL_Handle, int *, int),
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000308 int modified)
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000309{
Roger E. Massee474fb31997-01-17 16:00:02 +0000310 PyObject *list, *v;
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000311 int *PVbuffer;
312 int length;
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000313 int i;
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000314 float number;
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000315
Sjoerd Mullender37f17b71992-09-25 10:28:20 +0000316 CheckCompressor(self);
317
Roger E. Massee474fb31997-01-17 16:00:02 +0000318 if (!PyArg_Parse(args, "O", &list))
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000319 return NULL;
Roger E. Massee474fb31997-01-17 16:00:02 +0000320 if (!PyList_Check(list)) {
321 PyErr_BadArgument();
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000322 return NULL;
323 }
Roger E. Massee474fb31997-01-17 16:00:02 +0000324 length = PyList_Size(list);
325 PVbuffer = PyMem_NEW(int, length);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000326 if (PVbuffer == NULL)
Roger E. Massee474fb31997-01-17 16:00:02 +0000327 return PyErr_NoMemory();
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000328 for (i = 0; i < length; i++) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000329 v = PyList_GetItem(list, i);
330 if (PyFloat_Check(v)) {
331 number = PyFloat_AsDouble(v);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000332 PVbuffer[i] = CL_TypeIsInt(number);
Roger E. Massee474fb31997-01-17 16:00:02 +0000333 } else if (PyInt_Check(v)) {
334 PVbuffer[i] = PyInt_AsLong(v);
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000335 if ((i & 1) &&
336 param_type_is_float(self, PVbuffer[i-1]) > 0) {
337 number = PVbuffer[i];
338 PVbuffer[i] = CL_TypeIsInt(number);
339 }
340 } else {
Roger E. Massee474fb31997-01-17 16:00:02 +0000341 PyMem_DEL(PVbuffer);
342 PyErr_BadArgument();
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000343 return NULL;
344 }
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000345 }
346
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +0000347 error_handler_called = 0;
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000348 (*func)(self->ob_compressorHdl, PVbuffer, length);
Sjoerd Mullenderf64992e1993-08-03 15:11:36 +0000349 if (error_handler_called) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000350 PyMem_DEL(PVbuffer);
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +0000351 return NULL;
Sjoerd Mullenderf64992e1993-08-03 15:11:36 +0000352 }
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000353
354 if (modified) {
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000355 for (i = 0; i < length; i++) {
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000356 if ((i & 1) &&
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000357 param_type_is_float(self, PVbuffer[i-1]) > 0) {
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000358 number = CL_TypeIsFloat(PVbuffer[i]);
Roger E. Massee474fb31997-01-17 16:00:02 +0000359 v = PyFloat_FromDouble(number);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000360 } else
Roger E. Massee474fb31997-01-17 16:00:02 +0000361 v = PyInt_FromLong(PVbuffer[i]);
362 PyList_SetItem(list, i, v);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000363 }
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000364 }
365
Roger E. Massee474fb31997-01-17 16:00:02 +0000366 PyMem_DEL(PVbuffer);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000367
Roger E. Massee474fb31997-01-17 16:00:02 +0000368 Py_INCREF(Py_None);
369 return Py_None;
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000370}
371
Roger E. Massee474fb31997-01-17 16:00:02 +0000372static PyObject *
373clm_GetParams(PyObject *self, PyObject *args)
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000374{
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000375 return doParams(SELF, args, clGetParams, 1);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000376}
377
Roger E. Massee474fb31997-01-17 16:00:02 +0000378static PyObject *
379clm_SetParams(PyObject *self, PyObject *args)
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000380{
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000381 return doParams(SELF, args, clSetParams, 0);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000382}
383
Roger E. Massee474fb31997-01-17 16:00:02 +0000384static PyObject *
385do_get(clobject *self, PyObject *args, int (*func)(CL_Handle, int))
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000386{
387 int paramID, value;
388 float fvalue;
389
390 CheckCompressor(self);
391
Roger E. Massee474fb31997-01-17 16:00:02 +0000392 if (!PyArg_Parse(args, "i", &paramID))
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000393 return NULL;
394
395 error_handler_called = 0;
396 value = (*func)(self->ob_compressorHdl, paramID);
397 if (error_handler_called)
398 return NULL;
399
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000400 if (param_type_is_float(self, paramID) > 0) {
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000401 fvalue = CL_TypeIsFloat(value);
Roger E. Massee474fb31997-01-17 16:00:02 +0000402 return PyFloat_FromDouble(fvalue);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000403 }
404
Roger E. Massee474fb31997-01-17 16:00:02 +0000405 return PyInt_FromLong(value);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000406}
407
Roger E. Massee474fb31997-01-17 16:00:02 +0000408static PyObject *
409clm_GetParam(PyObject *self, PyObject *args)
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000410{
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000411 return do_get(SELF, args, clGetParam);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000412}
413
Roger E. Massee474fb31997-01-17 16:00:02 +0000414static PyObject *
415clm_GetDefault(PyObject *self, PyObject *args)
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000416{
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000417 return do_get(SELF, args, clGetDefault);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000418}
419
Roger E. Massee474fb31997-01-17 16:00:02 +0000420static PyObject *
421clm_SetParam(PyObject *self, PyObject *args)
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000422{
423 int paramID, value;
424 float fvalue;
425
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000426 CheckCompressor(SELF);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000427
Roger E. Massee474fb31997-01-17 16:00:02 +0000428 if (!PyArg_Parse(args, "(ii)", &paramID, &value)) {
429 PyErr_Clear();
430 if (!PyArg_Parse(args, "(if)", &paramID, &fvalue)) {
431 PyErr_Clear();
432 PyErr_SetString(PyExc_TypeError,
433 "bad argument list (format '(ii)' or '(if)')");
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000434 return NULL;
435 }
436 value = CL_TypeIsInt(fvalue);
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000437 } else {
438 if (param_type_is_float(SELF, paramID) > 0) {
439 fvalue = value;
440 value = CL_TypeIsInt(fvalue);
441 }
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000442 }
443
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000444 error_handler_called = 0;
445 value = clSetParam(SELF->ob_compressorHdl, paramID, value);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000446 if (error_handler_called)
447 return NULL;
448
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000449 if (param_type_is_float(SELF, paramID) > 0)
Roger E. Massee474fb31997-01-17 16:00:02 +0000450 return PyFloat_FromDouble(CL_TypeIsFloat(value));
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000451 else
Roger E. Massee474fb31997-01-17 16:00:02 +0000452 return PyInt_FromLong(value);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000453}
454
Roger E. Massee474fb31997-01-17 16:00:02 +0000455static PyObject *
456clm_GetParamID(PyObject *self, PyObject *args)
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000457{
458 char *name;
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000459 int value;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000460
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000461 CheckCompressor(SELF);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000462
Roger E. Massee474fb31997-01-17 16:00:02 +0000463 if (!PyArg_Parse(args, "s", &name))
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000464 return NULL;
465
466 error_handler_called = 0;
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000467 value = clGetParamID(SELF->ob_compressorHdl, name);
Guido van Rossum72429051997-08-12 14:58:54 +0000468 if (value == FAILURE || error_handler_called) {
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000469 if (!error_handler_called)
Roger E. Massee474fb31997-01-17 16:00:02 +0000470 PyErr_SetString(ClError, "getparamid failed");
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000471 return NULL;
472 }
473
Roger E. Massee474fb31997-01-17 16:00:02 +0000474 return PyInt_FromLong(value);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000475}
476
Roger E. Massee474fb31997-01-17 16:00:02 +0000477static PyObject *
Neal Norwitz50905b52002-03-31 14:57:24 +0000478clm_QueryParams(PyObject *self)
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000479{
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000480 int bufferlength;
481 int *PVbuffer;
Roger E. Massee474fb31997-01-17 16:00:02 +0000482 PyObject *list;
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000483 int i;
484
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000485 CheckCompressor(SELF);
Sjoerd Mullender37f17b71992-09-25 10:28:20 +0000486
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +0000487 error_handler_called = 0;
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000488 bufferlength = clQueryParams(SELF->ob_compressorHdl, 0, 0);
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +0000489 if (error_handler_called)
490 return NULL;
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000491
Roger E. Massee474fb31997-01-17 16:00:02 +0000492 PVbuffer = PyMem_NEW(int, bufferlength);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000493 if (PVbuffer == NULL)
Roger E. Massee474fb31997-01-17 16:00:02 +0000494 return PyErr_NoMemory();
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000495
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000496 bufferlength = clQueryParams(SELF->ob_compressorHdl, PVbuffer,
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000497 bufferlength);
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +0000498 if (error_handler_called) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000499 PyMem_DEL(PVbuffer);
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +0000500 return NULL;
501 }
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000502
Roger E. Massee474fb31997-01-17 16:00:02 +0000503 list = PyList_New(bufferlength);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000504 if (list == NULL) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000505 PyMem_DEL(PVbuffer);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000506 return NULL;
507 }
508
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +0000509 for (i = 0; i < bufferlength; i++) {
510 if (i & 1)
Roger E. Massee474fb31997-01-17 16:00:02 +0000511 PyList_SetItem(list, i, PyInt_FromLong(PVbuffer[i]));
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000512 else if (PVbuffer[i] == 0) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000513 Py_INCREF(Py_None);
514 PyList_SetItem(list, i, Py_None);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000515 } else
Roger E. Massee474fb31997-01-17 16:00:02 +0000516 PyList_SetItem(list, i,
517 PyString_FromString((char *) PVbuffer[i]));
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +0000518 }
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000519
Roger E. Massee474fb31997-01-17 16:00:02 +0000520 PyMem_DEL(PVbuffer);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000521
522 return list;
523}
524
Roger E. Massee474fb31997-01-17 16:00:02 +0000525static PyObject *
526clm_GetMinMax(PyObject *self, PyObject *args)
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000527{
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000528 int param, min, max;
529 float fmin, fmax;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000530
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000531 CheckCompressor(SELF);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000532
Roger E. Massee474fb31997-01-17 16:00:02 +0000533 if (!PyArg_Parse(args, "i", &param))
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000534 return NULL;
535
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000536 clGetMinMax(SELF->ob_compressorHdl, param, &min, &max);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000537
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000538 if (param_type_is_float(SELF, param) > 0) {
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000539 fmin = CL_TypeIsFloat(min);
540 fmax = CL_TypeIsFloat(max);
Roger E. Massee474fb31997-01-17 16:00:02 +0000541 return Py_BuildValue("(ff)", fmin, fmax);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000542 }
543
Roger E. Massee474fb31997-01-17 16:00:02 +0000544 return Py_BuildValue("(ii)", min, max);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000545}
546
Roger E. Massee474fb31997-01-17 16:00:02 +0000547static PyObject *
548clm_GetName(PyObject *self, PyObject *args)
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000549{
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000550 int param;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000551 char *name;
552
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000553 CheckCompressor(SELF);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000554
Roger E. Massee474fb31997-01-17 16:00:02 +0000555 if (!PyArg_Parse(args, "i", &param))
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000556 return NULL;
557
558 error_handler_called = 0;
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000559 name = clGetName(SELF->ob_compressorHdl, param);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000560 if (name == NULL || error_handler_called) {
561 if (!error_handler_called)
Roger E. Massee474fb31997-01-17 16:00:02 +0000562 PyErr_SetString(ClError, "getname failed");
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000563 return NULL;
564 }
565
Roger E. Massee474fb31997-01-17 16:00:02 +0000566 return PyString_FromString(name);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000567}
568
Roger E. Massee474fb31997-01-17 16:00:02 +0000569static PyObject *
Neal Norwitz50905b52002-03-31 14:57:24 +0000570clm_QuerySchemeFromHandle(PyObject *self)
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000571{
572 CheckCompressor(SELF);
Roger E. Massee474fb31997-01-17 16:00:02 +0000573 return PyInt_FromLong(clQuerySchemeFromHandle(SELF->ob_compressorHdl));
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000574}
575
Roger E. Massee474fb31997-01-17 16:00:02 +0000576static PyObject *
577clm_ReadHeader(PyObject *self, PyObject *args)
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000578{
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000579 char *header;
580 int headerSize;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000581
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000582 CheckCompressor(SELF);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000583
Roger E. Massee474fb31997-01-17 16:00:02 +0000584 if (!PyArg_Parse(args, "s#", &header, &headerSize))
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000585 return NULL;
586
Roger E. Massee474fb31997-01-17 16:00:02 +0000587 return PyInt_FromLong(clReadHeader(SELF->ob_compressorHdl,
588 headerSize, header));
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000589}
590
Roger E. Massee474fb31997-01-17 16:00:02 +0000591static PyMethodDef compressor_methods[] = {
Neal Norwitz50905b52002-03-31 14:57:24 +0000592 {"close", clm_CloseCompressor, METH_NOARGS}, /* alias */
593 {"CloseCompressor", clm_CloseCompressor, METH_NOARGS},
Martin v. Löwis43b936d2002-01-17 23:15:58 +0000594 {"Compress", clm_Compress, METH_OLDARGS},
595 {"GetDefault", clm_GetDefault, METH_OLDARGS},
596 {"GetMinMax", clm_GetMinMax, METH_OLDARGS},
597 {"GetName", clm_GetName, METH_OLDARGS},
598 {"GetParam", clm_GetParam, METH_OLDARGS},
599 {"GetParamID", clm_GetParamID, METH_OLDARGS},
600 {"GetParams", clm_GetParams, METH_OLDARGS},
Neal Norwitz50905b52002-03-31 14:57:24 +0000601 {"QueryParams", clm_QueryParams, METH_NOARGS},
602 {"QuerySchemeFromHandle",clm_QuerySchemeFromHandle, METH_NOARGS},
Martin v. Löwis43b936d2002-01-17 23:15:58 +0000603 {"SetParam", clm_SetParam, METH_OLDARGS},
604 {"SetParams", clm_SetParams, METH_OLDARGS},
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000605 {NULL, NULL} /* sentinel */
606};
607
Roger E. Massee474fb31997-01-17 16:00:02 +0000608static PyMethodDef decompressor_methods[] = {
Neal Norwitz50905b52002-03-31 14:57:24 +0000609 {"close", clm_CloseDecompressor, METH_NOARGS}, /* alias */
610 {"CloseDecompressor", clm_CloseDecompressor, METH_NOARGS},
Martin v. Löwis43b936d2002-01-17 23:15:58 +0000611 {"Decompress", clm_Decompress, METH_OLDARGS},
612 {"GetDefault", clm_GetDefault, METH_OLDARGS},
613 {"GetMinMax", clm_GetMinMax, METH_OLDARGS},
614 {"GetName", clm_GetName, METH_OLDARGS},
615 {"GetParam", clm_GetParam, METH_OLDARGS},
616 {"GetParamID", clm_GetParamID, METH_OLDARGS},
617 {"GetParams", clm_GetParams, METH_OLDARGS},
618 {"ReadHeader", clm_ReadHeader, METH_OLDARGS},
Neal Norwitz50905b52002-03-31 14:57:24 +0000619 {"QueryParams", clm_QueryParams, METH_NOARGS},
620 {"QuerySchemeFromHandle",clm_QuerySchemeFromHandle, METH_NOARGS},
Martin v. Löwis43b936d2002-01-17 23:15:58 +0000621 {"SetParam", clm_SetParam, METH_OLDARGS},
622 {"SetParams", clm_SetParams, METH_OLDARGS},
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000623 {NULL, NULL} /* sentinel */
624};
625
626static void
Roger E. Massee474fb31997-01-17 16:00:02 +0000627cl_dealloc(PyObject *self)
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000628{
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000629 if (SELF->ob_compressorHdl) {
630 if (SELF->ob_isCompressor)
631 clCloseCompressor(SELF->ob_compressorHdl);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000632 else
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000633 clCloseDecompressor(SELF->ob_compressorHdl);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000634 }
Guido van Rossumb18618d2000-05-03 23:44:39 +0000635 PyObject_Del(self);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000636}
637
Roger E. Massee474fb31997-01-17 16:00:02 +0000638static PyObject *
639cl_getattr(PyObject *self, char *name)
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000640{
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000641 if (SELF->ob_isCompressor)
Roger E. Massee474fb31997-01-17 16:00:02 +0000642 return Py_FindMethod(compressor_methods, self, name);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000643 else
Roger E. Massee474fb31997-01-17 16:00:02 +0000644 return Py_FindMethod(decompressor_methods, self, name);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000645}
646
Roger E. Massee474fb31997-01-17 16:00:02 +0000647static PyTypeObject Cltype = {
648 PyObject_HEAD_INIT(&PyType_Type)
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000649 0, /*ob_size*/
Guido van Rossum14648392001-12-08 18:02:58 +0000650 "cl.cl", /*tp_name*/
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000651 sizeof(clobject), /*tp_size*/
652 0, /*tp_itemsize*/
653 /* methods */
Guido van Rossumb6775db1994-08-01 11:34:53 +0000654 (destructor)cl_dealloc, /*tp_dealloc*/
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000655 0, /*tp_print*/
Guido van Rossumb6775db1994-08-01 11:34:53 +0000656 (getattrfunc)cl_getattr, /*tp_getattr*/
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000657 0, /*tp_setattr*/
658 0, /*tp_compare*/
659 0, /*tp_repr*/
660 0, /*tp_as_number*/
661 0, /*tp_as_sequence*/
662 0, /*tp_as_mapping*/
663};
664
Roger E. Massee474fb31997-01-17 16:00:02 +0000665static PyObject *
666doOpen(PyObject *self, PyObject *args, int (*open_func)(int, CL_Handle *),
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000667 int iscompressor)
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000668{
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000669 int scheme;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000670 clobject *new;
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000671
Neal Norwitzb0aaec52002-04-02 18:26:33 +0000672 if (!PyArg_ParseTuple(args, "i", &scheme))
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000673 return NULL;
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000674
Guido van Rossumb18618d2000-05-03 23:44:39 +0000675 new = PyObject_New(clobject, &Cltype);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000676 if (new == NULL)
677 return NULL;
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000678
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000679 new->ob_compressorHdl = NULL;
680 new->ob_isCompressor = iscompressor;
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000681 new->ob_paramtypes = NULL;
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000682
683 error_handler_called = 0;
Guido van Rossum72429051997-08-12 14:58:54 +0000684 if ((*open_func)(scheme, &new->ob_compressorHdl) == FAILURE ||
685 error_handler_called) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000686 Py_DECREF(new);
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000687 if (!error_handler_called)
Roger E. Massee474fb31997-01-17 16:00:02 +0000688 PyErr_SetString(ClError, "Open(De)Compressor failed");
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000689 return NULL;
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000690 }
Roger E. Massee474fb31997-01-17 16:00:02 +0000691 return (PyObject *)new;
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000692}
693
Roger E. Massee474fb31997-01-17 16:00:02 +0000694static PyObject *
695cl_OpenCompressor(PyObject *self, PyObject *args)
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000696{
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000697 return doOpen(self, args, clOpenCompressor, 1);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000698}
699
Roger E. Massee474fb31997-01-17 16:00:02 +0000700static PyObject *
701cl_OpenDecompressor(PyObject *self, PyObject *args)
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000702{
Sjoerd Mullender8dd054d1992-12-14 13:17:29 +0000703 return doOpen(self, args, clOpenDecompressor, 0);
Sjoerd Mullender384f2481992-09-29 16:43:43 +0000704}
705
Roger E. Massee474fb31997-01-17 16:00:02 +0000706static PyObject *
707cl_QueryScheme(PyObject *self, PyObject *args)
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000708{
709 char *header;
710 int headerlen;
711 int scheme;
712
Neal Norwitzb0aaec52002-04-02 18:26:33 +0000713 if (!PyArg_ParseTuple(args, "s#", &header, &headerlen))
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000714 return NULL;
715
716 scheme = clQueryScheme(header);
717 if (scheme < 0) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000718 PyErr_SetString(ClError, "unknown compression scheme");
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000719 return NULL;
720 }
721
Roger E. Massee474fb31997-01-17 16:00:02 +0000722 return PyInt_FromLong(scheme);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000723}
724
Roger E. Massee474fb31997-01-17 16:00:02 +0000725static PyObject *
726cl_QueryMaxHeaderSize(PyObject *self, PyObject *args)
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000727{
728 int scheme;
729
Neal Norwitzb0aaec52002-04-02 18:26:33 +0000730 if (!PyArg_ParseTuple(args, "i", &scheme))
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000731 return NULL;
732
Roger E. Massee474fb31997-01-17 16:00:02 +0000733 return PyInt_FromLong(clQueryMaxHeaderSize(scheme));
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000734}
735
Roger E. Massee474fb31997-01-17 16:00:02 +0000736static PyObject *
737cl_QueryAlgorithms(PyObject *self, PyObject *args)
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000738{
739 int algorithmMediaType;
740 int bufferlength;
741 int *PVbuffer;
Roger E. Massee474fb31997-01-17 16:00:02 +0000742 PyObject *list;
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000743 int i;
744
Neal Norwitzb0aaec52002-04-02 18:26:33 +0000745 if (!PyArg_ParseTuple(args, "i", &algorithmMediaType))
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000746 return NULL;
747
748 error_handler_called = 0;
749 bufferlength = clQueryAlgorithms(algorithmMediaType, 0, 0);
750 if (error_handler_called)
751 return NULL;
752
Roger E. Massee474fb31997-01-17 16:00:02 +0000753 PVbuffer = PyMem_NEW(int, bufferlength);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000754 if (PVbuffer == NULL)
Roger E. Massee474fb31997-01-17 16:00:02 +0000755 return PyErr_NoMemory();
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000756
757 bufferlength = clQueryAlgorithms(algorithmMediaType, PVbuffer,
Roger E. Massee474fb31997-01-17 16:00:02 +0000758 bufferlength);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000759 if (error_handler_called) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000760 PyMem_DEL(PVbuffer);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000761 return NULL;
762 }
763
Roger E. Massee474fb31997-01-17 16:00:02 +0000764 list = PyList_New(bufferlength);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000765 if (list == NULL) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000766 PyMem_DEL(PVbuffer);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000767 return NULL;
768 }
769
770 for (i = 0; i < bufferlength; i++) {
771 if (i & 1)
Roger E. Massee474fb31997-01-17 16:00:02 +0000772 PyList_SetItem(list, i, PyInt_FromLong(PVbuffer[i]));
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000773 else if (PVbuffer[i] == 0) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000774 Py_INCREF(Py_None);
775 PyList_SetItem(list, i, Py_None);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000776 } else
Roger E. Massee474fb31997-01-17 16:00:02 +0000777 PyList_SetItem(list, i,
778 PyString_FromString((char *) PVbuffer[i]));
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000779 }
780
Roger E. Massee474fb31997-01-17 16:00:02 +0000781 PyMem_DEL(PVbuffer);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000782
783 return list;
784}
785
Roger E. Massee474fb31997-01-17 16:00:02 +0000786static PyObject *
787cl_QuerySchemeFromName(PyObject *self, PyObject *args)
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000788{
789 int algorithmMediaType;
790 char *name;
791 int scheme;
792
Neal Norwitzb0aaec52002-04-02 18:26:33 +0000793 if (!PyArg_ParseTuple(args, "is", &algorithmMediaType, &name))
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000794 return NULL;
795
796 error_handler_called = 0;
797 scheme = clQuerySchemeFromName(algorithmMediaType, name);
798 if (error_handler_called) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000799 PyErr_SetString(ClError, "unknown compression scheme");
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000800 return NULL;
801 }
802
Roger E. Massee474fb31997-01-17 16:00:02 +0000803 return PyInt_FromLong(scheme);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000804}
805
Roger E. Massee474fb31997-01-17 16:00:02 +0000806static PyObject *
807cl_GetAlgorithmName(PyObject *self, PyObject *args)
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000808{
809 int scheme;
810 char *name;
811
Neal Norwitzb0aaec52002-04-02 18:26:33 +0000812 if (!PyArg_ParseTuple(args, "i", &scheme))
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000813 return NULL;
814
815 name = clGetAlgorithmName(scheme);
816 if (name == 0) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000817 PyErr_SetString(ClError, "unknown compression scheme");
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000818 return NULL;
819 }
820
Roger E. Massee474fb31997-01-17 16:00:02 +0000821 return PyString_FromString(name);
Sjoerd Mullender3a997271993-02-04 16:43:28 +0000822}
823
Roger E. Massee474fb31997-01-17 16:00:02 +0000824static PyObject *
825do_set(PyObject *self, PyObject *args, int (*func)(int, int, int))
Sjoerd Mullender22e44cd1993-02-17 09:11:14 +0000826{
827 int scheme, paramID, value;
828 float fvalue;
829 int is_float = 0;
830
Neal Norwitzb0aaec52002-04-02 18:26:33 +0000831 if (!PyArg_ParseTuple(args, "iii", &scheme, &paramID, &value)) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000832 PyErr_Clear();
Neal Norwitzb0aaec52002-04-02 18:26:33 +0000833 if (!PyArg_ParseTuple(args, "iif", &scheme, &paramID, &fvalue)) {
Roger E. Massee474fb31997-01-17 16:00:02 +0000834 PyErr_Clear();
835 PyErr_SetString(PyExc_TypeError,
836 "bad argument list (format '(iii)' or '(iif)')");
Sjoerd Mullender22e44cd1993-02-17 09:11:14 +0000837 return NULL;
838 }
839 value = CL_TypeIsInt(fvalue);
840 is_float = 1;
841 } else {
842 /* check some parameters which we know to be floats */
843 switch (scheme) {
844 case CL_COMPRESSION_RATIO:
845 case CL_SPEED:
846 fvalue = value;
847 value = CL_TypeIsInt(fvalue);
848 is_float = 1;
849 break;
850 }
851 }
852
853 error_handler_called = 0;
854 value = (*func)(scheme, paramID, value);
855 if (error_handler_called)
856 return NULL;
857
858 if (is_float)
Roger E. Massee474fb31997-01-17 16:00:02 +0000859 return PyFloat_FromDouble(CL_TypeIsFloat(value));
Sjoerd Mullender22e44cd1993-02-17 09:11:14 +0000860 else
Roger E. Massee474fb31997-01-17 16:00:02 +0000861 return PyInt_FromLong(value);
Sjoerd Mullender22e44cd1993-02-17 09:11:14 +0000862}
863
Roger E. Massee474fb31997-01-17 16:00:02 +0000864static PyObject *
865cl_SetDefault(PyObject *self, PyObject *args)
Sjoerd Mullender22e44cd1993-02-17 09:11:14 +0000866{
867 return do_set(self, args, clSetDefault);
868}
869
Roger E. Massee474fb31997-01-17 16:00:02 +0000870static PyObject *
871cl_SetMin(PyObject *self, PyObject *args)
Sjoerd Mullender22e44cd1993-02-17 09:11:14 +0000872{
873 return do_set(self, args, clSetMin);
874}
875
Roger E. Massee474fb31997-01-17 16:00:02 +0000876static PyObject *
877cl_SetMax(PyObject *self, PyObject *args)
Sjoerd Mullender22e44cd1993-02-17 09:11:14 +0000878{
879 return do_set(self, args, clSetMax);
880}
881
Roger E. Massee474fb31997-01-17 16:00:02 +0000882#define func(name, handler) \
883static PyObject *cl_##name(PyObject *self, PyObject *args) \
884{ \
885 int x; \
Neal Norwitzb0aaec52002-04-02 18:26:33 +0000886 if (!PyArg_ParseTuple(args, "i", &x)) return NULL; \
Roger E. Massee474fb31997-01-17 16:00:02 +0000887 return Py##handler(CL_##name(x)); \
888}
Sjoerd Mullender3db845b1995-05-17 11:16:52 +0000889
Roger E. Massee474fb31997-01-17 16:00:02 +0000890#define func2(name, handler) \
891static PyObject *cl_##name(PyObject *self, PyObject *args) \
892{ \
893 int a1, a2; \
Neal Norwitzb0aaec52002-04-02 18:26:33 +0000894 if (!PyArg_ParseTuple(args, "ii", &a1, &a2)) return NULL; \
Roger E. Massee474fb31997-01-17 16:00:02 +0000895 return Py##handler(CL_##name(a1, a2)); \
896}
Sjoerd Mullender3db845b1995-05-17 11:16:52 +0000897
Roger E. Massee474fb31997-01-17 16:00:02 +0000898func(BytesPerSample, Int_FromLong)
899func(BytesPerPixel, Int_FromLong)
900func(AudioFormatName, String_FromString)
901func(VideoFormatName, String_FromString)
902func(AlgorithmNumber, Int_FromLong)
903func(AlgorithmType, Int_FromLong)
904func2(Algorithm, Int_FromLong)
905func(ParamNumber, Int_FromLong)
906func(ParamType, Int_FromLong)
907func2(ParamID, Int_FromLong)
Sjoerd Mullender3db845b1995-05-17 11:16:52 +0000908
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000909#ifdef CLDEBUG
Roger E. Massee474fb31997-01-17 16:00:02 +0000910 static PyObject *
911cvt_type(PyObject *self, PyObject *args)
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000912{
913 int number;
914 float fnumber;
915
Roger E. Massee474fb31997-01-17 16:00:02 +0000916 if (PyArg_Parse(args, "i", &number))
917 return PyFloat_FromDouble(CL_TypeIsFloat(number));
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000918 else {
Roger E. Massee474fb31997-01-17 16:00:02 +0000919 PyErr_Clear();
920 if (PyArg_Parse(args, "f", &fnumber))
921 return PyInt_FromLong(CL_TypeIsInt(fnumber));
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000922 return NULL;
923 }
924}
925#endif
926
Roger E. Massee474fb31997-01-17 16:00:02 +0000927static PyMethodDef cl_methods[] = {
Neal Norwitzb0aaec52002-04-02 18:26:33 +0000928 {"CompressImage", cl_CompressImage, METH_VARARGS},
929 {"DecompressImage", cl_DecompressImage, METH_VARARGS},
930 {"GetAlgorithmName", cl_GetAlgorithmName, METH_VARARGS},
931 {"OpenCompressor", cl_OpenCompressor, METH_VARARGS},
932 {"OpenDecompressor", cl_OpenDecompressor, METH_VARARGS},
933 {"QueryAlgorithms", cl_QueryAlgorithms, METH_VARARGS},
934 {"QueryMaxHeaderSize", cl_QueryMaxHeaderSize, METH_VARARGS},
935 {"QueryScheme", cl_QueryScheme, METH_VARARGS},
936 {"QuerySchemeFromName", cl_QuerySchemeFromName, METH_VARARGS},
937 {"SetDefault", cl_SetDefault, METH_VARARGS},
938 {"SetMax", cl_SetMax, METH_VARARGS},
939 {"SetMin", cl_SetMin, METH_VARARGS},
940 {"BytesPerSample", cl_BytesPerSample, METH_VARARGS},
941 {"BytesPerPixel", cl_BytesPerPixel, METH_VARARGS},
942 {"AudioFormatName", cl_AudioFormatName, METH_VARARGS},
943 {"VideoFormatName", cl_VideoFormatName, METH_VARARGS},
944 {"AlgorithmNumber", cl_AlgorithmNumber, METH_VARARGS},
945 {"AlgorithmType", cl_AlgorithmType, METH_VARARGS},
946 {"Algorithm", cl_Algorithm, METH_VARARGS},
947 {"ParamNumber", cl_ParamNumber, METH_VARARGS},
948 {"ParamType", cl_ParamType, METH_VARARGS},
949 {"ParamID", cl_ParamID, METH_VARARGS},
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000950#ifdef CLDEBUG
Neal Norwitzb0aaec52002-04-02 18:26:33 +0000951 {"cvt_type", cvt_type, METH_VARARGS},
Sjoerd Mullender4e2a4271993-02-16 11:55:17 +0000952#endif
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000953 {NULL, NULL} /* Sentinel */
954};
955
Sjoerd Mullender3db845b1995-05-17 11:16:52 +0000956#ifdef CL_JPEG_SOFTWARE
957#define IRIX_5_3_LIBRARY
958#endif
959
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000960void
Thomas Woutersf3f33dc2000-07-21 06:00:07 +0000961initcl(void)
Sjoerd Mullenderc4315491992-09-23 14:53:00 +0000962{
Guido van Rossum72429051997-08-12 14:58:54 +0000963 PyObject *m, *d, *x;
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +0000964
Roger E. Massee474fb31997-01-17 16:00:02 +0000965 m = Py_InitModule("cl", cl_methods);
966 d = PyModule_GetDict(m);
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +0000967
Guido van Rossum0cb96de1997-10-01 04:29:29 +0000968 ClError = PyErr_NewException("cl.error", NULL, NULL);
Roger E. Massee474fb31997-01-17 16:00:02 +0000969 (void) PyDict_SetItemString(d, "error", ClError);
Sjoerd Mullender3db845b1995-05-17 11:16:52 +0000970
Guido van Rossum72429051997-08-12 14:58:54 +0000971#ifdef CL_ADDED_ALGORITHM_ERROR
972 x = PyInt_FromLong(CL_ADDED_ALGORITHM_ERROR);
973 if (x == NULL || PyDict_SetItemString(d, "ADDED_ALGORITHM_ERROR", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +0000974 return;
Guido van Rossum72429051997-08-12 14:58:54 +0000975 Py_DECREF(x);
Sjoerd Mullender3db845b1995-05-17 11:16:52 +0000976#endif
Guido van Rossum72429051997-08-12 14:58:54 +0000977#ifdef CL_ALAW
978 x = PyInt_FromLong(CL_ALAW);
979 if (x == NULL || PyDict_SetItemString(d, "ALAW", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +0000980 return;
Guido van Rossum72429051997-08-12 14:58:54 +0000981 Py_DECREF(x);
Sjoerd Mullender3db845b1995-05-17 11:16:52 +0000982#endif
Guido van Rossum72429051997-08-12 14:58:54 +0000983#ifdef CL_ALGORITHM_ID
984 x = PyInt_FromLong(CL_ALGORITHM_ID);
985 if (x == NULL || PyDict_SetItemString(d, "ALGORITHM_ID", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +0000986 return;
Guido van Rossum72429051997-08-12 14:58:54 +0000987 Py_DECREF(x);
Sjoerd Mullender3db845b1995-05-17 11:16:52 +0000988#endif
Guido van Rossum72429051997-08-12 14:58:54 +0000989#ifdef CL_ALGORITHM_TABLE_FULL
990 x = PyInt_FromLong(CL_ALGORITHM_TABLE_FULL);
991 if (x == NULL || PyDict_SetItemString(d, "ALGORITHM_TABLE_FULL", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +0000992 return;
Guido van Rossum72429051997-08-12 14:58:54 +0000993 Py_DECREF(x);
994#endif
995#ifdef CL_ALGORITHM_VERSION
996 x = PyInt_FromLong(CL_ALGORITHM_VERSION);
997 if (x == NULL || PyDict_SetItemString(d, "ALGORITHM_VERSION", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +0000998 return;
Guido van Rossum72429051997-08-12 14:58:54 +0000999 Py_DECREF(x);
1000#endif
1001#ifdef CL_ALG_AUDIO
1002 x = PyInt_FromLong(CL_ALG_AUDIO);
1003 if (x == NULL || PyDict_SetItemString(d, "ALG_AUDIO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001004 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001005 Py_DECREF(x);
1006#endif
1007#ifdef CL_ALG_VIDEO
1008 x = PyInt_FromLong(CL_ALG_VIDEO);
1009 if (x == NULL || PyDict_SetItemString(d, "ALG_VIDEO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001010 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001011 Py_DECREF(x);
1012#endif
1013#ifdef CL_AUDIO
1014 x = PyInt_FromLong(CL_AUDIO);
1015 if (x == NULL || PyDict_SetItemString(d, "AUDIO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001016 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001017 Py_DECREF(x);
1018#endif
1019#ifdef CL_AWARE_BITRATE_POLICY
1020 x = PyInt_FromLong(CL_AWARE_BITRATE_POLICY);
1021 if (x == NULL || PyDict_SetItemString(d, "AWARE_BITRATE_POLICY", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001022 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001023 Py_DECREF(x);
1024#endif
1025#ifdef CL_AWARE_BITRATE_TARGET
1026 x = PyInt_FromLong(CL_AWARE_BITRATE_TARGET);
1027 if (x == NULL || PyDict_SetItemString(d, "AWARE_BITRATE_TARGET", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001028 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001029 Py_DECREF(x);
1030#endif
1031#ifdef CL_AWARE_CHANNEL_POLICY
1032 x = PyInt_FromLong(CL_AWARE_CHANNEL_POLICY);
1033 if (x == NULL || PyDict_SetItemString(d, "AWARE_CHANNEL_POLICY", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001034 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001035 Py_DECREF(x);
1036#endif
1037#ifdef CL_AWARE_CONST_QUAL
1038 x = PyInt_FromLong(CL_AWARE_CONST_QUAL);
1039 if (x == NULL || PyDict_SetItemString(d, "AWARE_CONST_QUAL", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001040 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001041 Py_DECREF(x);
1042#endif
1043#ifdef CL_AWARE_ERROR
1044 x = PyInt_FromLong(CL_AWARE_ERROR);
1045 if (x == NULL || PyDict_SetItemString(d, "AWARE_ERROR", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001046 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001047 Py_DECREF(x);
1048#endif
1049#ifdef CL_AWARE_FIXED_RATE
1050 x = PyInt_FromLong(CL_AWARE_FIXED_RATE);
1051 if (x == NULL || PyDict_SetItemString(d, "AWARE_FIXED_RATE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001052 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001053 Py_DECREF(x);
1054#endif
1055#ifdef CL_AWARE_INDEPENDENT
1056 x = PyInt_FromLong(CL_AWARE_INDEPENDENT);
1057 if (x == NULL || PyDict_SetItemString(d, "AWARE_INDEPENDENT", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001058 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001059 Py_DECREF(x);
1060#endif
1061#ifdef CL_AWARE_JOINT_STEREO
1062 x = PyInt_FromLong(CL_AWARE_JOINT_STEREO);
1063 if (x == NULL || PyDict_SetItemString(d, "AWARE_JOINT_STEREO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001064 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001065 Py_DECREF(x);
1066#endif
1067#ifdef CL_AWARE_LAYER
1068 x = PyInt_FromLong(CL_AWARE_LAYER);
1069 if (x == NULL || PyDict_SetItemString(d, "AWARE_LAYER", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001070 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001071 Py_DECREF(x);
1072#endif
1073#ifdef CL_AWARE_LOSSLESS
1074 x = PyInt_FromLong(CL_AWARE_LOSSLESS);
1075 if (x == NULL || PyDict_SetItemString(d, "AWARE_LOSSLESS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001076 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001077 Py_DECREF(x);
1078#endif
1079#ifdef CL_AWARE_MPEG_AUDIO
1080 x = PyInt_FromLong(CL_AWARE_MPEG_AUDIO);
1081 if (x == NULL || PyDict_SetItemString(d, "AWARE_MPEG_AUDIO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001082 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001083 Py_DECREF(x);
1084#endif
1085#ifdef CL_AWARE_MPEG_LAYER_I
1086 x = PyInt_FromLong(CL_AWARE_MPEG_LAYER_I);
1087 if (x == NULL || PyDict_SetItemString(d, "AWARE_MPEG_LAYER_I", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001088 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001089 Py_DECREF(x);
1090#endif
1091#ifdef CL_AWARE_MPEG_LAYER_II
1092 x = PyInt_FromLong(CL_AWARE_MPEG_LAYER_II);
1093 if (x == NULL || PyDict_SetItemString(d, "AWARE_MPEG_LAYER_II", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001094 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001095 Py_DECREF(x);
1096#endif
1097#ifdef CL_AWARE_MULTIRATE
1098 x = PyInt_FromLong(CL_AWARE_MULTIRATE);
1099 if (x == NULL || PyDict_SetItemString(d, "AWARE_MULTIRATE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001100 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001101 Py_DECREF(x);
1102#endif
1103#ifdef CL_AWARE_NOISE_MARGIN
1104 x = PyInt_FromLong(CL_AWARE_NOISE_MARGIN);
1105 if (x == NULL || PyDict_SetItemString(d, "AWARE_NOISE_MARGIN", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001106 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001107 Py_DECREF(x);
1108#endif
1109#ifdef CL_AWARE_STEREO
1110 x = PyInt_FromLong(CL_AWARE_STEREO);
1111 if (x == NULL || PyDict_SetItemString(d, "AWARE_STEREO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001112 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001113 Py_DECREF(x);
1114#endif
1115#ifdef CL_BAD_ALGORITHM_NAME
1116 x = PyInt_FromLong(CL_BAD_ALGORITHM_NAME);
1117 if (x == NULL || PyDict_SetItemString(d, "BAD_ALGORITHM_NAME", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001118 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001119 Py_DECREF(x);
1120#endif
1121#ifdef CL_BAD_ALGORITHM_TYPE
1122 x = PyInt_FromLong(CL_BAD_ALGORITHM_TYPE);
1123 if (x == NULL || PyDict_SetItemString(d, "BAD_ALGORITHM_TYPE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001124 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001125 Py_DECREF(x);
1126#endif
1127#ifdef CL_BAD_BLOCK_SIZE
1128 x = PyInt_FromLong(CL_BAD_BLOCK_SIZE);
1129 if (x == NULL || PyDict_SetItemString(d, "BAD_BLOCK_SIZE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001130 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001131 Py_DECREF(x);
1132#endif
1133#ifdef CL_BAD_BOARD
1134 x = PyInt_FromLong(CL_BAD_BOARD);
1135 if (x == NULL || PyDict_SetItemString(d, "BAD_BOARD", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001136 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001137 Py_DECREF(x);
1138#endif
1139#ifdef CL_BAD_BUFFERING
1140 x = PyInt_FromLong(CL_BAD_BUFFERING);
1141 if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFERING", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001142 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001143 Py_DECREF(x);
1144#endif
1145#ifdef CL_BAD_BUFFERLENGTH_NEG
1146 x = PyInt_FromLong(CL_BAD_BUFFERLENGTH_NEG);
1147 if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFERLENGTH_NEG", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001148 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001149 Py_DECREF(x);
1150#endif
1151#ifdef CL_BAD_BUFFERLENGTH_ODD
1152 x = PyInt_FromLong(CL_BAD_BUFFERLENGTH_ODD);
1153 if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFERLENGTH_ODD", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001154 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001155 Py_DECREF(x);
1156#endif
1157#ifdef CL_BAD_BUFFER_EXISTS
1158 x = PyInt_FromLong(CL_BAD_BUFFER_EXISTS);
1159 if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFER_EXISTS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001160 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001161 Py_DECREF(x);
1162#endif
1163#ifdef CL_BAD_BUFFER_HANDLE
1164 x = PyInt_FromLong(CL_BAD_BUFFER_HANDLE);
1165 if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFER_HANDLE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001166 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001167 Py_DECREF(x);
1168#endif
1169#ifdef CL_BAD_BUFFER_POINTER
1170 x = PyInt_FromLong(CL_BAD_BUFFER_POINTER);
1171 if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFER_POINTER", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001172 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001173 Py_DECREF(x);
1174#endif
1175#ifdef CL_BAD_BUFFER_QUERY_SIZE
1176 x = PyInt_FromLong(CL_BAD_BUFFER_QUERY_SIZE);
1177 if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFER_QUERY_SIZE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001178 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001179 Py_DECREF(x);
1180#endif
1181#ifdef CL_BAD_BUFFER_SIZE
1182 x = PyInt_FromLong(CL_BAD_BUFFER_SIZE);
1183 if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFER_SIZE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001184 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001185 Py_DECREF(x);
1186#endif
1187#ifdef CL_BAD_BUFFER_SIZE_POINTER
1188 x = PyInt_FromLong(CL_BAD_BUFFER_SIZE_POINTER);
1189 if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFER_SIZE_POINTER", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001190 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001191 Py_DECREF(x);
1192#endif
1193#ifdef CL_BAD_BUFFER_TYPE
1194 x = PyInt_FromLong(CL_BAD_BUFFER_TYPE);
1195 if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFER_TYPE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001196 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001197 Py_DECREF(x);
1198#endif
1199#ifdef CL_BAD_COMPRESSION_SCHEME
1200 x = PyInt_FromLong(CL_BAD_COMPRESSION_SCHEME);
1201 if (x == NULL || PyDict_SetItemString(d, "BAD_COMPRESSION_SCHEME", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001202 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001203 Py_DECREF(x);
1204#endif
1205#ifdef CL_BAD_COMPRESSOR_HANDLE
1206 x = PyInt_FromLong(CL_BAD_COMPRESSOR_HANDLE);
1207 if (x == NULL || PyDict_SetItemString(d, "BAD_COMPRESSOR_HANDLE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001208 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001209 Py_DECREF(x);
1210#endif
1211#ifdef CL_BAD_COMPRESSOR_HANDLE_POINTER
1212 x = PyInt_FromLong(CL_BAD_COMPRESSOR_HANDLE_POINTER);
1213 if (x == NULL || PyDict_SetItemString(d, "BAD_COMPRESSOR_HANDLE_POINTER", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001214 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001215 Py_DECREF(x);
1216#endif
1217#ifdef CL_BAD_FRAME_SIZE
1218 x = PyInt_FromLong(CL_BAD_FRAME_SIZE);
1219 if (x == NULL || PyDict_SetItemString(d, "BAD_FRAME_SIZE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001220 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001221 Py_DECREF(x);
1222#endif
1223#ifdef CL_BAD_FUNCTIONALITY
1224 x = PyInt_FromLong(CL_BAD_FUNCTIONALITY);
1225 if (x == NULL || PyDict_SetItemString(d, "BAD_FUNCTIONALITY", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001226 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001227 Py_DECREF(x);
1228#endif
1229#ifdef CL_BAD_FUNCTION_POINTER
1230 x = PyInt_FromLong(CL_BAD_FUNCTION_POINTER);
1231 if (x == NULL || PyDict_SetItemString(d, "BAD_FUNCTION_POINTER", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001232 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001233 Py_DECREF(x);
1234#endif
1235#ifdef CL_BAD_HEADER_SIZE
1236 x = PyInt_FromLong(CL_BAD_HEADER_SIZE);
1237 if (x == NULL || PyDict_SetItemString(d, "BAD_HEADER_SIZE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001238 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001239 Py_DECREF(x);
1240#endif
1241#ifdef CL_BAD_INITIAL_VALUE
1242 x = PyInt_FromLong(CL_BAD_INITIAL_VALUE);
1243 if (x == NULL || PyDict_SetItemString(d, "BAD_INITIAL_VALUE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001244 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001245 Py_DECREF(x);
1246#endif
1247#ifdef CL_BAD_INTERNAL_FORMAT
1248 x = PyInt_FromLong(CL_BAD_INTERNAL_FORMAT);
1249 if (x == NULL || PyDict_SetItemString(d, "BAD_INTERNAL_FORMAT", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001250 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001251 Py_DECREF(x);
1252#endif
1253#ifdef CL_BAD_LICENSE
1254 x = PyInt_FromLong(CL_BAD_LICENSE);
1255 if (x == NULL || PyDict_SetItemString(d, "BAD_LICENSE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001256 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001257 Py_DECREF(x);
1258#endif
1259#ifdef CL_BAD_MIN_GT_MAX
1260 x = PyInt_FromLong(CL_BAD_MIN_GT_MAX);
1261 if (x == NULL || PyDict_SetItemString(d, "BAD_MIN_GT_MAX", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001262 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001263 Py_DECREF(x);
1264#endif
1265#ifdef CL_BAD_NO_BUFFERSPACE
1266 x = PyInt_FromLong(CL_BAD_NO_BUFFERSPACE);
1267 if (x == NULL || PyDict_SetItemString(d, "BAD_NO_BUFFERSPACE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001268 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001269 Py_DECREF(x);
1270#endif
1271#ifdef CL_BAD_NUMBER_OF_BLOCKS
1272 x = PyInt_FromLong(CL_BAD_NUMBER_OF_BLOCKS);
1273 if (x == NULL || PyDict_SetItemString(d, "BAD_NUMBER_OF_BLOCKS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001274 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001275 Py_DECREF(x);
1276#endif
1277#ifdef CL_BAD_PARAM
1278 x = PyInt_FromLong(CL_BAD_PARAM);
1279 if (x == NULL || PyDict_SetItemString(d, "BAD_PARAM", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001280 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001281 Py_DECREF(x);
1282#endif
1283#ifdef CL_BAD_PARAM_ID_POINTER
1284 x = PyInt_FromLong(CL_BAD_PARAM_ID_POINTER);
1285 if (x == NULL || PyDict_SetItemString(d, "BAD_PARAM_ID_POINTER", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001286 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001287 Py_DECREF(x);
1288#endif
1289#ifdef CL_BAD_PARAM_TYPE
1290 x = PyInt_FromLong(CL_BAD_PARAM_TYPE);
1291 if (x == NULL || PyDict_SetItemString(d, "BAD_PARAM_TYPE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001292 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001293 Py_DECREF(x);
1294#endif
1295#ifdef CL_BAD_POINTER
1296 x = PyInt_FromLong(CL_BAD_POINTER);
1297 if (x == NULL || PyDict_SetItemString(d, "BAD_POINTER", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001298 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001299 Py_DECREF(x);
1300#endif
1301#ifdef CL_BAD_PVBUFFER
1302 x = PyInt_FromLong(CL_BAD_PVBUFFER);
1303 if (x == NULL || PyDict_SetItemString(d, "BAD_PVBUFFER", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001304 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001305 Py_DECREF(x);
1306#endif
1307#ifdef CL_BAD_SCHEME_POINTER
1308 x = PyInt_FromLong(CL_BAD_SCHEME_POINTER);
1309 if (x == NULL || PyDict_SetItemString(d, "BAD_SCHEME_POINTER", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001310 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001311 Py_DECREF(x);
1312#endif
1313#ifdef CL_BAD_STREAM_HEADER
1314 x = PyInt_FromLong(CL_BAD_STREAM_HEADER);
1315 if (x == NULL || PyDict_SetItemString(d, "BAD_STREAM_HEADER", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001316 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001317 Py_DECREF(x);
1318#endif
1319#ifdef CL_BAD_STRING_POINTER
1320 x = PyInt_FromLong(CL_BAD_STRING_POINTER);
1321 if (x == NULL || PyDict_SetItemString(d, "BAD_STRING_POINTER", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001322 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001323 Py_DECREF(x);
1324#endif
1325#ifdef CL_BAD_TEXT_STRING_PTR
1326 x = PyInt_FromLong(CL_BAD_TEXT_STRING_PTR);
1327 if (x == NULL || PyDict_SetItemString(d, "BAD_TEXT_STRING_PTR", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001328 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001329 Py_DECREF(x);
1330#endif
1331#ifdef CL_BEST_FIT
1332 x = PyInt_FromLong(CL_BEST_FIT);
1333 if (x == NULL || PyDict_SetItemString(d, "BEST_FIT", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001334 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001335 Py_DECREF(x);
1336#endif
1337#ifdef CL_BIDIRECTIONAL
1338 x = PyInt_FromLong(CL_BIDIRECTIONAL);
1339 if (x == NULL || PyDict_SetItemString(d, "BIDIRECTIONAL", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001340 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001341 Py_DECREF(x);
1342#endif
1343#ifdef CL_BITRATE
1344 x = PyInt_FromLong(CL_BITRATE);
1345 if (x == NULL || PyDict_SetItemString(d, "BITRATE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001346 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001347 Py_DECREF(x);
1348#endif
1349#ifdef CL_BITRATE_POLICY
1350 x = PyInt_FromLong(CL_BITRATE_POLICY);
1351 if (x == NULL || PyDict_SetItemString(d, "BITRATE_POLICY", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001352 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001353 Py_DECREF(x);
1354#endif
1355#ifdef CL_BITRATE_TARGET
1356 x = PyInt_FromLong(CL_BITRATE_TARGET);
1357 if (x == NULL || PyDict_SetItemString(d, "BITRATE_TARGET", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001358 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001359 Py_DECREF(x);
1360#endif
1361#ifdef CL_BITS_PER_COMPONENT
1362 x = PyInt_FromLong(CL_BITS_PER_COMPONENT);
1363 if (x == NULL || PyDict_SetItemString(d, "BITS_PER_COMPONENT", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001364 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001365 Py_DECREF(x);
1366#endif
1367#ifdef CL_BLENDING
1368 x = PyInt_FromLong(CL_BLENDING);
1369 if (x == NULL || PyDict_SetItemString(d, "BLENDING", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001370 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001371 Py_DECREF(x);
1372#endif
1373#ifdef CL_BLOCK_SIZE
1374 x = PyInt_FromLong(CL_BLOCK_SIZE);
1375 if (x == NULL || PyDict_SetItemString(d, "BLOCK_SIZE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001376 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001377 Py_DECREF(x);
1378#endif
1379#ifdef CL_BOTTOM_UP
1380 x = PyInt_FromLong(CL_BOTTOM_UP);
1381 if (x == NULL || PyDict_SetItemString(d, "BOTTOM_UP", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001382 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001383 Py_DECREF(x);
1384#endif
1385#ifdef CL_BUFFER_NOT_CREATED
1386 x = PyInt_FromLong(CL_BUFFER_NOT_CREATED);
1387 if (x == NULL || PyDict_SetItemString(d, "BUFFER_NOT_CREATED", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001388 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001389 Py_DECREF(x);
1390#endif
1391#ifdef CL_BUF_COMPRESSED
1392 x = PyInt_FromLong(CL_BUF_COMPRESSED);
1393 if (x == NULL || PyDict_SetItemString(d, "BUF_COMPRESSED", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001394 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001395 Py_DECREF(x);
1396#endif
1397#ifdef CL_BUF_DATA
1398 x = PyInt_FromLong(CL_BUF_DATA);
1399 if (x == NULL || PyDict_SetItemString(d, "BUF_DATA", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001400 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001401 Py_DECREF(x);
1402#endif
1403#ifdef CL_BUF_FRAME
1404 x = PyInt_FromLong(CL_BUF_FRAME);
1405 if (x == NULL || PyDict_SetItemString(d, "BUF_FRAME", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001406 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001407 Py_DECREF(x);
1408#endif
1409#ifdef CL_CHANNEL_POLICY
1410 x = PyInt_FromLong(CL_CHANNEL_POLICY);
1411 if (x == NULL || PyDict_SetItemString(d, "CHANNEL_POLICY", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001412 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001413 Py_DECREF(x);
1414#endif
1415#ifdef CL_CHROMA_THRESHOLD
1416 x = PyInt_FromLong(CL_CHROMA_THRESHOLD);
1417 if (x == NULL || PyDict_SetItemString(d, "CHROMA_THRESHOLD", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001418 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001419 Py_DECREF(x);
1420#endif
1421#ifdef CL_CODEC
1422 x = PyInt_FromLong(CL_CODEC);
1423 if (x == NULL || PyDict_SetItemString(d, "CODEC", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001424 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001425 Py_DECREF(x);
1426#endif
1427#ifdef CL_COMPONENTS
1428 x = PyInt_FromLong(CL_COMPONENTS);
1429 if (x == NULL || PyDict_SetItemString(d, "COMPONENTS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001430 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001431 Py_DECREF(x);
1432#endif
1433#ifdef CL_COMPRESSED_BUFFER_SIZE
1434 x = PyInt_FromLong(CL_COMPRESSED_BUFFER_SIZE);
1435 if (x == NULL || PyDict_SetItemString(d, "COMPRESSED_BUFFER_SIZE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001436 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001437 Py_DECREF(x);
1438#endif
1439#ifdef CL_COMPRESSION_RATIO
1440 x = PyInt_FromLong(CL_COMPRESSION_RATIO);
1441 if (x == NULL || PyDict_SetItemString(d, "COMPRESSION_RATIO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001442 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001443 Py_DECREF(x);
1444#endif
1445#ifdef CL_COMPRESSOR
1446 x = PyInt_FromLong(CL_COMPRESSOR);
1447 if (x == NULL || PyDict_SetItemString(d, "COMPRESSOR", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001448 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001449 Py_DECREF(x);
1450#endif
1451#ifdef CL_CONTINUOUS_BLOCK
1452 x = PyInt_FromLong(CL_CONTINUOUS_BLOCK);
1453 if (x == NULL || PyDict_SetItemString(d, "CONTINUOUS_BLOCK", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001454 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001455 Py_DECREF(x);
1456#endif
1457#ifdef CL_CONTINUOUS_NONBLOCK
1458 x = PyInt_FromLong(CL_CONTINUOUS_NONBLOCK);
1459 if (x == NULL || PyDict_SetItemString(d, "CONTINUOUS_NONBLOCK", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001460 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001461 Py_DECREF(x);
1462#endif
1463#ifdef CL_COSMO_CODEC_CONTROL
1464 x = PyInt_FromLong(CL_COSMO_CODEC_CONTROL);
1465 if (x == NULL || PyDict_SetItemString(d, "COSMO_CODEC_CONTROL", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001466 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001467 Py_DECREF(x);
1468#endif
1469#ifdef CL_COSMO_NUM_PARAMS
1470 x = PyInt_FromLong(CL_COSMO_NUM_PARAMS);
1471 if (x == NULL || PyDict_SetItemString(d, "COSMO_NUM_PARAMS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001472 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001473 Py_DECREF(x);
1474#endif
1475#ifdef CL_COSMO_VALUE_BASE
1476 x = PyInt_FromLong(CL_COSMO_VALUE_BASE);
1477 if (x == NULL || PyDict_SetItemString(d, "COSMO_VALUE_BASE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001478 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001479 Py_DECREF(x);
1480#endif
1481#ifdef CL_COSMO_VIDEO_MANUAL_CONTROL
1482 x = PyInt_FromLong(CL_COSMO_VIDEO_MANUAL_CONTROL);
1483 if (x == NULL || PyDict_SetItemString(d, "COSMO_VIDEO_MANUAL_CONTROL", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001484 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001485 Py_DECREF(x);
1486#endif
1487#ifdef CL_COSMO_VIDEO_TRANSFER_MODE
1488 x = PyInt_FromLong(CL_COSMO_VIDEO_TRANSFER_MODE);
1489 if (x == NULL || PyDict_SetItemString(d, "COSMO_VIDEO_TRANSFER_MODE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001490 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001491 Py_DECREF(x);
1492#endif
1493#ifdef CL_DATA
1494 x = PyInt_FromLong(CL_DATA);
1495 if (x == NULL || PyDict_SetItemString(d, "DATA", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001496 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001497 Py_DECREF(x);
1498#endif
1499#ifdef CL_DECOMPRESSOR
1500 x = PyInt_FromLong(CL_DECOMPRESSOR);
1501 if (x == NULL || PyDict_SetItemString(d, "DECOMPRESSOR", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001502 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001503 Py_DECREF(x);
1504#endif
1505#ifdef CL_DSO_ERROR
1506 x = PyInt_FromLong(CL_DSO_ERROR);
1507 if (x == NULL || PyDict_SetItemString(d, "DSO_ERROR", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001508 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001509 Py_DECREF(x);
1510#endif
1511#ifdef CL_EDGE_THRESHOLD
1512 x = PyInt_FromLong(CL_EDGE_THRESHOLD);
1513 if (x == NULL || PyDict_SetItemString(d, "EDGE_THRESHOLD", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001514 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001515 Py_DECREF(x);
1516#endif
1517#ifdef CL_ENABLE_IMAGEINFO
1518 x = PyInt_FromLong(CL_ENABLE_IMAGEINFO);
1519 if (x == NULL || PyDict_SetItemString(d, "ENABLE_IMAGEINFO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001520 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001521 Py_DECREF(x);
1522#endif
1523#ifdef CL_END_OF_SEQUENCE
1524 x = PyInt_FromLong(CL_END_OF_SEQUENCE);
1525 if (x == NULL || PyDict_SetItemString(d, "END_OF_SEQUENCE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001526 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001527 Py_DECREF(x);
1528#endif
1529#ifdef CL_ENUM_VALUE
1530 x = PyInt_FromLong(CL_ENUM_VALUE);
1531 if (x == NULL || PyDict_SetItemString(d, "ENUM_VALUE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001532 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001533 Py_DECREF(x);
1534#endif
1535#ifdef CL_EXACT_COMPRESSION_RATIO
1536 x = PyInt_FromLong(CL_EXACT_COMPRESSION_RATIO);
1537 if (x == NULL || PyDict_SetItemString(d, "EXACT_COMPRESSION_RATIO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001538 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001539 Py_DECREF(x);
1540#endif
1541#ifdef CL_EXTERNAL_DEVICE
1542 x = PyInt_FromLong((long) CL_EXTERNAL_DEVICE);
1543 if (x == NULL || PyDict_SetItemString(d, "EXTERNAL_DEVICE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001544 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001545 Py_DECREF(x);
1546#endif
1547#ifdef CL_FLOATING_ENUM_VALUE
1548 x = PyInt_FromLong(CL_FLOATING_ENUM_VALUE);
1549 if (x == NULL || PyDict_SetItemString(d, "FLOATING_ENUM_VALUE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001550 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001551 Py_DECREF(x);
1552#endif
1553#ifdef CL_FLOATING_RANGE_VALUE
1554 x = PyInt_FromLong(CL_FLOATING_RANGE_VALUE);
1555 if (x == NULL || PyDict_SetItemString(d, "FLOATING_RANGE_VALUE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001556 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001557 Py_DECREF(x);
1558#endif
1559#ifdef CL_FORMAT
1560 x = PyInt_FromLong(CL_FORMAT);
1561 if (x == NULL || PyDict_SetItemString(d, "FORMAT", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001562 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001563 Py_DECREF(x);
1564#endif
1565#ifdef CL_FORMAT_ABGR
1566 x = PyInt_FromLong(CL_FORMAT_ABGR);
1567 if (x == NULL || PyDict_SetItemString(d, "FORMAT_ABGR", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001568 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001569 Py_DECREF(x);
1570#endif
1571#ifdef CL_FORMAT_BGR
1572 x = PyInt_FromLong(CL_FORMAT_BGR);
1573 if (x == NULL || PyDict_SetItemString(d, "FORMAT_BGR", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001574 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001575 Py_DECREF(x);
1576#endif
1577#ifdef CL_FORMAT_BGR233
1578 x = PyInt_FromLong(CL_FORMAT_BGR233);
1579 if (x == NULL || PyDict_SetItemString(d, "FORMAT_BGR233", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001580 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001581 Py_DECREF(x);
1582#endif
1583#ifdef CL_FORMAT_GRAYSCALE
1584 x = PyInt_FromLong(CL_FORMAT_GRAYSCALE);
1585 if (x == NULL || PyDict_SetItemString(d, "FORMAT_GRAYSCALE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001586 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001587 Py_DECREF(x);
1588#endif
1589#ifdef CL_FORMAT_MONO
1590 x = PyInt_FromLong(CL_FORMAT_MONO);
1591 if (x == NULL || PyDict_SetItemString(d, "FORMAT_MONO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001592 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001593 Py_DECREF(x);
1594#endif
1595#ifdef CL_FORMAT_RBG323
1596 x = PyInt_FromLong(CL_FORMAT_RBG323);
1597 if (x == NULL || PyDict_SetItemString(d, "FORMAT_RBG323", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001598 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001599 Py_DECREF(x);
1600#endif
1601#ifdef CL_FORMAT_STEREO_INTERLEAVED
1602 x = PyInt_FromLong(CL_FORMAT_STEREO_INTERLEAVED);
1603 if (x == NULL || PyDict_SetItemString(d, "FORMAT_STEREO_INTERLEAVED", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001604 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001605 Py_DECREF(x);
1606#endif
1607#ifdef CL_FORMAT_XBGR
1608 x = PyInt_FromLong(CL_FORMAT_XBGR);
1609 if (x == NULL || PyDict_SetItemString(d, "FORMAT_XBGR", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001610 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001611 Py_DECREF(x);
1612#endif
1613#ifdef CL_FORMAT_YCbCr
1614 x = PyInt_FromLong(CL_FORMAT_YCbCr);
1615 if (x == NULL || PyDict_SetItemString(d, "FORMAT_YCbCr", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001616 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001617 Py_DECREF(x);
1618#endif
1619#ifdef CL_FORMAT_YCbCr422
1620 x = PyInt_FromLong(CL_FORMAT_YCbCr422);
1621 if (x == NULL || PyDict_SetItemString(d, "FORMAT_YCbCr422", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001622 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001623 Py_DECREF(x);
1624#endif
1625#ifdef CL_FORMAT_YCbCr422DC
1626 x = PyInt_FromLong(CL_FORMAT_YCbCr422DC);
1627 if (x == NULL || PyDict_SetItemString(d, "FORMAT_YCbCr422DC", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001628 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001629 Py_DECREF(x);
Sjoerd Mullender3db845b1995-05-17 11:16:52 +00001630#endif
1631#ifdef CL_FRAME
Guido van Rossum72429051997-08-12 14:58:54 +00001632 x = PyInt_FromLong(CL_FRAME);
1633 if (x == NULL || PyDict_SetItemString(d, "FRAME", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001634 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001635 Py_DECREF(x);
Sjoerd Mullender3db845b1995-05-17 11:16:52 +00001636#endif
Guido van Rossum72429051997-08-12 14:58:54 +00001637#ifdef CL_FRAMES_PER_CHUNK
1638 x = PyInt_FromLong(CL_FRAMES_PER_CHUNK);
1639 if (x == NULL || PyDict_SetItemString(d, "FRAMES_PER_CHUNK", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001640 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001641 Py_DECREF(x);
Sjoerd Mullender3db845b1995-05-17 11:16:52 +00001642#endif
Guido van Rossum72429051997-08-12 14:58:54 +00001643#ifdef CL_FRAME_BUFFER_SIZE
1644 x = PyInt_FromLong(CL_FRAME_BUFFER_SIZE);
1645 if (x == NULL || PyDict_SetItemString(d, "FRAME_BUFFER_SIZE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001646 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001647 Py_DECREF(x);
1648#endif
1649#ifdef CL_FRAME_BUFFER_SIZE_ZERO
1650 x = PyInt_FromLong(CL_FRAME_BUFFER_SIZE_ZERO);
1651 if (x == NULL || PyDict_SetItemString(d, "FRAME_BUFFER_SIZE_ZERO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001652 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001653 Py_DECREF(x);
1654#endif
1655#ifdef CL_FRAME_INDEX
1656 x = PyInt_FromLong(CL_FRAME_INDEX);
1657 if (x == NULL || PyDict_SetItemString(d, "FRAME_INDEX", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001658 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001659 Py_DECREF(x);
1660#endif
1661#ifdef CL_FRAME_RATE
1662 x = PyInt_FromLong(CL_FRAME_RATE);
1663 if (x == NULL || PyDict_SetItemString(d, "FRAME_RATE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001664 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001665 Py_DECREF(x);
1666#endif
1667#ifdef CL_FRAME_SIZE
1668 x = PyInt_FromLong(CL_FRAME_SIZE);
1669 if (x == NULL || PyDict_SetItemString(d, "FRAME_SIZE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001670 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001671 Py_DECREF(x);
1672#endif
1673#ifdef CL_FRAME_TYPE
1674 x = PyInt_FromLong(CL_FRAME_TYPE);
1675 if (x == NULL || PyDict_SetItemString(d, "FRAME_TYPE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001676 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001677 Py_DECREF(x);
1678#endif
1679#ifdef CL_G711_ALAW
1680 x = PyInt_FromLong(CL_G711_ALAW);
1681 if (x == NULL || PyDict_SetItemString(d, "G711_ALAW", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001682 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001683 Py_DECREF(x);
1684#endif
1685#ifdef CL_G711_ALAW_SOFTWARE
1686 x = PyInt_FromLong(CL_G711_ALAW_SOFTWARE);
1687 if (x == NULL || PyDict_SetItemString(d, "G711_ALAW_SOFTWARE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001688 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001689 Py_DECREF(x);
1690#endif
1691#ifdef CL_G711_ULAW
1692 x = PyInt_FromLong(CL_G711_ULAW);
1693 if (x == NULL || PyDict_SetItemString(d, "G711_ULAW", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001694 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001695 Py_DECREF(x);
1696#endif
1697#ifdef CL_G711_ULAW_SOFTWARE
1698 x = PyInt_FromLong(CL_G711_ULAW_SOFTWARE);
1699 if (x == NULL || PyDict_SetItemString(d, "G711_ULAW_SOFTWARE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001700 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001701 Py_DECREF(x);
1702#endif
1703#ifdef CL_GRAYSCALE
1704 x = PyInt_FromLong(CL_GRAYSCALE);
1705 if (x == NULL || PyDict_SetItemString(d, "GRAYSCALE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001706 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001707 Py_DECREF(x);
1708#endif
1709#ifdef CL_HDCC
1710 x = PyInt_FromLong(CL_HDCC);
1711 if (x == NULL || PyDict_SetItemString(d, "HDCC", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001712 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001713 Py_DECREF(x);
1714#endif
1715#ifdef CL_HDCC_SAMPLES_PER_TILE
1716 x = PyInt_FromLong(CL_HDCC_SAMPLES_PER_TILE);
1717 if (x == NULL || PyDict_SetItemString(d, "HDCC_SAMPLES_PER_TILE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001718 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001719 Py_DECREF(x);
1720#endif
1721#ifdef CL_HDCC_SOFTWARE
1722 x = PyInt_FromLong(CL_HDCC_SOFTWARE);
1723 if (x == NULL || PyDict_SetItemString(d, "HDCC_SOFTWARE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001724 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001725 Py_DECREF(x);
1726#endif
1727#ifdef CL_HDCC_TILE_THRESHOLD
1728 x = PyInt_FromLong(CL_HDCC_TILE_THRESHOLD);
1729 if (x == NULL || PyDict_SetItemString(d, "HDCC_TILE_THRESHOLD", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001730 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001731 Py_DECREF(x);
1732#endif
1733#ifdef CL_HEADER_START_CODE
1734 x = PyInt_FromLong(CL_HEADER_START_CODE);
1735 if (x == NULL || PyDict_SetItemString(d, "HEADER_START_CODE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001736 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001737 Py_DECREF(x);
1738#endif
1739#ifdef CL_IMAGEINFO_FIELDMASK
1740 x = PyInt_FromLong(CL_IMAGEINFO_FIELDMASK);
1741 if (x == NULL || PyDict_SetItemString(d, "IMAGEINFO_FIELDMASK", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001742 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001743 Py_DECREF(x);
1744#endif
1745#ifdef CL_IMAGE_CROP_BOTTOM
1746 x = PyInt_FromLong(CL_IMAGE_CROP_BOTTOM);
1747 if (x == NULL || PyDict_SetItemString(d, "IMAGE_CROP_BOTTOM", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001748 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001749 Py_DECREF(x);
1750#endif
1751#ifdef CL_IMAGE_CROP_LEFT
1752 x = PyInt_FromLong(CL_IMAGE_CROP_LEFT);
1753 if (x == NULL || PyDict_SetItemString(d, "IMAGE_CROP_LEFT", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001754 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001755 Py_DECREF(x);
1756#endif
1757#ifdef CL_IMAGE_CROP_RIGHT
1758 x = PyInt_FromLong(CL_IMAGE_CROP_RIGHT);
1759 if (x == NULL || PyDict_SetItemString(d, "IMAGE_CROP_RIGHT", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001760 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001761 Py_DECREF(x);
1762#endif
1763#ifdef CL_IMAGE_CROP_TOP
1764 x = PyInt_FromLong(CL_IMAGE_CROP_TOP);
1765 if (x == NULL || PyDict_SetItemString(d, "IMAGE_CROP_TOP", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001766 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001767 Py_DECREF(x);
1768#endif
1769#ifdef CL_IMAGE_HEIGHT
1770 x = PyInt_FromLong(CL_IMAGE_HEIGHT);
1771 if (x == NULL || PyDict_SetItemString(d, "IMAGE_HEIGHT", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001772 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001773 Py_DECREF(x);
1774#endif
1775#ifdef CL_IMAGE_WIDTH
1776 x = PyInt_FromLong(CL_IMAGE_WIDTH);
1777 if (x == NULL || PyDict_SetItemString(d, "IMAGE_WIDTH", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001778 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001779 Py_DECREF(x);
1780#endif
1781#ifdef CL_IMPACT_CODEC_CONTROL
1782 x = PyInt_FromLong(CL_IMPACT_CODEC_CONTROL);
1783 if (x == NULL || PyDict_SetItemString(d, "IMPACT_CODEC_CONTROL", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001784 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001785 Py_DECREF(x);
1786#endif
1787#ifdef CL_IMPACT_FRAME_INTERLEAVE
1788 x = PyInt_FromLong(CL_IMPACT_FRAME_INTERLEAVE);
1789 if (x == NULL || PyDict_SetItemString(d, "IMPACT_FRAME_INTERLEAVE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001790 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001791 Py_DECREF(x);
1792#endif
1793#ifdef CL_IMPACT_NUM_PARAMS
1794 x = PyInt_FromLong(CL_IMPACT_NUM_PARAMS);
1795 if (x == NULL || PyDict_SetItemString(d, "IMPACT_NUM_PARAMS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001796 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001797 Py_DECREF(x);
1798#endif
1799#ifdef CL_INTERNAL_FORMAT
1800 x = PyInt_FromLong(CL_INTERNAL_FORMAT);
1801 if (x == NULL || PyDict_SetItemString(d, "INTERNAL_FORMAT", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001802 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001803 Py_DECREF(x);
1804#endif
1805#ifdef CL_INTERNAL_IMAGE_HEIGHT
1806 x = PyInt_FromLong(CL_INTERNAL_IMAGE_HEIGHT);
1807 if (x == NULL || PyDict_SetItemString(d, "INTERNAL_IMAGE_HEIGHT", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001808 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001809 Py_DECREF(x);
1810#endif
1811#ifdef CL_INTERNAL_IMAGE_WIDTH
1812 x = PyInt_FromLong(CL_INTERNAL_IMAGE_WIDTH);
1813 if (x == NULL || PyDict_SetItemString(d, "INTERNAL_IMAGE_WIDTH", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001814 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001815 Py_DECREF(x);
1816#endif
1817#ifdef CL_INTRA
1818 x = PyInt_FromLong(CL_INTRA);
1819 if (x == NULL || PyDict_SetItemString(d, "INTRA", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001820 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001821 Py_DECREF(x);
1822#endif
1823#ifdef CL_JPEG
1824 x = PyInt_FromLong(CL_JPEG);
1825 if (x == NULL || PyDict_SetItemString(d, "JPEG", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001826 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001827 Py_DECREF(x);
1828#endif
1829#ifdef CL_JPEG_COSMO
1830 x = PyInt_FromLong(CL_JPEG_COSMO);
1831 if (x == NULL || PyDict_SetItemString(d, "JPEG_COSMO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001832 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001833 Py_DECREF(x);
1834#endif
1835#ifdef CL_JPEG_ERROR
1836 x = PyInt_FromLong(CL_JPEG_ERROR);
1837 if (x == NULL || PyDict_SetItemString(d, "JPEG_ERROR", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001838 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001839 Py_DECREF(x);
1840#endif
1841#ifdef CL_JPEG_IMPACT
1842 x = PyInt_FromLong(CL_JPEG_IMPACT);
1843 if (x == NULL || PyDict_SetItemString(d, "JPEG_IMPACT", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001844 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001845 Py_DECREF(x);
1846#endif
1847#ifdef CL_JPEG_NUM_PARAMS
1848 x = PyInt_FromLong(CL_JPEG_NUM_PARAMS);
1849 if (x == NULL || PyDict_SetItemString(d, "JPEG_NUM_PARAMS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001850 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001851 Py_DECREF(x);
1852#endif
1853#ifdef CL_JPEG_QUALITY_FACTOR
1854 x = PyInt_FromLong(CL_JPEG_QUALITY_FACTOR);
1855 if (x == NULL || PyDict_SetItemString(d, "JPEG_QUALITY_FACTOR", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001856 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001857 Py_DECREF(x);
1858#endif
1859#ifdef CL_JPEG_QUANTIZATION_TABLES
1860 x = PyInt_FromLong(CL_JPEG_QUANTIZATION_TABLES);
1861 if (x == NULL || PyDict_SetItemString(d, "JPEG_QUANTIZATION_TABLES", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001862 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001863 Py_DECREF(x);
1864#endif
1865#ifdef CL_JPEG_SOFTWARE
1866 x = PyInt_FromLong(CL_JPEG_SOFTWARE);
1867 if (x == NULL || PyDict_SetItemString(d, "JPEG_SOFTWARE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001868 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001869 Py_DECREF(x);
1870#endif
1871#ifdef CL_JPEG_STREAM_HEADERS
1872 x = PyInt_FromLong(CL_JPEG_STREAM_HEADERS);
1873 if (x == NULL || PyDict_SetItemString(d, "JPEG_STREAM_HEADERS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001874 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001875 Py_DECREF(x);
1876#endif
1877#ifdef CL_KEYFRAME
1878 x = PyInt_FromLong(CL_KEYFRAME);
1879 if (x == NULL || PyDict_SetItemString(d, "KEYFRAME", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001880 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001881 Py_DECREF(x);
1882#endif
1883#ifdef CL_KEYFRAME_DISTANCE
1884 x = PyInt_FromLong(CL_KEYFRAME_DISTANCE);
1885 if (x == NULL || PyDict_SetItemString(d, "KEYFRAME_DISTANCE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001886 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001887 Py_DECREF(x);
1888#endif
1889#ifdef CL_LAST_FRAME_INDEX
1890 x = PyInt_FromLong(CL_LAST_FRAME_INDEX);
1891 if (x == NULL || PyDict_SetItemString(d, "LAST_FRAME_INDEX", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001892 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001893 Py_DECREF(x);
1894#endif
1895#ifdef CL_LAYER
1896 x = PyInt_FromLong(CL_LAYER);
1897 if (x == NULL || PyDict_SetItemString(d, "LAYER", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001898 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001899 Py_DECREF(x);
Sjoerd Mullender3db845b1995-05-17 11:16:52 +00001900#endif
1901#ifdef CL_LUMA_THRESHOLD
Guido van Rossum72429051997-08-12 14:58:54 +00001902 x = PyInt_FromLong(CL_LUMA_THRESHOLD);
1903 if (x == NULL || PyDict_SetItemString(d, "LUMA_THRESHOLD", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001904 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001905 Py_DECREF(x);
1906#endif
1907#ifdef CL_MAX_NUMBER_OF_AUDIO_ALGORITHMS
1908 x = PyInt_FromLong(CL_MAX_NUMBER_OF_AUDIO_ALGORITHMS);
1909 if (x == NULL || PyDict_SetItemString(d, "MAX_NUMBER_OF_AUDIO_ALGORITHMS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001910 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001911 Py_DECREF(x);
1912#endif
1913#ifdef CL_MAX_NUMBER_OF_FORMATS
1914 x = PyInt_FromLong(CL_MAX_NUMBER_OF_FORMATS);
1915 if (x == NULL || PyDict_SetItemString(d, "MAX_NUMBER_OF_FORMATS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001916 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001917 Py_DECREF(x);
1918#endif
1919#ifdef CL_MAX_NUMBER_OF_ORIGINAL_FORMATS
1920 x = PyInt_FromLong(CL_MAX_NUMBER_OF_ORIGINAL_FORMATS);
1921 if (x == NULL || PyDict_SetItemString(d, "MAX_NUMBER_OF_ORIGINAL_FORMATS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001922 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001923 Py_DECREF(x);
1924#endif
1925#ifdef CL_MAX_NUMBER_OF_PARAMS
1926 x = PyInt_FromLong(CL_MAX_NUMBER_OF_PARAMS);
1927 if (x == NULL || PyDict_SetItemString(d, "MAX_NUMBER_OF_PARAMS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001928 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001929 Py_DECREF(x);
1930#endif
1931#ifdef CL_MAX_NUMBER_OF_VIDEO_ALGORITHMS
1932 x = PyInt_FromLong(CL_MAX_NUMBER_OF_VIDEO_ALGORITHMS);
1933 if (x == NULL || PyDict_SetItemString(d, "MAX_NUMBER_OF_VIDEO_ALGORITHMS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001934 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001935 Py_DECREF(x);
1936#endif
1937#ifdef CL_MONO
1938 x = PyInt_FromLong(CL_MONO);
1939 if (x == NULL || PyDict_SetItemString(d, "MONO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001940 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001941 Py_DECREF(x);
1942#endif
1943#ifdef CL_MPEG1_AUDIO_AWARE
1944 x = PyInt_FromLong(CL_MPEG1_AUDIO_AWARE);
1945 if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_AWARE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001946 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001947 Py_DECREF(x);
1948#endif
1949#ifdef CL_MPEG1_AUDIO_LAYER
1950 x = PyInt_FromLong(CL_MPEG1_AUDIO_LAYER);
1951 if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_LAYER", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001952 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001953 Py_DECREF(x);
1954#endif
1955#ifdef CL_MPEG1_AUDIO_LAYER_I
1956 x = PyInt_FromLong(CL_MPEG1_AUDIO_LAYER_I);
1957 if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_LAYER_I", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001958 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001959 Py_DECREF(x);
1960#endif
1961#ifdef CL_MPEG1_AUDIO_LAYER_II
1962 x = PyInt_FromLong(CL_MPEG1_AUDIO_LAYER_II);
1963 if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_LAYER_II", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001964 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001965 Py_DECREF(x);
1966#endif
1967#ifdef CL_MPEG1_AUDIO_MODE
1968 x = PyInt_FromLong(CL_MPEG1_AUDIO_MODE);
1969 if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_MODE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001970 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001971 Py_DECREF(x);
1972#endif
1973#ifdef CL_MPEG1_AUDIO_MODE_DUAL
1974 x = PyInt_FromLong(CL_MPEG1_AUDIO_MODE_DUAL);
1975 if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_MODE_DUAL", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001976 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001977 Py_DECREF(x);
1978#endif
1979#ifdef CL_MPEG1_AUDIO_MODE_JOINT
1980 x = PyInt_FromLong(CL_MPEG1_AUDIO_MODE_JOINT);
1981 if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_MODE_JOINT", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001982 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001983 Py_DECREF(x);
1984#endif
1985#ifdef CL_MPEG1_AUDIO_MODE_SINGLE
1986 x = PyInt_FromLong(CL_MPEG1_AUDIO_MODE_SINGLE);
1987 if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_MODE_SINGLE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001988 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001989 Py_DECREF(x);
1990#endif
1991#ifdef CL_MPEG1_AUDIO_MODE_STEREO
1992 x = PyInt_FromLong(CL_MPEG1_AUDIO_MODE_STEREO);
1993 if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_MODE_STEREO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00001994 return;
Guido van Rossum72429051997-08-12 14:58:54 +00001995 Py_DECREF(x);
1996#endif
1997#ifdef CL_MPEG1_AUDIO_SOFTWARE
1998 x = PyInt_FromLong(CL_MPEG1_AUDIO_SOFTWARE);
1999 if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_SOFTWARE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002000 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002001 Py_DECREF(x);
2002#endif
2003#ifdef CL_MPEG1_END_OF_STREAM
2004 x = PyInt_FromLong(CL_MPEG1_END_OF_STREAM);
2005 if (x == NULL || PyDict_SetItemString(d, "MPEG1_END_OF_STREAM", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002006 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002007 Py_DECREF(x);
2008#endif
2009#ifdef CL_MPEG1_ERROR
2010 x = PyInt_FromLong(CL_MPEG1_ERROR);
2011 if (x == NULL || PyDict_SetItemString(d, "MPEG1_ERROR", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002012 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002013 Py_DECREF(x);
2014#endif
2015#ifdef CL_MPEG1_NUM_PARAMS
2016 x = PyInt_FromLong(CL_MPEG1_NUM_PARAMS);
2017 if (x == NULL || PyDict_SetItemString(d, "MPEG1_NUM_PARAMS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002018 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002019 Py_DECREF(x);
2020#endif
2021#ifdef CL_MPEG1_VIDEO_M
2022 x = PyInt_FromLong(CL_MPEG1_VIDEO_M);
2023 if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_M", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002024 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002025 Py_DECREF(x);
2026#endif
2027#ifdef CL_MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_B_X
2028 x = PyInt_FromLong(CL_MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_B_X);
2029 if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_B_X", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002030 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002031 Py_DECREF(x);
2032#endif
2033#ifdef CL_MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_B_Y
2034 x = PyInt_FromLong(CL_MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_B_Y);
2035 if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_B_Y", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002036 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002037 Py_DECREF(x);
2038#endif
2039#ifdef CL_MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_P_X
2040 x = PyInt_FromLong(CL_MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_P_X);
2041 if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_P_X", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002042 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002043 Py_DECREF(x);
2044#endif
2045#ifdef CL_MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_P_Y
2046 x = PyInt_FromLong(CL_MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_P_Y);
2047 if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_P_Y", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002048 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002049 Py_DECREF(x);
2050#endif
2051#ifdef CL_MPEG1_VIDEO_N
2052 x = PyInt_FromLong(CL_MPEG1_VIDEO_N);
2053 if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_N", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002054 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002055 Py_DECREF(x);
2056#endif
2057#ifdef CL_MPEG1_VIDEO_SOFTNESS
2058 x = PyInt_FromLong(CL_MPEG1_VIDEO_SOFTNESS);
2059 if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_SOFTNESS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002060 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002061 Py_DECREF(x);
2062#endif
2063#ifdef CL_MPEG1_VIDEO_SOFTNESS_MAXIMUM
2064 x = PyInt_FromLong(CL_MPEG1_VIDEO_SOFTNESS_MAXIMUM);
2065 if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_SOFTNESS_MAXIMUM", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002066 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002067 Py_DECREF(x);
2068#endif
2069#ifdef CL_MPEG1_VIDEO_SOFTNESS_MEDIUM
2070 x = PyInt_FromLong(CL_MPEG1_VIDEO_SOFTNESS_MEDIUM);
2071 if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_SOFTNESS_MEDIUM", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002072 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002073 Py_DECREF(x);
2074#endif
2075#ifdef CL_MPEG1_VIDEO_SOFTNESS_NONE
2076 x = PyInt_FromLong(CL_MPEG1_VIDEO_SOFTNESS_NONE);
2077 if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_SOFTNESS_NONE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002078 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002079 Py_DECREF(x);
2080#endif
2081#ifdef CL_MPEG1_VIDEO_SOFTWARE
2082 x = PyInt_FromLong(CL_MPEG1_VIDEO_SOFTWARE);
2083 if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_SOFTWARE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002084 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002085 Py_DECREF(x);
2086#endif
2087#ifdef CL_MPEG_VIDEO
2088 x = PyInt_FromLong(CL_MPEG_VIDEO);
2089 if (x == NULL || PyDict_SetItemString(d, "MPEG_VIDEO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002090 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002091 Py_DECREF(x);
2092#endif
2093#ifdef CL_MULTIRATE_AWARE
2094 x = PyInt_FromLong(CL_MULTIRATE_AWARE);
2095 if (x == NULL || PyDict_SetItemString(d, "MULTIRATE_AWARE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002096 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002097 Py_DECREF(x);
2098#endif
2099#ifdef CL_MVC1
2100 x = PyInt_FromLong(CL_MVC1);
2101 if (x == NULL || PyDict_SetItemString(d, "MVC1", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002102 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002103 Py_DECREF(x);
2104#endif
2105#ifdef CL_MVC1_SOFTWARE
2106 x = PyInt_FromLong(CL_MVC1_SOFTWARE);
2107 if (x == NULL || PyDict_SetItemString(d, "MVC1_SOFTWARE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002108 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002109 Py_DECREF(x);
2110#endif
2111#ifdef CL_MVC2
2112 x = PyInt_FromLong(CL_MVC2);
2113 if (x == NULL || PyDict_SetItemString(d, "MVC2", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002114 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002115 Py_DECREF(x);
2116#endif
2117#ifdef CL_MVC2_BLENDING
2118 x = PyInt_FromLong(CL_MVC2_BLENDING);
2119 if (x == NULL || PyDict_SetItemString(d, "MVC2_BLENDING", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002120 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002121 Py_DECREF(x);
2122#endif
2123#ifdef CL_MVC2_BLENDING_OFF
2124 x = PyInt_FromLong(CL_MVC2_BLENDING_OFF);
2125 if (x == NULL || PyDict_SetItemString(d, "MVC2_BLENDING_OFF", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002126 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002127 Py_DECREF(x);
2128#endif
2129#ifdef CL_MVC2_BLENDING_ON
2130 x = PyInt_FromLong(CL_MVC2_BLENDING_ON);
2131 if (x == NULL || PyDict_SetItemString(d, "MVC2_BLENDING_ON", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002132 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002133 Py_DECREF(x);
2134#endif
2135#ifdef CL_MVC2_CHROMA_THRESHOLD
2136 x = PyInt_FromLong(CL_MVC2_CHROMA_THRESHOLD);
2137 if (x == NULL || PyDict_SetItemString(d, "MVC2_CHROMA_THRESHOLD", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002138 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002139 Py_DECREF(x);
2140#endif
2141#ifdef CL_MVC2_EDGE_THRESHOLD
2142 x = PyInt_FromLong(CL_MVC2_EDGE_THRESHOLD);
2143 if (x == NULL || PyDict_SetItemString(d, "MVC2_EDGE_THRESHOLD", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002144 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002145 Py_DECREF(x);
2146#endif
2147#ifdef CL_MVC2_ERROR
2148 x = PyInt_FromLong(CL_MVC2_ERROR);
2149 if (x == NULL || PyDict_SetItemString(d, "MVC2_ERROR", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002150 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002151 Py_DECREF(x);
2152#endif
2153#ifdef CL_MVC2_LUMA_THRESHOLD
2154 x = PyInt_FromLong(CL_MVC2_LUMA_THRESHOLD);
2155 if (x == NULL || PyDict_SetItemString(d, "MVC2_LUMA_THRESHOLD", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002156 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002157 Py_DECREF(x);
2158#endif
2159#ifdef CL_MVC2_SOFTWARE
2160 x = PyInt_FromLong(CL_MVC2_SOFTWARE);
2161 if (x == NULL || PyDict_SetItemString(d, "MVC2_SOFTWARE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002162 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002163 Py_DECREF(x);
2164#endif
2165#ifdef CL_MVC3_QUALITY_LEVEL
2166 x = PyInt_FromLong(CL_MVC3_QUALITY_LEVEL);
2167 if (x == NULL || PyDict_SetItemString(d, "MVC3_QUALITY_LEVEL", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002168 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002169 Py_DECREF(x);
2170#endif
2171#ifdef CL_MVC3_SOFTWARE
2172 x = PyInt_FromLong(CL_MVC3_SOFTWARE);
2173 if (x == NULL || PyDict_SetItemString(d, "MVC3_SOFTWARE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002174 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002175 Py_DECREF(x);
2176#endif
2177#ifdef CL_NEXT_NOT_AVAILABLE
2178 x = PyInt_FromLong(CL_NEXT_NOT_AVAILABLE);
2179 if (x == NULL || PyDict_SetItemString(d, "NEXT_NOT_AVAILABLE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002180 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002181 Py_DECREF(x);
2182#endif
2183#ifdef CL_NOISE_MARGIN
2184 x = PyInt_FromLong(CL_NOISE_MARGIN);
2185 if (x == NULL || PyDict_SetItemString(d, "NOISE_MARGIN", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002186 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002187 Py_DECREF(x);
2188#endif
2189#ifdef CL_NONE
2190 x = PyInt_FromLong(CL_NONE);
2191 if (x == NULL || PyDict_SetItemString(d, "NONE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002192 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002193 Py_DECREF(x);
2194#endif
2195#ifdef CL_NUMBER_OF_FORMATS
2196 x = PyInt_FromLong(CL_NUMBER_OF_FORMATS);
2197 if (x == NULL || PyDict_SetItemString(d, "NUMBER_OF_FORMATS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002198 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002199 Py_DECREF(x);
2200#endif
2201#ifdef CL_NUMBER_OF_FRAMES
2202 x = PyInt_FromLong(CL_NUMBER_OF_FRAMES);
2203 if (x == NULL || PyDict_SetItemString(d, "NUMBER_OF_FRAMES", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002204 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002205 Py_DECREF(x);
2206#endif
2207#ifdef CL_NUMBER_OF_PARAMS
2208 x = PyInt_FromLong(CL_NUMBER_OF_PARAMS);
2209 if (x == NULL || PyDict_SetItemString(d, "NUMBER_OF_PARAMS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002210 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002211 Py_DECREF(x);
2212#endif
2213#ifdef CL_NUMBER_OF_PARAMS_FREEZE
2214 x = PyInt_FromLong(CL_NUMBER_OF_PARAMS_FREEZE);
2215 if (x == NULL || PyDict_SetItemString(d, "NUMBER_OF_PARAMS_FREEZE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002216 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002217 Py_DECREF(x);
2218#endif
2219#ifdef CL_NUMBER_OF_VIDEO_FORMATS
2220 x = PyInt_FromLong(CL_NUMBER_OF_VIDEO_FORMATS);
2221 if (x == NULL || PyDict_SetItemString(d, "NUMBER_OF_VIDEO_FORMATS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002222 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002223 Py_DECREF(x);
2224#endif
2225#ifdef CL_ORIENTATION
2226 x = PyInt_FromLong(CL_ORIENTATION);
2227 if (x == NULL || PyDict_SetItemString(d, "ORIENTATION", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002228 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002229 Py_DECREF(x);
2230#endif
2231#ifdef CL_ORIGINAL_FORMAT
2232 x = PyInt_FromLong(CL_ORIGINAL_FORMAT);
2233 if (x == NULL || PyDict_SetItemString(d, "ORIGINAL_FORMAT", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002234 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002235 Py_DECREF(x);
2236#endif
2237#ifdef CL_PARAM_OUT_OF_RANGE
2238 x = PyInt_FromLong(CL_PARAM_OUT_OF_RANGE);
2239 if (x == NULL || PyDict_SetItemString(d, "PARAM_OUT_OF_RANGE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002240 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002241 Py_DECREF(x);
2242#endif
2243#ifdef CL_PIXEL_ASPECT
2244 x = PyInt_FromLong(CL_PIXEL_ASPECT);
2245 if (x == NULL || PyDict_SetItemString(d, "PIXEL_ASPECT", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002246 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002247 Py_DECREF(x);
2248#endif
2249#ifdef CL_PREDICTED
2250 x = PyInt_FromLong(CL_PREDICTED);
2251 if (x == NULL || PyDict_SetItemString(d, "PREDICTED", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002252 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002253 Py_DECREF(x);
2254#endif
2255#ifdef CL_PREROLL
2256 x = PyInt_FromLong(CL_PREROLL);
2257 if (x == NULL || PyDict_SetItemString(d, "PREROLL", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002258 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002259 Py_DECREF(x);
2260#endif
2261#ifdef CL_QUALITY_FACTOR
2262 x = PyInt_FromLong(CL_QUALITY_FACTOR);
2263 if (x == NULL || PyDict_SetItemString(d, "QUALITY_FACTOR", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002264 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002265 Py_DECREF(x);
2266#endif
2267#ifdef CL_QUALITY_LEVEL
2268 x = PyInt_FromLong(CL_QUALITY_LEVEL);
2269 if (x == NULL || PyDict_SetItemString(d, "QUALITY_LEVEL", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002270 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002271 Py_DECREF(x);
2272#endif
2273#ifdef CL_QUALITY_SPATIAL
2274 x = PyInt_FromLong(CL_QUALITY_SPATIAL);
2275 if (x == NULL || PyDict_SetItemString(d, "QUALITY_SPATIAL", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002276 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002277 Py_DECREF(x);
2278#endif
2279#ifdef CL_QUALITY_TEMPORAL
2280 x = PyInt_FromLong(CL_QUALITY_TEMPORAL);
2281 if (x == NULL || PyDict_SetItemString(d, "QUALITY_TEMPORAL", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002282 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002283 Py_DECREF(x);
2284#endif
2285#ifdef CL_QUANTIZATION_TABLES
2286 x = PyInt_FromLong(CL_QUANTIZATION_TABLES);
2287 if (x == NULL || PyDict_SetItemString(d, "QUANTIZATION_TABLES", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002288 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002289 Py_DECREF(x);
2290#endif
2291#ifdef CL_RANGE_VALUE
2292 x = PyInt_FromLong(CL_RANGE_VALUE);
2293 if (x == NULL || PyDict_SetItemString(d, "RANGE_VALUE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002294 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002295 Py_DECREF(x);
2296#endif
2297#ifdef CL_RGB
2298 x = PyInt_FromLong(CL_RGB);
2299 if (x == NULL || PyDict_SetItemString(d, "RGB", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002300 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002301 Py_DECREF(x);
2302#endif
2303#ifdef CL_RGB332
2304 x = PyInt_FromLong(CL_RGB332);
2305 if (x == NULL || PyDict_SetItemString(d, "RGB332", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002306 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002307 Py_DECREF(x);
2308#endif
2309#ifdef CL_RGB8
2310 x = PyInt_FromLong(CL_RGB8);
2311 if (x == NULL || PyDict_SetItemString(d, "RGB8", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002312 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002313 Py_DECREF(x);
2314#endif
2315#ifdef CL_RGBA
2316 x = PyInt_FromLong(CL_RGBA);
2317 if (x == NULL || PyDict_SetItemString(d, "RGBA", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002318 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002319 Py_DECREF(x);
2320#endif
2321#ifdef CL_RGBX
2322 x = PyInt_FromLong(CL_RGBX);
2323 if (x == NULL || PyDict_SetItemString(d, "RGBX", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002324 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002325 Py_DECREF(x);
2326#endif
2327#ifdef CL_RLE
2328 x = PyInt_FromLong(CL_RLE);
2329 if (x == NULL || PyDict_SetItemString(d, "RLE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002330 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002331 Py_DECREF(x);
2332#endif
2333#ifdef CL_RLE24
2334 x = PyInt_FromLong(CL_RLE24);
2335 if (x == NULL || PyDict_SetItemString(d, "RLE24", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002336 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002337 Py_DECREF(x);
2338#endif
2339#ifdef CL_RLE24_SOFTWARE
2340 x = PyInt_FromLong(CL_RLE24_SOFTWARE);
2341 if (x == NULL || PyDict_SetItemString(d, "RLE24_SOFTWARE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002342 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002343 Py_DECREF(x);
2344#endif
2345#ifdef CL_RLE_SOFTWARE
2346 x = PyInt_FromLong(CL_RLE_SOFTWARE);
2347 if (x == NULL || PyDict_SetItemString(d, "RLE_SOFTWARE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002348 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002349 Py_DECREF(x);
2350#endif
2351#ifdef CL_RTR
2352 x = PyInt_FromLong(CL_RTR);
2353 if (x == NULL || PyDict_SetItemString(d, "RTR", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002354 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002355 Py_DECREF(x);
2356#endif
2357#ifdef CL_RTR1
2358 x = PyInt_FromLong(CL_RTR1);
2359 if (x == NULL || PyDict_SetItemString(d, "RTR1", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002360 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002361 Py_DECREF(x);
2362#endif
2363#ifdef CL_RTR_QUALITY_LEVEL
2364 x = PyInt_FromLong(CL_RTR_QUALITY_LEVEL);
2365 if (x == NULL || PyDict_SetItemString(d, "RTR_QUALITY_LEVEL", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002366 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002367 Py_DECREF(x);
2368#endif
2369#ifdef CL_SAMPLES_PER_TILE
2370 x = PyInt_FromLong(CL_SAMPLES_PER_TILE);
2371 if (x == NULL || PyDict_SetItemString(d, "SAMPLES_PER_TILE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002372 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002373 Py_DECREF(x);
2374#endif
2375#ifdef CL_SCHEME_BUSY
2376 x = PyInt_FromLong(CL_SCHEME_BUSY);
2377 if (x == NULL || PyDict_SetItemString(d, "SCHEME_BUSY", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002378 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002379 Py_DECREF(x);
2380#endif
2381#ifdef CL_SCHEME_NOT_AVAILABLE
2382 x = PyInt_FromLong(CL_SCHEME_NOT_AVAILABLE);
2383 if (x == NULL || PyDict_SetItemString(d, "SCHEME_NOT_AVAILABLE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002384 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002385 Py_DECREF(x);
2386#endif
2387#ifdef CL_SPEED
2388 x = PyInt_FromLong(CL_SPEED);
2389 if (x == NULL || PyDict_SetItemString(d, "SPEED", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002390 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002391 Py_DECREF(x);
2392#endif
2393#ifdef CL_STEREO_INTERLEAVED
2394 x = PyInt_FromLong(CL_STEREO_INTERLEAVED);
2395 if (x == NULL || PyDict_SetItemString(d, "STEREO_INTERLEAVED", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002396 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002397 Py_DECREF(x);
2398#endif
2399#ifdef CL_STREAM_HEADERS
2400 x = PyInt_FromLong(CL_STREAM_HEADERS);
2401 if (x == NULL || PyDict_SetItemString(d, "STREAM_HEADERS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002402 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002403 Py_DECREF(x);
2404#endif
2405#ifdef CL_TILE_THRESHOLD
2406 x = PyInt_FromLong(CL_TILE_THRESHOLD);
2407 if (x == NULL || PyDict_SetItemString(d, "TILE_THRESHOLD", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002408 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002409 Py_DECREF(x);
2410#endif
2411#ifdef CL_TOP_DOWN
2412 x = PyInt_FromLong(CL_TOP_DOWN);
2413 if (x == NULL || PyDict_SetItemString(d, "TOP_DOWN", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002414 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002415 Py_DECREF(x);
2416#endif
2417#ifdef CL_ULAW
2418 x = PyInt_FromLong(CL_ULAW);
2419 if (x == NULL || PyDict_SetItemString(d, "ULAW", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002420 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002421 Py_DECREF(x);
2422#endif
2423#ifdef CL_UNCOMPRESSED
2424 x = PyInt_FromLong(CL_UNCOMPRESSED);
2425 if (x == NULL || PyDict_SetItemString(d, "UNCOMPRESSED", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002426 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002427 Py_DECREF(x);
2428#endif
2429#ifdef CL_UNCOMPRESSED_AUDIO
2430 x = PyInt_FromLong(CL_UNCOMPRESSED_AUDIO);
2431 if (x == NULL || PyDict_SetItemString(d, "UNCOMPRESSED_AUDIO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002432 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002433 Py_DECREF(x);
2434#endif
2435#ifdef CL_UNCOMPRESSED_VIDEO
2436 x = PyInt_FromLong(CL_UNCOMPRESSED_VIDEO);
2437 if (x == NULL || PyDict_SetItemString(d, "UNCOMPRESSED_VIDEO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002438 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002439 Py_DECREF(x);
2440#endif
2441#ifdef CL_UNKNOWN_SCHEME
2442 x = PyInt_FromLong(CL_UNKNOWN_SCHEME);
2443 if (x == NULL || PyDict_SetItemString(d, "UNKNOWN_SCHEME", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002444 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002445 Py_DECREF(x);
2446#endif
2447#ifdef CL_VIDEO
2448 x = PyInt_FromLong(CL_VIDEO);
2449 if (x == NULL || PyDict_SetItemString(d, "VIDEO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002450 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002451 Py_DECREF(x);
2452#endif
2453#ifdef CL_Y
2454 x = PyInt_FromLong(CL_Y);
2455 if (x == NULL || PyDict_SetItemString(d, "Y", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002456 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002457 Py_DECREF(x);
2458#endif
2459#ifdef CL_YCbCr
2460 x = PyInt_FromLong(CL_YCbCr);
2461 if (x == NULL || PyDict_SetItemString(d, "YCbCr", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002462 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002463 Py_DECREF(x);
2464#endif
2465#ifdef CL_YCbCr422
2466 x = PyInt_FromLong(CL_YCbCr422);
2467 if (x == NULL || PyDict_SetItemString(d, "YCbCr422", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002468 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002469 Py_DECREF(x);
2470#endif
2471#ifdef CL_YCbCr422DC
2472 x = PyInt_FromLong(CL_YCbCr422DC);
2473 if (x == NULL || PyDict_SetItemString(d, "YCbCr422DC", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002474 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002475 Py_DECREF(x);
2476#endif
2477#ifdef CL_YCbCr422HC
2478 x = PyInt_FromLong(CL_YCbCr422HC);
2479 if (x == NULL || PyDict_SetItemString(d, "YCbCr422HC", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002480 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002481 Py_DECREF(x);
2482#endif
2483#ifdef CL_YUV
2484 x = PyInt_FromLong(CL_YUV);
2485 if (x == NULL || PyDict_SetItemString(d, "YUV", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002486 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002487 Py_DECREF(x);
2488#endif
2489#ifdef CL_YUV422
2490 x = PyInt_FromLong(CL_YUV422);
2491 if (x == NULL || PyDict_SetItemString(d, "YUV422", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002492 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002493 Py_DECREF(x);
2494#endif
2495#ifdef CL_YUV422DC
2496 x = PyInt_FromLong(CL_YUV422DC);
2497 if (x == NULL || PyDict_SetItemString(d, "YUV422DC", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002498 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002499 Py_DECREF(x);
2500#endif
2501#ifdef CL_YUV422HC
2502 x = PyInt_FromLong(CL_YUV422HC);
2503 if (x == NULL || PyDict_SetItemString(d, "YUV422HC", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002504 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002505 Py_DECREF(x);
2506#endif
2507#ifdef AWCMP_STEREO
2508 x = PyInt_FromLong(AWCMP_STEREO);
2509 if (x == NULL || PyDict_SetItemString(d, "AWCMP_STEREO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002510 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002511 Py_DECREF(x);
2512#endif
2513#ifdef AWCMP_JOINT_STEREO
2514 x = PyInt_FromLong(AWCMP_JOINT_STEREO);
2515 if (x == NULL || PyDict_SetItemString(d, "AWCMP_JOINT_STEREO", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002516 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002517 Py_DECREF(x);
2518#endif
2519#ifdef AWCMP_INDEPENDENT
2520 x = PyInt_FromLong(AWCMP_INDEPENDENT);
2521 if (x == NULL || PyDict_SetItemString(d, "AWCMP_INDEPENDENT", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002522 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002523 Py_DECREF(x);
2524#endif
2525#ifdef AWCMP_FIXED_RATE
2526 x = PyInt_FromLong(AWCMP_FIXED_RATE);
2527 if (x == NULL || PyDict_SetItemString(d, "AWCMP_FIXED_RATE", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002528 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002529 Py_DECREF(x);
2530#endif
2531#ifdef AWCMP_CONST_QUAL
2532 x = PyInt_FromLong(AWCMP_CONST_QUAL);
2533 if (x == NULL || PyDict_SetItemString(d, "AWCMP_CONST_QUAL", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002534 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002535 Py_DECREF(x);
2536#endif
2537#ifdef AWCMP_LOSSLESS
2538 x = PyInt_FromLong(AWCMP_LOSSLESS);
2539 if (x == NULL || PyDict_SetItemString(d, "AWCMP_LOSSLESS", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002540 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002541 Py_DECREF(x);
2542#endif
2543#ifdef AWCMP_MPEG_LAYER_I
2544 x = PyInt_FromLong(AWCMP_MPEG_LAYER_I);
2545 if (x == NULL || PyDict_SetItemString(d, "AWCMP_MPEG_LAYER_I", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002546 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002547 Py_DECREF(x);
2548#endif
2549#ifdef AWCMP_MPEG_LAYER_II
2550 x = PyInt_FromLong(AWCMP_MPEG_LAYER_II);
2551 if (x == NULL || PyDict_SetItemString(d, "AWCMP_MPEG_LAYER_II", x) < 0)
Guido van Rossumb189a2f1997-10-08 15:26:28 +00002552 return;
Guido van Rossum72429051997-08-12 14:58:54 +00002553 Py_DECREF(x);
Sjoerd Mullender3db845b1995-05-17 11:16:52 +00002554#endif
2555
Sjoerd Mullenderd53a4f31992-09-24 10:37:39 +00002556 (void) clSetErrorHandler(cl_ErrorHandler);
Sjoerd Mullenderc4315491992-09-23 14:53:00 +00002557}