symbian-qemu-0.9.1-12/python-2.6.1/Modules/clmodule.c
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 
       
     2 
       
     3 /* Cl objects */
       
     4 
       
     5 #define CLDEBUG
       
     6 
       
     7 #include <stdarg.h>
       
     8 #include <cl.h>
       
     9 #if defined(CL_JPEG_SOFTWARE) && !defined(CL_JPEG_COSMO)
       
    10 #include <dmedia/cl_cosmo.h>
       
    11 #endif
       
    12 #include "Python.h"
       
    13 
       
    14 typedef struct {
       
    15 	PyObject_HEAD
       
    16 	int ob_isCompressor;	/* Compressor or Decompressor */
       
    17 	CL_Handle ob_compressorHdl;
       
    18 	int *ob_paramtypes;
       
    19 	int ob_nparams;
       
    20 } clobject;
       
    21 
       
    22 static PyObject *ClError;		/* exception cl.error */
       
    23 
       
    24 static int error_handler_called = 0;
       
    25 
       
    26 /*
       
    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 
       
    35 /********************************************************************
       
    36 			  Utility routines.
       
    37 ********************************************************************/
       
    38 static void
       
    39 cl_ErrorHandler(CL_Handle handle, int code, const char *fmt, ...)
       
    40 {
       
    41 	va_list ap;
       
    42 	char errbuf[BUFSIZ];	/* hopefully big enough */
       
    43 	char *p;
       
    44 
       
    45 	if (PyErr_Occurred())	/* don't change existing error */
       
    46 		return;
       
    47 	error_handler_called = 1;
       
    48 	va_start(ap, fmt);
       
    49 	vsprintf(errbuf, fmt, ap);
       
    50 	va_end(ap);
       
    51 	p = &errbuf[strlen(errbuf) - 1]; /* swat the line feed */
       
    52 	if (*p == '\n')
       
    53 		*p = 0;
       
    54 	PyErr_SetString(ClError, errbuf);
       
    55 }
       
    56 
       
    57 /*
       
    58  * This assumes that params are always in the range 0 to some maximum.
       
    59  */
       
    60 static int
       
    61 param_type_is_float(clobject *self, int param)
       
    62 {
       
    63 	int bufferlength;
       
    64 
       
    65 	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;
       
    70 
       
    71 		self->ob_paramtypes = PyMem_NEW(int, bufferlength);
       
    72 		if (self->ob_paramtypes == NULL)
       
    73 			return -1;
       
    74 		self->ob_nparams = bufferlength / 2;
       
    75 
       
    76 		(void) clQueryParams(self->ob_compressorHdl,
       
    77 				     self->ob_paramtypes, bufferlength);
       
    78 		if (error_handler_called) {
       
    79 			PyMem_DEL(self->ob_paramtypes);
       
    80 			self->ob_paramtypes = NULL;
       
    81 			return -1;
       
    82 		}
       
    83 	}
       
    84 
       
    85 	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;
       
    91 	else
       
    92 		return 0;
       
    93 }
       
    94 
       
    95 /********************************************************************
       
    96 	       Single image compression/decompression.
       
    97 ********************************************************************/
       
    98 static PyObject *
       
    99 cl_CompressImage(PyObject *self, PyObject *args)
       
   100 {
       
   101 	int compressionScheme, width, height, originalFormat;
       
   102 	float compressionRatio;
       
   103 	int frameBufferSize, compressedBufferSize;
       
   104 	char *frameBuffer;
       
   105 	PyObject *compressedBuffer;
       
   106 
       
   107 	if (!PyArg_ParseTuple(args, "iiiifs#", &compressionScheme,
       
   108 			 &width, &height,
       
   109 			 &originalFormat, &compressionRatio, &frameBuffer,
       
   110 			 &frameBufferSize))
       
   111 		return NULL;
       
   112 
       
   113   retry:
       
   114 	compressedBuffer = PyString_FromStringAndSize(NULL, frameBufferSize);
       
   115 	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,
       
   123 			    (void *) PyString_AsString(compressedBuffer))
       
   124 	    == FAILURE || error_handler_called) {
       
   125 		Py_DECREF(compressedBuffer);
       
   126 		if (!error_handler_called)
       
   127 			PyErr_SetString(ClError, "clCompressImage failed");
       
   128 		return NULL;
       
   129 	}
       
   130 
       
   131 	if (compressedBufferSize > frameBufferSize) {
       
   132 		frameBufferSize = compressedBufferSize;
       
   133 		Py_DECREF(compressedBuffer);
       
   134 		goto retry;
       
   135 	}
       
   136 
       
   137 	if (compressedBufferSize < frameBufferSize)
       
   138 		_PyString_Resize(&compressedBuffer, compressedBufferSize);
       
   139 
       
   140 	return compressedBuffer;
       
   141 }
       
   142 
       
   143 static PyObject *
       
   144 cl_DecompressImage(PyObject *self, PyObject *args)
       
   145 {
       
   146 	int compressionScheme, width, height, originalFormat;
       
   147 	char *compressedBuffer;
       
   148 	int compressedBufferSize, frameBufferSize;
       
   149 	PyObject *frameBuffer;
       
   150 
       
   151 	if (!PyArg_ParseTuple(args, "iiiis#", &compressionScheme, &width, &height,
       
   152 			 &originalFormat, &compressedBuffer,
       
   153 			 &compressedBufferSize))
       
   154 		return NULL;
       
   155 
       
   156 	frameBufferSize = width * height * CL_BytesPerPixel(originalFormat);
       
   157 
       
   158 	frameBuffer = PyString_FromStringAndSize(NULL, frameBufferSize);
       
   159 	if (frameBuffer == NULL)
       
   160 		return NULL;
       
   161 
       
   162 	error_handler_called = 0;
       
   163 	if (clDecompressImage(compressionScheme, width, height, originalFormat,
       
   164 			      compressedBufferSize, compressedBuffer,
       
   165 			      (void *) PyString_AsString(frameBuffer))
       
   166 	    == FAILURE || error_handler_called) {
       
   167 		Py_DECREF(frameBuffer);
       
   168 		if (!error_handler_called)
       
   169 			PyErr_SetString(ClError, "clDecompressImage failed");
       
   170 		return NULL;
       
   171 	}
       
   172 
       
   173 	return frameBuffer;
       
   174 }
       
   175 
       
   176 /********************************************************************
       
   177 		Sequential compression/decompression.
       
   178 ********************************************************************/
       
   179 #define CheckCompressor(self)	if ((self)->ob_compressorHdl == NULL) { \
       
   180 	PyErr_SetString(PyExc_RuntimeError, "(de)compressor not active"); \
       
   181 	return NULL; \
       
   182 }
       
   183 
       
   184 static PyObject *
       
   185 doClose(clobject *self, int (*close_func)(CL_Handle))
       
   186 {
       
   187 	CheckCompressor(self);
       
   188 
       
   189 	error_handler_called = 0;
       
   190 	if ((*close_func)(self->ob_compressorHdl) == FAILURE ||
       
   191 	    error_handler_called) {
       
   192 		if (!error_handler_called)
       
   193 			PyErr_SetString(ClError, "close failed");
       
   194 		return NULL;
       
   195 	}
       
   196 
       
   197 	self->ob_compressorHdl = NULL;
       
   198 
       
   199 	if (self->ob_paramtypes)
       
   200 		PyMem_DEL(self->ob_paramtypes);
       
   201 	self->ob_paramtypes = NULL;
       
   202 
       
   203 	Py_INCREF(Py_None);
       
   204 	return Py_None;
       
   205 }
       
   206 
       
   207 static PyObject *
       
   208 clm_CloseCompressor(PyObject *self)
       
   209 {
       
   210 	return doClose(SELF, clCloseCompressor);
       
   211 }
       
   212 
       
   213 static PyObject *
       
   214 clm_CloseDecompressor(PyObject *self)
       
   215 {
       
   216 	return doClose(SELF, clCloseDecompressor);
       
   217 }
       
   218 
       
   219 static PyObject *
       
   220 clm_Compress(PyObject *self, PyObject *args)
       
   221 {
       
   222 	int numberOfFrames;
       
   223 	int frameBufferSize, compressedBufferSize, size;
       
   224 	char *frameBuffer;
       
   225 	PyObject *data;
       
   226 
       
   227 	CheckCompressor(SELF);
       
   228 
       
   229 	if (!PyArg_Parse(args, "(is#)", &numberOfFrames,
       
   230 			 &frameBuffer, &frameBufferSize))
       
   231 		return NULL;
       
   232 
       
   233 	error_handler_called = 0;
       
   234 	size = clGetParam(SELF->ob_compressorHdl, CL_COMPRESSED_BUFFER_SIZE);
       
   235 	compressedBufferSize = size;
       
   236 	if (error_handler_called)
       
   237 		return NULL;
       
   238 
       
   239 	data = PyString_FromStringAndSize(NULL, size);
       
   240 	if (data == NULL)
       
   241 		return NULL;
       
   242 
       
   243 	error_handler_called = 0;
       
   244 	if (clCompress(SELF->ob_compressorHdl, numberOfFrames,
       
   245 		       (void *) frameBuffer, &compressedBufferSize,
       
   246 		       (void *) PyString_AsString(data)) == FAILURE ||
       
   247 	    error_handler_called) {
       
   248 		Py_DECREF(data);
       
   249 		if (!error_handler_called)
       
   250 			PyErr_SetString(ClError, "compress failed");
       
   251 		return NULL;
       
   252 	}
       
   253 
       
   254 	if (compressedBufferSize < size)
       
   255 		if (_PyString_Resize(&data, compressedBufferSize))
       
   256 			return NULL;
       
   257 
       
   258 	if (compressedBufferSize > size) {
       
   259 		/* we didn't get all "compressed" data */
       
   260 		Py_DECREF(data);
       
   261 		PyErr_SetString(ClError,
       
   262 				"compressed data is more than fitted");
       
   263 		return NULL;
       
   264 	}
       
   265 
       
   266 	return data;
       
   267 }
       
   268 
       
   269 static PyObject *
       
   270 clm_Decompress(PyObject *self, PyObject *args)
       
   271 {
       
   272 	PyObject *data;
       
   273 	int numberOfFrames;
       
   274 	char *compressedData;
       
   275 	int compressedDataSize, dataSize;
       
   276 
       
   277 	CheckCompressor(SELF);
       
   278 
       
   279 	if (!PyArg_Parse(args, "(is#)", &numberOfFrames, &compressedData,
       
   280 			 &compressedDataSize))
       
   281 		return NULL;
       
   282 
       
   283 	error_handler_called = 0;
       
   284 	dataSize = clGetParam(SELF->ob_compressorHdl, CL_FRAME_BUFFER_SIZE);
       
   285 	if (error_handler_called)
       
   286 		return NULL;
       
   287 
       
   288 	data = PyString_FromStringAndSize(NULL, dataSize);
       
   289 	if (data == NULL)
       
   290 		return NULL;
       
   291 
       
   292 	error_handler_called = 0;
       
   293 	if (clDecompress(SELF->ob_compressorHdl, numberOfFrames,
       
   294 			 compressedDataSize, (void *) compressedData,
       
   295 			 (void *) PyString_AsString(data)) == FAILURE ||
       
   296 	    error_handler_called) {
       
   297 		Py_DECREF(data);
       
   298 		if (!error_handler_called)
       
   299 			PyErr_SetString(ClError, "decompress failed");
       
   300 		return NULL;
       
   301 	}
       
   302 
       
   303 	return data;
       
   304 }
       
   305 
       
   306 static PyObject *
       
   307 doParams(clobject *self, PyObject *args, int (*func)(CL_Handle, int *, int),
       
   308 	 int modified)
       
   309 {
       
   310 	PyObject *list, *v;
       
   311 	int *PVbuffer;
       
   312 	int length;
       
   313 	int i;
       
   314 	float number;
       
   315 	
       
   316 	CheckCompressor(self);
       
   317 
       
   318 	if (!PyArg_Parse(args, "O", &list))
       
   319 		return NULL;
       
   320 	if (!PyList_Check(list)) {
       
   321 		PyErr_BadArgument();
       
   322 		return NULL;
       
   323 	}
       
   324 	length = PyList_Size(list);
       
   325 	PVbuffer = PyMem_NEW(int, length);
       
   326 	if (PVbuffer == NULL)
       
   327 		return PyErr_NoMemory();
       
   328 	for (i = 0; i < length; i++) {
       
   329 		v = PyList_GetItem(list, i);
       
   330 		if (PyFloat_Check(v)) {
       
   331 			number = PyFloat_AsDouble(v);
       
   332 			PVbuffer[i] = CL_TypeIsInt(number);
       
   333 		} else if (PyInt_Check(v)) {
       
   334 			PVbuffer[i] = PyInt_AsLong(v);
       
   335 			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 {
       
   341 			PyMem_DEL(PVbuffer);
       
   342 			PyErr_BadArgument();
       
   343 			return NULL;
       
   344 		}
       
   345 	}
       
   346 
       
   347 	error_handler_called = 0;
       
   348 	(*func)(self->ob_compressorHdl, PVbuffer, length);
       
   349 	if (error_handler_called) {
       
   350 		PyMem_DEL(PVbuffer);
       
   351 		return NULL;
       
   352 	}
       
   353 
       
   354 	if (modified) {
       
   355 		for (i = 0; i < length; i++) {
       
   356 			if ((i & 1) &&
       
   357 			    param_type_is_float(self, PVbuffer[i-1]) > 0) {
       
   358 				number = CL_TypeIsFloat(PVbuffer[i]);
       
   359 				v = PyFloat_FromDouble(number);
       
   360 			} else
       
   361 				v = PyInt_FromLong(PVbuffer[i]);
       
   362 			PyList_SetItem(list, i, v);
       
   363 		}
       
   364 	}
       
   365 
       
   366 	PyMem_DEL(PVbuffer);
       
   367 
       
   368 	Py_INCREF(Py_None);
       
   369 	return Py_None;
       
   370 }
       
   371 
       
   372 static PyObject *
       
   373 clm_GetParams(PyObject *self, PyObject *args)
       
   374 {
       
   375 	return doParams(SELF, args, clGetParams, 1);
       
   376 }
       
   377 
       
   378 static PyObject *
       
   379 clm_SetParams(PyObject *self, PyObject *args)
       
   380 {
       
   381 	return doParams(SELF, args, clSetParams, 0);
       
   382 }
       
   383 
       
   384 static PyObject *
       
   385 do_get(clobject *self, PyObject *args, int (*func)(CL_Handle, int))
       
   386 {
       
   387 	int paramID, value;
       
   388 	float fvalue;
       
   389 
       
   390 	CheckCompressor(self);
       
   391 
       
   392 	if (!PyArg_Parse(args, "i", &paramID))
       
   393 		return NULL;
       
   394 
       
   395 	error_handler_called = 0;
       
   396 	value = (*func)(self->ob_compressorHdl, paramID);
       
   397 	if (error_handler_called)
       
   398 		return NULL;
       
   399 
       
   400 	if (param_type_is_float(self, paramID) > 0) {
       
   401 		fvalue = CL_TypeIsFloat(value);
       
   402 		return PyFloat_FromDouble(fvalue);
       
   403 	}
       
   404 
       
   405 	return PyInt_FromLong(value);
       
   406 }
       
   407 
       
   408 static PyObject *
       
   409 clm_GetParam(PyObject *self, PyObject *args)
       
   410 {
       
   411 	return do_get(SELF, args, clGetParam);
       
   412 }
       
   413 
       
   414 static PyObject *
       
   415 clm_GetDefault(PyObject *self, PyObject *args)
       
   416 {
       
   417 	return do_get(SELF, args, clGetDefault);
       
   418 }
       
   419 
       
   420 static PyObject *
       
   421 clm_SetParam(PyObject *self, PyObject *args)
       
   422 {
       
   423 	int paramID, value;
       
   424 	float fvalue;
       
   425 
       
   426 	CheckCompressor(SELF);
       
   427 
       
   428 	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)')");
       
   434 			return NULL;
       
   435 		}
       
   436 		value = CL_TypeIsInt(fvalue);
       
   437 	} else {
       
   438 		if (param_type_is_float(SELF, paramID) > 0) {
       
   439 			fvalue = value;
       
   440 			value = CL_TypeIsInt(fvalue);
       
   441 		}
       
   442 	}
       
   443 
       
   444  	error_handler_called = 0;
       
   445 	value = clSetParam(SELF->ob_compressorHdl, paramID, value);
       
   446 	if (error_handler_called)
       
   447 		return NULL;
       
   448 
       
   449 	if (param_type_is_float(SELF, paramID) > 0)
       
   450 		return PyFloat_FromDouble(CL_TypeIsFloat(value));
       
   451 	else
       
   452 		return PyInt_FromLong(value);
       
   453 }
       
   454 
       
   455 static PyObject *
       
   456 clm_GetParamID(PyObject *self, PyObject *args)
       
   457 {
       
   458 	char *name;
       
   459 	int value;
       
   460 
       
   461 	CheckCompressor(SELF);
       
   462 
       
   463 	if (!PyArg_Parse(args, "s", &name))
       
   464 		return NULL;
       
   465 
       
   466 	error_handler_called = 0;
       
   467 	value = clGetParamID(SELF->ob_compressorHdl, name);
       
   468 	if (value == FAILURE || error_handler_called) {
       
   469 		if (!error_handler_called)
       
   470 			PyErr_SetString(ClError, "getparamid failed");
       
   471 		return NULL;
       
   472 	}
       
   473 
       
   474 	return PyInt_FromLong(value);
       
   475 }
       
   476 
       
   477 static PyObject *
       
   478 clm_QueryParams(PyObject *self)
       
   479 {
       
   480 	int bufferlength;
       
   481 	int *PVbuffer;
       
   482 	PyObject *list;
       
   483 	int i;
       
   484 
       
   485 	CheckCompressor(SELF);
       
   486 
       
   487 	error_handler_called = 0;
       
   488 	bufferlength = clQueryParams(SELF->ob_compressorHdl, 0, 0);
       
   489 	if (error_handler_called)
       
   490 		return NULL;
       
   491 
       
   492 	PVbuffer = PyMem_NEW(int, bufferlength);
       
   493 	if (PVbuffer == NULL)
       
   494 		return PyErr_NoMemory();
       
   495 
       
   496 	bufferlength = clQueryParams(SELF->ob_compressorHdl, PVbuffer,
       
   497 				     bufferlength);
       
   498 	if (error_handler_called) {
       
   499 		PyMem_DEL(PVbuffer);
       
   500 		return NULL;
       
   501 	}
       
   502 
       
   503 	list = PyList_New(bufferlength);
       
   504 	if (list == NULL) {
       
   505 		PyMem_DEL(PVbuffer);
       
   506 		return NULL;
       
   507 	}
       
   508 
       
   509 	for (i = 0; i < bufferlength; i++) {
       
   510 		if (i & 1)
       
   511 			PyList_SetItem(list, i, PyInt_FromLong(PVbuffer[i]));
       
   512 		else if (PVbuffer[i] == 0) {
       
   513 			Py_INCREF(Py_None);
       
   514 			PyList_SetItem(list, i, Py_None);
       
   515 		} else
       
   516 			PyList_SetItem(list, i,
       
   517 				   PyString_FromString((char *) PVbuffer[i]));
       
   518 	}
       
   519 
       
   520 	PyMem_DEL(PVbuffer);
       
   521 
       
   522 	return list;
       
   523 }
       
   524 
       
   525 static PyObject *
       
   526 clm_GetMinMax(PyObject *self, PyObject *args)
       
   527 {
       
   528 	int param, min, max;
       
   529 	float fmin, fmax;
       
   530 
       
   531 	CheckCompressor(SELF);
       
   532 
       
   533 	if (!PyArg_Parse(args, "i", &param))
       
   534 		return NULL;
       
   535 
       
   536 	clGetMinMax(SELF->ob_compressorHdl, param, &min, &max);
       
   537 
       
   538 	if (param_type_is_float(SELF, param) > 0) {
       
   539 		fmin = CL_TypeIsFloat(min);
       
   540 		fmax = CL_TypeIsFloat(max);
       
   541 		return Py_BuildValue("(ff)", fmin, fmax);
       
   542 	}
       
   543 
       
   544 	return Py_BuildValue("(ii)", min, max);
       
   545 }
       
   546 
       
   547 static PyObject *
       
   548 clm_GetName(PyObject *self, PyObject *args)
       
   549 {
       
   550 	int param;
       
   551 	char *name;
       
   552 
       
   553 	CheckCompressor(SELF);
       
   554 
       
   555 	if (!PyArg_Parse(args, "i", &param))
       
   556 		return NULL;
       
   557 
       
   558 	error_handler_called = 0;
       
   559 	name = clGetName(SELF->ob_compressorHdl, param);
       
   560 	if (name == NULL || error_handler_called) {
       
   561 		if (!error_handler_called)
       
   562 			PyErr_SetString(ClError, "getname failed");
       
   563 		return NULL;
       
   564 	}
       
   565 
       
   566 	return PyString_FromString(name);
       
   567 }
       
   568 
       
   569 static PyObject *
       
   570 clm_QuerySchemeFromHandle(PyObject *self)
       
   571 {
       
   572 	CheckCompressor(SELF);
       
   573 	return PyInt_FromLong(clQuerySchemeFromHandle(SELF->ob_compressorHdl));
       
   574 }
       
   575 
       
   576 static PyObject *
       
   577 clm_ReadHeader(PyObject *self, PyObject *args)
       
   578 {
       
   579 	char *header;
       
   580 	int headerSize;
       
   581 
       
   582 	CheckCompressor(SELF);
       
   583 
       
   584 	if (!PyArg_Parse(args, "s#", &header, &headerSize))
       
   585 		return NULL;
       
   586 
       
   587 	return PyInt_FromLong(clReadHeader(SELF->ob_compressorHdl,
       
   588 					   headerSize, header));
       
   589 }
       
   590 
       
   591 static PyMethodDef compressor_methods[] = {
       
   592 	{"close",		clm_CloseCompressor, METH_NOARGS}, /* alias */
       
   593 	{"CloseCompressor",	clm_CloseCompressor, METH_NOARGS},
       
   594 	{"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},
       
   601 	{"QueryParams",		clm_QueryParams, METH_NOARGS},
       
   602 	{"QuerySchemeFromHandle",clm_QuerySchemeFromHandle, METH_NOARGS},
       
   603 	{"SetParam",		clm_SetParam, METH_OLDARGS},
       
   604 	{"SetParams",		clm_SetParams, METH_OLDARGS},
       
   605 	{NULL,			NULL}		/* sentinel */
       
   606 };
       
   607 
       
   608 static PyMethodDef decompressor_methods[] = {
       
   609 	{"close",		clm_CloseDecompressor, METH_NOARGS},	/* alias */
       
   610 	{"CloseDecompressor",	clm_CloseDecompressor, METH_NOARGS},
       
   611 	{"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},
       
   619 	{"QueryParams",		clm_QueryParams, METH_NOARGS},
       
   620 	{"QuerySchemeFromHandle",clm_QuerySchemeFromHandle, METH_NOARGS},
       
   621 	{"SetParam",		clm_SetParam, METH_OLDARGS},
       
   622 	{"SetParams",		clm_SetParams, METH_OLDARGS},
       
   623 	{NULL,			NULL}		/* sentinel */
       
   624 };
       
   625 
       
   626 static void
       
   627 cl_dealloc(PyObject *self)
       
   628 {
       
   629 	if (SELF->ob_compressorHdl) {
       
   630 		if (SELF->ob_isCompressor)
       
   631 			clCloseCompressor(SELF->ob_compressorHdl);
       
   632 		else
       
   633 			clCloseDecompressor(SELF->ob_compressorHdl);
       
   634 	}
       
   635 	PyObject_Del(self);
       
   636 }
       
   637 
       
   638 static PyObject *
       
   639 cl_getattr(PyObject *self, char *name)
       
   640 {
       
   641 	if (SELF->ob_isCompressor)
       
   642 		return Py_FindMethod(compressor_methods, self, name);
       
   643 	else
       
   644 		return Py_FindMethod(decompressor_methods, self, name);
       
   645 }
       
   646 
       
   647 static PyTypeObject Cltype = {
       
   648 	PyObject_HEAD_INIT(&PyType_Type)
       
   649 	0,			/*ob_size*/
       
   650 	"cl.cl",		/*tp_name*/
       
   651 	sizeof(clobject),	/*tp_size*/
       
   652 	0,			/*tp_itemsize*/
       
   653 	/* methods */
       
   654 	(destructor)cl_dealloc,	/*tp_dealloc*/
       
   655 	0,			/*tp_print*/
       
   656 	(getattrfunc)cl_getattr, /*tp_getattr*/
       
   657 	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 
       
   665 static PyObject *
       
   666 doOpen(PyObject *self, PyObject *args, int (*open_func)(int, CL_Handle *),
       
   667        int iscompressor)
       
   668 {
       
   669 	int scheme;
       
   670 	clobject *new;
       
   671 
       
   672 	if (!PyArg_ParseTuple(args, "i", &scheme))
       
   673 		return NULL;
       
   674 
       
   675 	new = PyObject_New(clobject, &Cltype);
       
   676 	if (new == NULL)
       
   677 		return NULL;
       
   678 
       
   679 	new->ob_compressorHdl = NULL;
       
   680 	new->ob_isCompressor = iscompressor;
       
   681 	new->ob_paramtypes = NULL;
       
   682 
       
   683 	error_handler_called = 0;
       
   684 	if ((*open_func)(scheme, &new->ob_compressorHdl) == FAILURE ||
       
   685 	    error_handler_called) {
       
   686 		Py_DECREF(new);
       
   687 		if (!error_handler_called)
       
   688 			PyErr_SetString(ClError, "Open(De)Compressor failed");
       
   689 		return NULL;
       
   690 	}
       
   691 	return (PyObject *)new;
       
   692 }
       
   693 
       
   694 static PyObject *
       
   695 cl_OpenCompressor(PyObject *self, PyObject *args)
       
   696 {
       
   697 	return doOpen(self, args, clOpenCompressor, 1);
       
   698 }
       
   699 
       
   700 static PyObject *
       
   701 cl_OpenDecompressor(PyObject *self, PyObject *args)
       
   702 {
       
   703 	return doOpen(self, args, clOpenDecompressor, 0);
       
   704 }
       
   705 
       
   706 static PyObject *
       
   707 cl_QueryScheme(PyObject *self, PyObject *args)
       
   708 {
       
   709 	char *header;
       
   710 	int headerlen;
       
   711 	int scheme;
       
   712 
       
   713 	if (!PyArg_ParseTuple(args, "s#", &header, &headerlen))
       
   714 		return NULL;
       
   715 
       
   716 	scheme = clQueryScheme(header);
       
   717 	if (scheme < 0) {
       
   718 		PyErr_SetString(ClError, "unknown compression scheme");
       
   719 		return NULL;
       
   720 	}
       
   721 
       
   722 	return PyInt_FromLong(scheme);
       
   723 }
       
   724 
       
   725 static PyObject *
       
   726 cl_QueryMaxHeaderSize(PyObject *self, PyObject *args)
       
   727 {
       
   728 	int scheme;
       
   729 
       
   730 	if (!PyArg_ParseTuple(args, "i", &scheme))
       
   731 		return NULL;
       
   732 
       
   733 	return PyInt_FromLong(clQueryMaxHeaderSize(scheme));
       
   734 }
       
   735 
       
   736 static PyObject *
       
   737 cl_QueryAlgorithms(PyObject *self, PyObject *args)
       
   738 {
       
   739 	int algorithmMediaType;
       
   740 	int bufferlength;
       
   741 	int *PVbuffer;
       
   742 	PyObject *list;
       
   743 	int i;
       
   744 
       
   745 	if (!PyArg_ParseTuple(args, "i", &algorithmMediaType))
       
   746 		return NULL;
       
   747 
       
   748 	error_handler_called = 0;
       
   749 	bufferlength = clQueryAlgorithms(algorithmMediaType, 0, 0);
       
   750 	if (error_handler_called)
       
   751 		return NULL;
       
   752 
       
   753 	PVbuffer = PyMem_NEW(int, bufferlength);
       
   754 	if (PVbuffer == NULL)
       
   755 		return PyErr_NoMemory();
       
   756 
       
   757 	bufferlength = clQueryAlgorithms(algorithmMediaType, PVbuffer,
       
   758 					 bufferlength);
       
   759 	if (error_handler_called) {
       
   760 		PyMem_DEL(PVbuffer);
       
   761 		return NULL;
       
   762 	}
       
   763 
       
   764 	list = PyList_New(bufferlength);
       
   765 	if (list == NULL) {
       
   766 		PyMem_DEL(PVbuffer);
       
   767 		return NULL;
       
   768 	}
       
   769 
       
   770 	for (i = 0; i < bufferlength; i++) {
       
   771 		if (i & 1)
       
   772 			PyList_SetItem(list, i, PyInt_FromLong(PVbuffer[i]));
       
   773 		else if (PVbuffer[i] == 0) {
       
   774 			Py_INCREF(Py_None);
       
   775 			PyList_SetItem(list, i, Py_None);
       
   776 		} else
       
   777 			PyList_SetItem(list, i,
       
   778 				   PyString_FromString((char *) PVbuffer[i]));
       
   779 	}
       
   780 
       
   781 	PyMem_DEL(PVbuffer);
       
   782 
       
   783 	return list;
       
   784 }
       
   785 
       
   786 static PyObject *
       
   787 cl_QuerySchemeFromName(PyObject *self, PyObject *args)
       
   788 {
       
   789 	int algorithmMediaType;
       
   790 	char *name;
       
   791 	int scheme;
       
   792 
       
   793 	if (!PyArg_ParseTuple(args, "is", &algorithmMediaType, &name))
       
   794 		return NULL;
       
   795 
       
   796 	error_handler_called = 0;
       
   797 	scheme = clQuerySchemeFromName(algorithmMediaType, name);
       
   798 	if (error_handler_called) {
       
   799 		PyErr_SetString(ClError, "unknown compression scheme");
       
   800 		return NULL;
       
   801 	}
       
   802 
       
   803 	return PyInt_FromLong(scheme);
       
   804 }
       
   805 
       
   806 static PyObject *
       
   807 cl_GetAlgorithmName(PyObject *self, PyObject *args)
       
   808 {
       
   809 	int scheme;
       
   810 	char *name;
       
   811 
       
   812 	if (!PyArg_ParseTuple(args, "i", &scheme))
       
   813 		return NULL;
       
   814 
       
   815 	name = clGetAlgorithmName(scheme);
       
   816 	if (name == 0) {
       
   817 		PyErr_SetString(ClError, "unknown compression scheme");
       
   818 		return NULL;
       
   819 	}
       
   820 
       
   821 	return PyString_FromString(name);
       
   822 }
       
   823 
       
   824 static PyObject *
       
   825 do_set(PyObject *self, PyObject *args, int (*func)(int, int, int))
       
   826 {
       
   827 	int scheme, paramID, value;
       
   828 	float fvalue;
       
   829 	int is_float = 0;
       
   830 
       
   831 	if (!PyArg_ParseTuple(args, "iii", &scheme, &paramID, &value)) {
       
   832 		PyErr_Clear();
       
   833 		if (!PyArg_ParseTuple(args, "iif", &scheme, &paramID, &fvalue)) {
       
   834 			PyErr_Clear();
       
   835 			PyErr_SetString(PyExc_TypeError,
       
   836 			     "bad argument list (format '(iii)' or '(iif)')");
       
   837 			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)
       
   859 		return PyFloat_FromDouble(CL_TypeIsFloat(value));
       
   860 	else
       
   861 		return PyInt_FromLong(value);
       
   862 }
       
   863 
       
   864 static PyObject *
       
   865 cl_SetDefault(PyObject *self, PyObject *args)
       
   866 {
       
   867 	return do_set(self, args, clSetDefault);
       
   868 }
       
   869 
       
   870 static PyObject *
       
   871 cl_SetMin(PyObject *self, PyObject *args)
       
   872 {
       
   873 	return do_set(self, args, clSetMin);
       
   874 }
       
   875 
       
   876 static PyObject *
       
   877 cl_SetMax(PyObject *self, PyObject *args)
       
   878 {
       
   879 	return do_set(self, args, clSetMax);
       
   880 }
       
   881 
       
   882 #define func(name, handler)	\
       
   883 static PyObject *cl_##name(PyObject *self, PyObject *args) \
       
   884 { \
       
   885 	  int x; \
       
   886 	  if (!PyArg_ParseTuple(args, "i", &x)) return NULL; \
       
   887 	  return Py##handler(CL_##name(x)); \
       
   888 }
       
   889 
       
   890 #define func2(name, handler)	\
       
   891 static PyObject *cl_##name(PyObject *self, PyObject *args) \
       
   892 { \
       
   893 	  int a1, a2; \
       
   894 	  if (!PyArg_ParseTuple(args, "ii", &a1, &a2)) return NULL; \
       
   895 	  return Py##handler(CL_##name(a1, a2)); \
       
   896 }
       
   897 
       
   898 func(BytesPerSample, Int_FromLong)
       
   899 func(BytesPerPixel, Int_FromLong)
       
   900 func(AudioFormatName, String_FromString)
       
   901 func(VideoFormatName, String_FromString)
       
   902 func(AlgorithmNumber, Int_FromLong)
       
   903 func(AlgorithmType, Int_FromLong)
       
   904 func2(Algorithm, Int_FromLong)
       
   905 func(ParamNumber, Int_FromLong)
       
   906 func(ParamType, Int_FromLong)
       
   907 func2(ParamID, Int_FromLong)
       
   908 
       
   909 #ifdef CLDEBUG
       
   910 	static PyObject *
       
   911 cvt_type(PyObject *self, PyObject *args)
       
   912 {
       
   913 	int number;
       
   914 	float fnumber;
       
   915 
       
   916 	if (PyArg_Parse(args, "i", &number))
       
   917 		return PyFloat_FromDouble(CL_TypeIsFloat(number));
       
   918 	else {
       
   919 		PyErr_Clear();
       
   920 		if (PyArg_Parse(args, "f", &fnumber))
       
   921 			return PyInt_FromLong(CL_TypeIsInt(fnumber));
       
   922 		return NULL;
       
   923 	}
       
   924 }
       
   925 #endif
       
   926 
       
   927 static PyMethodDef cl_methods[] = {
       
   928 	{"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},
       
   950 #ifdef CLDEBUG
       
   951 	{"cvt_type",		cvt_type, METH_VARARGS},
       
   952 #endif
       
   953 	{NULL,			NULL} /* Sentinel */
       
   954 };
       
   955 
       
   956 #ifdef CL_JPEG_SOFTWARE
       
   957 #define IRIX_5_3_LIBRARY
       
   958 #endif
       
   959 
       
   960 void
       
   961 initcl(void)
       
   962 {
       
   963 	PyObject *m, *d, *x;
       
   964     
       
   965     if (PyErr_WarnPy3k("the cl module has been removed in "
       
   966                        "Python 3.0", 2) < 0)
       
   967         return;
       
   968     
       
   969 	m = Py_InitModule("cl", cl_methods);
       
   970 	if (m == NULL)
       
   971 		return;
       
   972 	d = PyModule_GetDict(m);
       
   973 
       
   974 	ClError = PyErr_NewException("cl.error", NULL, NULL);
       
   975 	(void) PyDict_SetItemString(d, "error", ClError);
       
   976 
       
   977 #ifdef CL_ADDED_ALGORITHM_ERROR
       
   978 	x = PyInt_FromLong(CL_ADDED_ALGORITHM_ERROR);
       
   979 	if (x == NULL || PyDict_SetItemString(d, "ADDED_ALGORITHM_ERROR", x) < 0)
       
   980 		return;
       
   981 	Py_DECREF(x);
       
   982 #endif
       
   983 #ifdef CL_ALAW
       
   984 	x = PyInt_FromLong(CL_ALAW);
       
   985 	if (x == NULL || PyDict_SetItemString(d, "ALAW", x) < 0)
       
   986 		return;
       
   987 	Py_DECREF(x);
       
   988 #endif
       
   989 #ifdef CL_ALGORITHM_ID
       
   990 	x = PyInt_FromLong(CL_ALGORITHM_ID);
       
   991 	if (x == NULL || PyDict_SetItemString(d, "ALGORITHM_ID", x) < 0)
       
   992 		return;
       
   993 	Py_DECREF(x);
       
   994 #endif
       
   995 #ifdef CL_ALGORITHM_TABLE_FULL
       
   996 	x = PyInt_FromLong(CL_ALGORITHM_TABLE_FULL);
       
   997 	if (x == NULL || PyDict_SetItemString(d, "ALGORITHM_TABLE_FULL", x) < 0)
       
   998 		return;
       
   999 	Py_DECREF(x);
       
  1000 #endif
       
  1001 #ifdef CL_ALGORITHM_VERSION
       
  1002 	x = PyInt_FromLong(CL_ALGORITHM_VERSION);
       
  1003 	if (x == NULL || PyDict_SetItemString(d, "ALGORITHM_VERSION", x) < 0)
       
  1004 		return;
       
  1005 	Py_DECREF(x);
       
  1006 #endif
       
  1007 #ifdef CL_ALG_AUDIO
       
  1008 	x = PyInt_FromLong(CL_ALG_AUDIO);
       
  1009 	if (x == NULL || PyDict_SetItemString(d, "ALG_AUDIO", x) < 0)
       
  1010 		return;
       
  1011 	Py_DECREF(x);
       
  1012 #endif
       
  1013 #ifdef CL_ALG_VIDEO
       
  1014 	x = PyInt_FromLong(CL_ALG_VIDEO);
       
  1015 	if (x == NULL || PyDict_SetItemString(d, "ALG_VIDEO", x) < 0)
       
  1016 		return;
       
  1017 	Py_DECREF(x);
       
  1018 #endif
       
  1019 #ifdef CL_AUDIO
       
  1020 	x = PyInt_FromLong(CL_AUDIO);
       
  1021 	if (x == NULL || PyDict_SetItemString(d, "AUDIO", x) < 0)
       
  1022 		return;
       
  1023 	Py_DECREF(x);
       
  1024 #endif
       
  1025 #ifdef CL_AWARE_BITRATE_POLICY
       
  1026 	x = PyInt_FromLong(CL_AWARE_BITRATE_POLICY);
       
  1027 	if (x == NULL || PyDict_SetItemString(d, "AWARE_BITRATE_POLICY", x) < 0)
       
  1028 		return;
       
  1029 	Py_DECREF(x);
       
  1030 #endif
       
  1031 #ifdef CL_AWARE_BITRATE_TARGET
       
  1032 	x = PyInt_FromLong(CL_AWARE_BITRATE_TARGET);
       
  1033 	if (x == NULL || PyDict_SetItemString(d, "AWARE_BITRATE_TARGET", x) < 0)
       
  1034 		return;
       
  1035 	Py_DECREF(x);
       
  1036 #endif
       
  1037 #ifdef CL_AWARE_CHANNEL_POLICY
       
  1038 	x = PyInt_FromLong(CL_AWARE_CHANNEL_POLICY);
       
  1039 	if (x == NULL || PyDict_SetItemString(d, "AWARE_CHANNEL_POLICY", x) < 0)
       
  1040 		return;
       
  1041 	Py_DECREF(x);
       
  1042 #endif
       
  1043 #ifdef CL_AWARE_CONST_QUAL
       
  1044 	x = PyInt_FromLong(CL_AWARE_CONST_QUAL);
       
  1045 	if (x == NULL || PyDict_SetItemString(d, "AWARE_CONST_QUAL", x) < 0)
       
  1046 		return;
       
  1047 	Py_DECREF(x);
       
  1048 #endif
       
  1049 #ifdef CL_AWARE_ERROR
       
  1050 	x = PyInt_FromLong(CL_AWARE_ERROR);
       
  1051 	if (x == NULL || PyDict_SetItemString(d, "AWARE_ERROR", x) < 0)
       
  1052 		return;
       
  1053 	Py_DECREF(x);
       
  1054 #endif
       
  1055 #ifdef CL_AWARE_FIXED_RATE
       
  1056 	x = PyInt_FromLong(CL_AWARE_FIXED_RATE);
       
  1057 	if (x == NULL || PyDict_SetItemString(d, "AWARE_FIXED_RATE", x) < 0)
       
  1058 		return;
       
  1059 	Py_DECREF(x);
       
  1060 #endif
       
  1061 #ifdef CL_AWARE_INDEPENDENT
       
  1062 	x = PyInt_FromLong(CL_AWARE_INDEPENDENT);
       
  1063 	if (x == NULL || PyDict_SetItemString(d, "AWARE_INDEPENDENT", x) < 0)
       
  1064 		return;
       
  1065 	Py_DECREF(x);
       
  1066 #endif
       
  1067 #ifdef CL_AWARE_JOINT_STEREO
       
  1068 	x = PyInt_FromLong(CL_AWARE_JOINT_STEREO);
       
  1069 	if (x == NULL || PyDict_SetItemString(d, "AWARE_JOINT_STEREO", x) < 0)
       
  1070 		return;
       
  1071 	Py_DECREF(x);
       
  1072 #endif
       
  1073 #ifdef CL_AWARE_LAYER
       
  1074 	x = PyInt_FromLong(CL_AWARE_LAYER);
       
  1075 	if (x == NULL || PyDict_SetItemString(d, "AWARE_LAYER", x) < 0)
       
  1076 		return;
       
  1077 	Py_DECREF(x);
       
  1078 #endif
       
  1079 #ifdef CL_AWARE_LOSSLESS
       
  1080 	x = PyInt_FromLong(CL_AWARE_LOSSLESS);
       
  1081 	if (x == NULL || PyDict_SetItemString(d, "AWARE_LOSSLESS", x) < 0)
       
  1082 		return;
       
  1083 	Py_DECREF(x);
       
  1084 #endif
       
  1085 #ifdef CL_AWARE_MPEG_AUDIO
       
  1086 	x = PyInt_FromLong(CL_AWARE_MPEG_AUDIO);
       
  1087 	if (x == NULL || PyDict_SetItemString(d, "AWARE_MPEG_AUDIO", x) < 0)
       
  1088 		return;
       
  1089 	Py_DECREF(x);
       
  1090 #endif
       
  1091 #ifdef CL_AWARE_MPEG_LAYER_I
       
  1092 	x = PyInt_FromLong(CL_AWARE_MPEG_LAYER_I);
       
  1093 	if (x == NULL || PyDict_SetItemString(d, "AWARE_MPEG_LAYER_I", x) < 0)
       
  1094 		return;
       
  1095 	Py_DECREF(x);
       
  1096 #endif
       
  1097 #ifdef CL_AWARE_MPEG_LAYER_II
       
  1098 	x = PyInt_FromLong(CL_AWARE_MPEG_LAYER_II);
       
  1099 	if (x == NULL || PyDict_SetItemString(d, "AWARE_MPEG_LAYER_II", x) < 0)
       
  1100 		return;
       
  1101 	Py_DECREF(x);
       
  1102 #endif
       
  1103 #ifdef CL_AWARE_MULTIRATE
       
  1104 	x = PyInt_FromLong(CL_AWARE_MULTIRATE);
       
  1105 	if (x == NULL || PyDict_SetItemString(d, "AWARE_MULTIRATE", x) < 0)
       
  1106 		return;
       
  1107 	Py_DECREF(x);
       
  1108 #endif
       
  1109 #ifdef CL_AWARE_NOISE_MARGIN
       
  1110 	x = PyInt_FromLong(CL_AWARE_NOISE_MARGIN);
       
  1111 	if (x == NULL || PyDict_SetItemString(d, "AWARE_NOISE_MARGIN", x) < 0)
       
  1112 		return;
       
  1113 	Py_DECREF(x);
       
  1114 #endif
       
  1115 #ifdef CL_AWARE_STEREO
       
  1116 	x = PyInt_FromLong(CL_AWARE_STEREO);
       
  1117 	if (x == NULL || PyDict_SetItemString(d, "AWARE_STEREO", x) < 0)
       
  1118 		return;
       
  1119 	Py_DECREF(x);
       
  1120 #endif
       
  1121 #ifdef CL_BAD_ALGORITHM_NAME
       
  1122 	x = PyInt_FromLong(CL_BAD_ALGORITHM_NAME);
       
  1123 	if (x == NULL || PyDict_SetItemString(d, "BAD_ALGORITHM_NAME", x) < 0)
       
  1124 		return;
       
  1125 	Py_DECREF(x);
       
  1126 #endif
       
  1127 #ifdef CL_BAD_ALGORITHM_TYPE
       
  1128 	x = PyInt_FromLong(CL_BAD_ALGORITHM_TYPE);
       
  1129 	if (x == NULL || PyDict_SetItemString(d, "BAD_ALGORITHM_TYPE", x) < 0)
       
  1130 		return;
       
  1131 	Py_DECREF(x);
       
  1132 #endif
       
  1133 #ifdef CL_BAD_BLOCK_SIZE
       
  1134 	x = PyInt_FromLong(CL_BAD_BLOCK_SIZE);
       
  1135 	if (x == NULL || PyDict_SetItemString(d, "BAD_BLOCK_SIZE", x) < 0)
       
  1136 		return;
       
  1137 	Py_DECREF(x);
       
  1138 #endif
       
  1139 #ifdef CL_BAD_BOARD
       
  1140 	x = PyInt_FromLong(CL_BAD_BOARD);
       
  1141 	if (x == NULL || PyDict_SetItemString(d, "BAD_BOARD", x) < 0)
       
  1142 		return;
       
  1143 	Py_DECREF(x);
       
  1144 #endif
       
  1145 #ifdef CL_BAD_BUFFERING
       
  1146 	x = PyInt_FromLong(CL_BAD_BUFFERING);
       
  1147 	if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFERING", x) < 0)
       
  1148 		return;
       
  1149 	Py_DECREF(x);
       
  1150 #endif
       
  1151 #ifdef CL_BAD_BUFFERLENGTH_NEG
       
  1152 	x = PyInt_FromLong(CL_BAD_BUFFERLENGTH_NEG);
       
  1153 	if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFERLENGTH_NEG", x) < 0)
       
  1154 		return;
       
  1155 	Py_DECREF(x);
       
  1156 #endif
       
  1157 #ifdef CL_BAD_BUFFERLENGTH_ODD
       
  1158 	x = PyInt_FromLong(CL_BAD_BUFFERLENGTH_ODD);
       
  1159 	if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFERLENGTH_ODD", x) < 0)
       
  1160 		return;
       
  1161 	Py_DECREF(x);
       
  1162 #endif
       
  1163 #ifdef CL_BAD_BUFFER_EXISTS
       
  1164 	x = PyInt_FromLong(CL_BAD_BUFFER_EXISTS);
       
  1165 	if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFER_EXISTS", x) < 0)
       
  1166 		return;
       
  1167 	Py_DECREF(x);
       
  1168 #endif
       
  1169 #ifdef CL_BAD_BUFFER_HANDLE
       
  1170 	x = PyInt_FromLong(CL_BAD_BUFFER_HANDLE);
       
  1171 	if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFER_HANDLE", x) < 0)
       
  1172 		return;
       
  1173 	Py_DECREF(x);
       
  1174 #endif
       
  1175 #ifdef CL_BAD_BUFFER_POINTER
       
  1176 	x = PyInt_FromLong(CL_BAD_BUFFER_POINTER);
       
  1177 	if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFER_POINTER", x) < 0)
       
  1178 		return;
       
  1179 	Py_DECREF(x);
       
  1180 #endif
       
  1181 #ifdef CL_BAD_BUFFER_QUERY_SIZE
       
  1182 	x = PyInt_FromLong(CL_BAD_BUFFER_QUERY_SIZE);
       
  1183 	if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFER_QUERY_SIZE", x) < 0)
       
  1184 		return;
       
  1185 	Py_DECREF(x);
       
  1186 #endif
       
  1187 #ifdef CL_BAD_BUFFER_SIZE
       
  1188 	x = PyInt_FromLong(CL_BAD_BUFFER_SIZE);
       
  1189 	if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFER_SIZE", x) < 0)
       
  1190 		return;
       
  1191 	Py_DECREF(x);
       
  1192 #endif
       
  1193 #ifdef CL_BAD_BUFFER_SIZE_POINTER
       
  1194 	x = PyInt_FromLong(CL_BAD_BUFFER_SIZE_POINTER);
       
  1195 	if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFER_SIZE_POINTER", x) < 0)
       
  1196 		return;
       
  1197 	Py_DECREF(x);
       
  1198 #endif
       
  1199 #ifdef CL_BAD_BUFFER_TYPE
       
  1200 	x = PyInt_FromLong(CL_BAD_BUFFER_TYPE);
       
  1201 	if (x == NULL || PyDict_SetItemString(d, "BAD_BUFFER_TYPE", x) < 0)
       
  1202 		return;
       
  1203 	Py_DECREF(x);
       
  1204 #endif
       
  1205 #ifdef CL_BAD_COMPRESSION_SCHEME
       
  1206 	x = PyInt_FromLong(CL_BAD_COMPRESSION_SCHEME);
       
  1207 	if (x == NULL || PyDict_SetItemString(d, "BAD_COMPRESSION_SCHEME", x) < 0)
       
  1208 		return;
       
  1209 	Py_DECREF(x);
       
  1210 #endif
       
  1211 #ifdef CL_BAD_COMPRESSOR_HANDLE
       
  1212 	x = PyInt_FromLong(CL_BAD_COMPRESSOR_HANDLE);
       
  1213 	if (x == NULL || PyDict_SetItemString(d, "BAD_COMPRESSOR_HANDLE", x) < 0)
       
  1214 		return;
       
  1215 	Py_DECREF(x);
       
  1216 #endif
       
  1217 #ifdef CL_BAD_COMPRESSOR_HANDLE_POINTER
       
  1218 	x = PyInt_FromLong(CL_BAD_COMPRESSOR_HANDLE_POINTER);
       
  1219 	if (x == NULL || PyDict_SetItemString(d, "BAD_COMPRESSOR_HANDLE_POINTER", x) < 0)
       
  1220 		return;
       
  1221 	Py_DECREF(x);
       
  1222 #endif
       
  1223 #ifdef CL_BAD_FRAME_SIZE
       
  1224 	x = PyInt_FromLong(CL_BAD_FRAME_SIZE);
       
  1225 	if (x == NULL || PyDict_SetItemString(d, "BAD_FRAME_SIZE", x) < 0)
       
  1226 		return;
       
  1227 	Py_DECREF(x);
       
  1228 #endif
       
  1229 #ifdef CL_BAD_FUNCTIONALITY
       
  1230 	x = PyInt_FromLong(CL_BAD_FUNCTIONALITY);
       
  1231 	if (x == NULL || PyDict_SetItemString(d, "BAD_FUNCTIONALITY", x) < 0)
       
  1232 		return;
       
  1233 	Py_DECREF(x);
       
  1234 #endif
       
  1235 #ifdef CL_BAD_FUNCTION_POINTER
       
  1236 	x = PyInt_FromLong(CL_BAD_FUNCTION_POINTER);
       
  1237 	if (x == NULL || PyDict_SetItemString(d, "BAD_FUNCTION_POINTER", x) < 0)
       
  1238 		return;
       
  1239 	Py_DECREF(x);
       
  1240 #endif
       
  1241 #ifdef CL_BAD_HEADER_SIZE
       
  1242 	x = PyInt_FromLong(CL_BAD_HEADER_SIZE);
       
  1243 	if (x == NULL || PyDict_SetItemString(d, "BAD_HEADER_SIZE", x) < 0)
       
  1244 		return;
       
  1245 	Py_DECREF(x);
       
  1246 #endif
       
  1247 #ifdef CL_BAD_INITIAL_VALUE
       
  1248 	x = PyInt_FromLong(CL_BAD_INITIAL_VALUE);
       
  1249 	if (x == NULL || PyDict_SetItemString(d, "BAD_INITIAL_VALUE", x) < 0)
       
  1250 		return;
       
  1251 	Py_DECREF(x);
       
  1252 #endif
       
  1253 #ifdef CL_BAD_INTERNAL_FORMAT
       
  1254 	x = PyInt_FromLong(CL_BAD_INTERNAL_FORMAT);
       
  1255 	if (x == NULL || PyDict_SetItemString(d, "BAD_INTERNAL_FORMAT", x) < 0)
       
  1256 		return;
       
  1257 	Py_DECREF(x);
       
  1258 #endif
       
  1259 #ifdef CL_BAD_LICENSE
       
  1260 	x = PyInt_FromLong(CL_BAD_LICENSE);
       
  1261 	if (x == NULL || PyDict_SetItemString(d, "BAD_LICENSE", x) < 0)
       
  1262 		return;
       
  1263 	Py_DECREF(x);
       
  1264 #endif
       
  1265 #ifdef CL_BAD_MIN_GT_MAX
       
  1266 	x = PyInt_FromLong(CL_BAD_MIN_GT_MAX);
       
  1267 	if (x == NULL || PyDict_SetItemString(d, "BAD_MIN_GT_MAX", x) < 0)
       
  1268 		return;
       
  1269 	Py_DECREF(x);
       
  1270 #endif
       
  1271 #ifdef CL_BAD_NO_BUFFERSPACE
       
  1272 	x = PyInt_FromLong(CL_BAD_NO_BUFFERSPACE);
       
  1273 	if (x == NULL || PyDict_SetItemString(d, "BAD_NO_BUFFERSPACE", x) < 0)
       
  1274 		return;
       
  1275 	Py_DECREF(x);
       
  1276 #endif
       
  1277 #ifdef CL_BAD_NUMBER_OF_BLOCKS
       
  1278 	x = PyInt_FromLong(CL_BAD_NUMBER_OF_BLOCKS);
       
  1279 	if (x == NULL || PyDict_SetItemString(d, "BAD_NUMBER_OF_BLOCKS", x) < 0)
       
  1280 		return;
       
  1281 	Py_DECREF(x);
       
  1282 #endif
       
  1283 #ifdef CL_BAD_PARAM
       
  1284 	x = PyInt_FromLong(CL_BAD_PARAM);
       
  1285 	if (x == NULL || PyDict_SetItemString(d, "BAD_PARAM", x) < 0)
       
  1286 		return;
       
  1287 	Py_DECREF(x);
       
  1288 #endif
       
  1289 #ifdef CL_BAD_PARAM_ID_POINTER
       
  1290 	x = PyInt_FromLong(CL_BAD_PARAM_ID_POINTER);
       
  1291 	if (x == NULL || PyDict_SetItemString(d, "BAD_PARAM_ID_POINTER", x) < 0)
       
  1292 		return;
       
  1293 	Py_DECREF(x);
       
  1294 #endif
       
  1295 #ifdef CL_BAD_PARAM_TYPE
       
  1296 	x = PyInt_FromLong(CL_BAD_PARAM_TYPE);
       
  1297 	if (x == NULL || PyDict_SetItemString(d, "BAD_PARAM_TYPE", x) < 0)
       
  1298 		return;
       
  1299 	Py_DECREF(x);
       
  1300 #endif
       
  1301 #ifdef CL_BAD_POINTER
       
  1302 	x = PyInt_FromLong(CL_BAD_POINTER);
       
  1303 	if (x == NULL || PyDict_SetItemString(d, "BAD_POINTER", x) < 0)
       
  1304 		return;
       
  1305 	Py_DECREF(x);
       
  1306 #endif
       
  1307 #ifdef CL_BAD_PVBUFFER
       
  1308 	x = PyInt_FromLong(CL_BAD_PVBUFFER);
       
  1309 	if (x == NULL || PyDict_SetItemString(d, "BAD_PVBUFFER", x) < 0)
       
  1310 		return;
       
  1311 	Py_DECREF(x);
       
  1312 #endif
       
  1313 #ifdef CL_BAD_SCHEME_POINTER
       
  1314 	x = PyInt_FromLong(CL_BAD_SCHEME_POINTER);
       
  1315 	if (x == NULL || PyDict_SetItemString(d, "BAD_SCHEME_POINTER", x) < 0)
       
  1316 		return;
       
  1317 	Py_DECREF(x);
       
  1318 #endif
       
  1319 #ifdef CL_BAD_STREAM_HEADER
       
  1320 	x = PyInt_FromLong(CL_BAD_STREAM_HEADER);
       
  1321 	if (x == NULL || PyDict_SetItemString(d, "BAD_STREAM_HEADER", x) < 0)
       
  1322 		return;
       
  1323 	Py_DECREF(x);
       
  1324 #endif
       
  1325 #ifdef CL_BAD_STRING_POINTER
       
  1326 	x = PyInt_FromLong(CL_BAD_STRING_POINTER);
       
  1327 	if (x == NULL || PyDict_SetItemString(d, "BAD_STRING_POINTER", x) < 0)
       
  1328 		return;
       
  1329 	Py_DECREF(x);
       
  1330 #endif
       
  1331 #ifdef CL_BAD_TEXT_STRING_PTR
       
  1332 	x = PyInt_FromLong(CL_BAD_TEXT_STRING_PTR);
       
  1333 	if (x == NULL || PyDict_SetItemString(d, "BAD_TEXT_STRING_PTR", x) < 0)
       
  1334 		return;
       
  1335 	Py_DECREF(x);
       
  1336 #endif
       
  1337 #ifdef CL_BEST_FIT
       
  1338 	x = PyInt_FromLong(CL_BEST_FIT);
       
  1339 	if (x == NULL || PyDict_SetItemString(d, "BEST_FIT", x) < 0)
       
  1340 		return;
       
  1341 	Py_DECREF(x);
       
  1342 #endif
       
  1343 #ifdef CL_BIDIRECTIONAL
       
  1344 	x = PyInt_FromLong(CL_BIDIRECTIONAL);
       
  1345 	if (x == NULL || PyDict_SetItemString(d, "BIDIRECTIONAL", x) < 0)
       
  1346 		return;
       
  1347 	Py_DECREF(x);
       
  1348 #endif
       
  1349 #ifdef CL_BITRATE
       
  1350 	x = PyInt_FromLong(CL_BITRATE);
       
  1351 	if (x == NULL || PyDict_SetItemString(d, "BITRATE", x) < 0)
       
  1352 		return;
       
  1353 	Py_DECREF(x);
       
  1354 #endif
       
  1355 #ifdef CL_BITRATE_POLICY
       
  1356 	x = PyInt_FromLong(CL_BITRATE_POLICY);
       
  1357 	if (x == NULL || PyDict_SetItemString(d, "BITRATE_POLICY", x) < 0)
       
  1358 		return;
       
  1359 	Py_DECREF(x);
       
  1360 #endif
       
  1361 #ifdef CL_BITRATE_TARGET
       
  1362 	x = PyInt_FromLong(CL_BITRATE_TARGET);
       
  1363 	if (x == NULL || PyDict_SetItemString(d, "BITRATE_TARGET", x) < 0)
       
  1364 		return;
       
  1365 	Py_DECREF(x);
       
  1366 #endif
       
  1367 #ifdef CL_BITS_PER_COMPONENT
       
  1368 	x = PyInt_FromLong(CL_BITS_PER_COMPONENT);
       
  1369 	if (x == NULL || PyDict_SetItemString(d, "BITS_PER_COMPONENT", x) < 0)
       
  1370 		return;
       
  1371 	Py_DECREF(x);
       
  1372 #endif
       
  1373 #ifdef CL_BLENDING
       
  1374 	x = PyInt_FromLong(CL_BLENDING);
       
  1375 	if (x == NULL || PyDict_SetItemString(d, "BLENDING", x) < 0)
       
  1376 		return;
       
  1377 	Py_DECREF(x);
       
  1378 #endif
       
  1379 #ifdef CL_BLOCK_SIZE
       
  1380 	x = PyInt_FromLong(CL_BLOCK_SIZE);
       
  1381 	if (x == NULL || PyDict_SetItemString(d, "BLOCK_SIZE", x) < 0)
       
  1382 		return;
       
  1383 	Py_DECREF(x);
       
  1384 #endif
       
  1385 #ifdef CL_BOTTOM_UP
       
  1386 	x = PyInt_FromLong(CL_BOTTOM_UP);
       
  1387 	if (x == NULL || PyDict_SetItemString(d, "BOTTOM_UP", x) < 0)
       
  1388 		return;
       
  1389 	Py_DECREF(x);
       
  1390 #endif
       
  1391 #ifdef CL_BUFFER_NOT_CREATED
       
  1392 	x = PyInt_FromLong(CL_BUFFER_NOT_CREATED);
       
  1393 	if (x == NULL || PyDict_SetItemString(d, "BUFFER_NOT_CREATED", x) < 0)
       
  1394 		return;
       
  1395 	Py_DECREF(x);
       
  1396 #endif
       
  1397 #ifdef CL_BUF_COMPRESSED
       
  1398 	x = PyInt_FromLong(CL_BUF_COMPRESSED);
       
  1399 	if (x == NULL || PyDict_SetItemString(d, "BUF_COMPRESSED", x) < 0)
       
  1400 		return;
       
  1401 	Py_DECREF(x);
       
  1402 #endif
       
  1403 #ifdef CL_BUF_DATA
       
  1404 	x = PyInt_FromLong(CL_BUF_DATA);
       
  1405 	if (x == NULL || PyDict_SetItemString(d, "BUF_DATA", x) < 0)
       
  1406 		return;
       
  1407 	Py_DECREF(x);
       
  1408 #endif
       
  1409 #ifdef CL_BUF_FRAME
       
  1410 	x = PyInt_FromLong(CL_BUF_FRAME);
       
  1411 	if (x == NULL || PyDict_SetItemString(d, "BUF_FRAME", x) < 0)
       
  1412 		return;
       
  1413 	Py_DECREF(x);
       
  1414 #endif
       
  1415 #ifdef CL_CHANNEL_POLICY
       
  1416 	x = PyInt_FromLong(CL_CHANNEL_POLICY);
       
  1417 	if (x == NULL || PyDict_SetItemString(d, "CHANNEL_POLICY", x) < 0)
       
  1418 		return;
       
  1419 	Py_DECREF(x);
       
  1420 #endif
       
  1421 #ifdef CL_CHROMA_THRESHOLD
       
  1422 	x = PyInt_FromLong(CL_CHROMA_THRESHOLD);
       
  1423 	if (x == NULL || PyDict_SetItemString(d, "CHROMA_THRESHOLD", x) < 0)
       
  1424 		return;
       
  1425 	Py_DECREF(x);
       
  1426 #endif
       
  1427 #ifdef CL_CODEC
       
  1428 	x = PyInt_FromLong(CL_CODEC);
       
  1429 	if (x == NULL || PyDict_SetItemString(d, "CODEC", x) < 0)
       
  1430 		return;
       
  1431 	Py_DECREF(x);
       
  1432 #endif
       
  1433 #ifdef CL_COMPONENTS
       
  1434 	x = PyInt_FromLong(CL_COMPONENTS);
       
  1435 	if (x == NULL || PyDict_SetItemString(d, "COMPONENTS", x) < 0)
       
  1436 		return;
       
  1437 	Py_DECREF(x);
       
  1438 #endif
       
  1439 #ifdef CL_COMPRESSED_BUFFER_SIZE
       
  1440 	x = PyInt_FromLong(CL_COMPRESSED_BUFFER_SIZE);
       
  1441 	if (x == NULL || PyDict_SetItemString(d, "COMPRESSED_BUFFER_SIZE", x) < 0)
       
  1442 		return;
       
  1443 	Py_DECREF(x);
       
  1444 #endif
       
  1445 #ifdef CL_COMPRESSION_RATIO
       
  1446 	x = PyInt_FromLong(CL_COMPRESSION_RATIO);
       
  1447 	if (x == NULL || PyDict_SetItemString(d, "COMPRESSION_RATIO", x) < 0)
       
  1448 		return;
       
  1449 	Py_DECREF(x);
       
  1450 #endif
       
  1451 #ifdef CL_COMPRESSOR
       
  1452 	x = PyInt_FromLong(CL_COMPRESSOR);
       
  1453 	if (x == NULL || PyDict_SetItemString(d, "COMPRESSOR", x) < 0)
       
  1454 		return;
       
  1455 	Py_DECREF(x);
       
  1456 #endif
       
  1457 #ifdef CL_CONTINUOUS_BLOCK
       
  1458 	x = PyInt_FromLong(CL_CONTINUOUS_BLOCK);
       
  1459 	if (x == NULL || PyDict_SetItemString(d, "CONTINUOUS_BLOCK", x) < 0)
       
  1460 		return;
       
  1461 	Py_DECREF(x);
       
  1462 #endif
       
  1463 #ifdef CL_CONTINUOUS_NONBLOCK
       
  1464 	x = PyInt_FromLong(CL_CONTINUOUS_NONBLOCK);
       
  1465 	if (x == NULL || PyDict_SetItemString(d, "CONTINUOUS_NONBLOCK", x) < 0)
       
  1466 		return;
       
  1467 	Py_DECREF(x);
       
  1468 #endif
       
  1469 #ifdef CL_COSMO_CODEC_CONTROL
       
  1470 	x = PyInt_FromLong(CL_COSMO_CODEC_CONTROL);
       
  1471 	if (x == NULL || PyDict_SetItemString(d, "COSMO_CODEC_CONTROL", x) < 0)
       
  1472 		return;
       
  1473 	Py_DECREF(x);
       
  1474 #endif
       
  1475 #ifdef CL_COSMO_NUM_PARAMS
       
  1476 	x = PyInt_FromLong(CL_COSMO_NUM_PARAMS);
       
  1477 	if (x == NULL || PyDict_SetItemString(d, "COSMO_NUM_PARAMS", x) < 0)
       
  1478 		return;
       
  1479 	Py_DECREF(x);
       
  1480 #endif
       
  1481 #ifdef CL_COSMO_VALUE_BASE
       
  1482 	x = PyInt_FromLong(CL_COSMO_VALUE_BASE);
       
  1483 	if (x == NULL || PyDict_SetItemString(d, "COSMO_VALUE_BASE", x) < 0)
       
  1484 		return;
       
  1485 	Py_DECREF(x);
       
  1486 #endif
       
  1487 #ifdef CL_COSMO_VIDEO_MANUAL_CONTROL
       
  1488 	x = PyInt_FromLong(CL_COSMO_VIDEO_MANUAL_CONTROL);
       
  1489 	if (x == NULL || PyDict_SetItemString(d, "COSMO_VIDEO_MANUAL_CONTROL", x) < 0)
       
  1490 		return;
       
  1491 	Py_DECREF(x);
       
  1492 #endif
       
  1493 #ifdef CL_COSMO_VIDEO_TRANSFER_MODE
       
  1494 	x = PyInt_FromLong(CL_COSMO_VIDEO_TRANSFER_MODE);
       
  1495 	if (x == NULL || PyDict_SetItemString(d, "COSMO_VIDEO_TRANSFER_MODE", x) < 0)
       
  1496 		return;
       
  1497 	Py_DECREF(x);
       
  1498 #endif
       
  1499 #ifdef CL_DATA
       
  1500 	x = PyInt_FromLong(CL_DATA);
       
  1501 	if (x == NULL || PyDict_SetItemString(d, "DATA", x) < 0)
       
  1502 		return;
       
  1503 	Py_DECREF(x);
       
  1504 #endif
       
  1505 #ifdef CL_DECOMPRESSOR
       
  1506 	x = PyInt_FromLong(CL_DECOMPRESSOR);
       
  1507 	if (x == NULL || PyDict_SetItemString(d, "DECOMPRESSOR", x) < 0)
       
  1508 		return;
       
  1509 	Py_DECREF(x);
       
  1510 #endif
       
  1511 #ifdef CL_DSO_ERROR
       
  1512 	x = PyInt_FromLong(CL_DSO_ERROR);
       
  1513 	if (x == NULL || PyDict_SetItemString(d, "DSO_ERROR", x) < 0)
       
  1514 		return;
       
  1515 	Py_DECREF(x);
       
  1516 #endif
       
  1517 #ifdef CL_EDGE_THRESHOLD
       
  1518 	x = PyInt_FromLong(CL_EDGE_THRESHOLD);
       
  1519 	if (x == NULL || PyDict_SetItemString(d, "EDGE_THRESHOLD", x) < 0)
       
  1520 		return;
       
  1521 	Py_DECREF(x);
       
  1522 #endif
       
  1523 #ifdef CL_ENABLE_IMAGEINFO
       
  1524 	x = PyInt_FromLong(CL_ENABLE_IMAGEINFO);
       
  1525 	if (x == NULL || PyDict_SetItemString(d, "ENABLE_IMAGEINFO", x) < 0)
       
  1526 		return;
       
  1527 	Py_DECREF(x);
       
  1528 #endif
       
  1529 #ifdef CL_END_OF_SEQUENCE
       
  1530 	x = PyInt_FromLong(CL_END_OF_SEQUENCE);
       
  1531 	if (x == NULL || PyDict_SetItemString(d, "END_OF_SEQUENCE", x) < 0)
       
  1532 		return;
       
  1533 	Py_DECREF(x);
       
  1534 #endif
       
  1535 #ifdef CL_ENUM_VALUE
       
  1536 	x = PyInt_FromLong(CL_ENUM_VALUE);
       
  1537 	if (x == NULL || PyDict_SetItemString(d, "ENUM_VALUE", x) < 0)
       
  1538 		return;
       
  1539 	Py_DECREF(x);
       
  1540 #endif
       
  1541 #ifdef CL_EXACT_COMPRESSION_RATIO
       
  1542 	x = PyInt_FromLong(CL_EXACT_COMPRESSION_RATIO);
       
  1543 	if (x == NULL || PyDict_SetItemString(d, "EXACT_COMPRESSION_RATIO", x) < 0)
       
  1544 		return;
       
  1545 	Py_DECREF(x);
       
  1546 #endif
       
  1547 #ifdef CL_EXTERNAL_DEVICE
       
  1548 	x = PyInt_FromLong((long) CL_EXTERNAL_DEVICE);
       
  1549 	if (x == NULL || PyDict_SetItemString(d, "EXTERNAL_DEVICE", x) < 0)
       
  1550 		return;
       
  1551 	Py_DECREF(x);
       
  1552 #endif
       
  1553 #ifdef CL_FLOATING_ENUM_VALUE
       
  1554 	x = PyInt_FromLong(CL_FLOATING_ENUM_VALUE);
       
  1555 	if (x == NULL || PyDict_SetItemString(d, "FLOATING_ENUM_VALUE", x) < 0)
       
  1556 		return;
       
  1557 	Py_DECREF(x);
       
  1558 #endif
       
  1559 #ifdef CL_FLOATING_RANGE_VALUE
       
  1560 	x = PyInt_FromLong(CL_FLOATING_RANGE_VALUE);
       
  1561 	if (x == NULL || PyDict_SetItemString(d, "FLOATING_RANGE_VALUE", x) < 0)
       
  1562 		return;
       
  1563 	Py_DECREF(x);
       
  1564 #endif
       
  1565 #ifdef CL_FORMAT
       
  1566 	x = PyInt_FromLong(CL_FORMAT);
       
  1567 	if (x == NULL || PyDict_SetItemString(d, "FORMAT", x) < 0)
       
  1568 		return;
       
  1569 	Py_DECREF(x);
       
  1570 #endif
       
  1571 #ifdef CL_FORMAT_ABGR
       
  1572 	x = PyInt_FromLong(CL_FORMAT_ABGR);
       
  1573 	if (x == NULL || PyDict_SetItemString(d, "FORMAT_ABGR", x) < 0)
       
  1574 		return;
       
  1575 	Py_DECREF(x);
       
  1576 #endif
       
  1577 #ifdef CL_FORMAT_BGR
       
  1578 	x = PyInt_FromLong(CL_FORMAT_BGR);
       
  1579 	if (x == NULL || PyDict_SetItemString(d, "FORMAT_BGR", x) < 0)
       
  1580 		return;
       
  1581 	Py_DECREF(x);
       
  1582 #endif
       
  1583 #ifdef CL_FORMAT_BGR233
       
  1584 	x = PyInt_FromLong(CL_FORMAT_BGR233);
       
  1585 	if (x == NULL || PyDict_SetItemString(d, "FORMAT_BGR233", x) < 0)
       
  1586 		return;
       
  1587 	Py_DECREF(x);
       
  1588 #endif
       
  1589 #ifdef CL_FORMAT_GRAYSCALE
       
  1590 	x = PyInt_FromLong(CL_FORMAT_GRAYSCALE);
       
  1591 	if (x == NULL || PyDict_SetItemString(d, "FORMAT_GRAYSCALE", x) < 0)
       
  1592 		return;
       
  1593 	Py_DECREF(x);
       
  1594 #endif
       
  1595 #ifdef CL_FORMAT_MONO
       
  1596 	x = PyInt_FromLong(CL_FORMAT_MONO);
       
  1597 	if (x == NULL || PyDict_SetItemString(d, "FORMAT_MONO", x) < 0)
       
  1598 		return;
       
  1599 	Py_DECREF(x);
       
  1600 #endif
       
  1601 #ifdef CL_FORMAT_RBG323
       
  1602 	x = PyInt_FromLong(CL_FORMAT_RBG323);
       
  1603 	if (x == NULL || PyDict_SetItemString(d, "FORMAT_RBG323", x) < 0)
       
  1604 		return;
       
  1605 	Py_DECREF(x);
       
  1606 #endif
       
  1607 #ifdef CL_FORMAT_STEREO_INTERLEAVED
       
  1608 	x = PyInt_FromLong(CL_FORMAT_STEREO_INTERLEAVED);
       
  1609 	if (x == NULL || PyDict_SetItemString(d, "FORMAT_STEREO_INTERLEAVED", x) < 0)
       
  1610 		return;
       
  1611 	Py_DECREF(x);
       
  1612 #endif
       
  1613 #ifdef CL_FORMAT_XBGR
       
  1614 	x = PyInt_FromLong(CL_FORMAT_XBGR);
       
  1615 	if (x == NULL || PyDict_SetItemString(d, "FORMAT_XBGR", x) < 0)
       
  1616 		return;
       
  1617 	Py_DECREF(x);
       
  1618 #endif
       
  1619 #ifdef CL_FORMAT_YCbCr
       
  1620 	x = PyInt_FromLong(CL_FORMAT_YCbCr);
       
  1621 	if (x == NULL || PyDict_SetItemString(d, "FORMAT_YCbCr", x) < 0)
       
  1622 		return;
       
  1623 	Py_DECREF(x);
       
  1624 #endif
       
  1625 #ifdef CL_FORMAT_YCbCr422
       
  1626 	x = PyInt_FromLong(CL_FORMAT_YCbCr422);
       
  1627 	if (x == NULL || PyDict_SetItemString(d, "FORMAT_YCbCr422", x) < 0)
       
  1628 		return;
       
  1629 	Py_DECREF(x);
       
  1630 #endif
       
  1631 #ifdef CL_FORMAT_YCbCr422DC
       
  1632 	x = PyInt_FromLong(CL_FORMAT_YCbCr422DC);
       
  1633 	if (x == NULL || PyDict_SetItemString(d, "FORMAT_YCbCr422DC", x) < 0)
       
  1634 		return;
       
  1635 	Py_DECREF(x);
       
  1636 #endif
       
  1637 #ifdef CL_FRAME
       
  1638 	x = PyInt_FromLong(CL_FRAME);
       
  1639 	if (x == NULL || PyDict_SetItemString(d, "FRAME", x) < 0)
       
  1640 		return;
       
  1641 	Py_DECREF(x);
       
  1642 #endif
       
  1643 #ifdef CL_FRAMES_PER_CHUNK
       
  1644 	x = PyInt_FromLong(CL_FRAMES_PER_CHUNK);
       
  1645 	if (x == NULL || PyDict_SetItemString(d, "FRAMES_PER_CHUNK", x) < 0)
       
  1646 		return;
       
  1647 	Py_DECREF(x);
       
  1648 #endif
       
  1649 #ifdef CL_FRAME_BUFFER_SIZE
       
  1650 	x = PyInt_FromLong(CL_FRAME_BUFFER_SIZE);
       
  1651 	if (x == NULL || PyDict_SetItemString(d, "FRAME_BUFFER_SIZE", x) < 0)
       
  1652 		return;
       
  1653 	Py_DECREF(x);
       
  1654 #endif
       
  1655 #ifdef CL_FRAME_BUFFER_SIZE_ZERO
       
  1656 	x = PyInt_FromLong(CL_FRAME_BUFFER_SIZE_ZERO);
       
  1657 	if (x == NULL || PyDict_SetItemString(d, "FRAME_BUFFER_SIZE_ZERO", x) < 0)
       
  1658 		return;
       
  1659 	Py_DECREF(x);
       
  1660 #endif
       
  1661 #ifdef CL_FRAME_INDEX
       
  1662 	x = PyInt_FromLong(CL_FRAME_INDEX);
       
  1663 	if (x == NULL || PyDict_SetItemString(d, "FRAME_INDEX", x) < 0)
       
  1664 		return;
       
  1665 	Py_DECREF(x);
       
  1666 #endif
       
  1667 #ifdef CL_FRAME_RATE
       
  1668 	x = PyInt_FromLong(CL_FRAME_RATE);
       
  1669 	if (x == NULL || PyDict_SetItemString(d, "FRAME_RATE", x) < 0)
       
  1670 		return;
       
  1671 	Py_DECREF(x);
       
  1672 #endif
       
  1673 #ifdef CL_FRAME_SIZE
       
  1674 	x = PyInt_FromLong(CL_FRAME_SIZE);
       
  1675 	if (x == NULL || PyDict_SetItemString(d, "FRAME_SIZE", x) < 0)
       
  1676 		return;
       
  1677 	Py_DECREF(x);
       
  1678 #endif
       
  1679 #ifdef CL_FRAME_TYPE
       
  1680 	x = PyInt_FromLong(CL_FRAME_TYPE);
       
  1681 	if (x == NULL || PyDict_SetItemString(d, "FRAME_TYPE", x) < 0)
       
  1682 		return;
       
  1683 	Py_DECREF(x);
       
  1684 #endif
       
  1685 #ifdef CL_G711_ALAW
       
  1686 	x = PyInt_FromLong(CL_G711_ALAW);
       
  1687 	if (x == NULL || PyDict_SetItemString(d, "G711_ALAW", x) < 0)
       
  1688 		return;
       
  1689 	Py_DECREF(x);
       
  1690 #endif
       
  1691 #ifdef CL_G711_ALAW_SOFTWARE
       
  1692 	x = PyInt_FromLong(CL_G711_ALAW_SOFTWARE);
       
  1693 	if (x == NULL || PyDict_SetItemString(d, "G711_ALAW_SOFTWARE", x) < 0)
       
  1694 		return;
       
  1695 	Py_DECREF(x);
       
  1696 #endif
       
  1697 #ifdef CL_G711_ULAW
       
  1698 	x = PyInt_FromLong(CL_G711_ULAW);
       
  1699 	if (x == NULL || PyDict_SetItemString(d, "G711_ULAW", x) < 0)
       
  1700 		return;
       
  1701 	Py_DECREF(x);
       
  1702 #endif
       
  1703 #ifdef CL_G711_ULAW_SOFTWARE
       
  1704 	x = PyInt_FromLong(CL_G711_ULAW_SOFTWARE);
       
  1705 	if (x == NULL || PyDict_SetItemString(d, "G711_ULAW_SOFTWARE", x) < 0)
       
  1706 		return;
       
  1707 	Py_DECREF(x);
       
  1708 #endif
       
  1709 #ifdef CL_GRAYSCALE
       
  1710 	x = PyInt_FromLong(CL_GRAYSCALE);
       
  1711 	if (x == NULL || PyDict_SetItemString(d, "GRAYSCALE", x) < 0)
       
  1712 		return;
       
  1713 	Py_DECREF(x);
       
  1714 #endif
       
  1715 #ifdef CL_HDCC
       
  1716 	x = PyInt_FromLong(CL_HDCC);
       
  1717 	if (x == NULL || PyDict_SetItemString(d, "HDCC", x) < 0)
       
  1718 		return;
       
  1719 	Py_DECREF(x);
       
  1720 #endif
       
  1721 #ifdef CL_HDCC_SAMPLES_PER_TILE
       
  1722 	x = PyInt_FromLong(CL_HDCC_SAMPLES_PER_TILE);
       
  1723 	if (x == NULL || PyDict_SetItemString(d, "HDCC_SAMPLES_PER_TILE", x) < 0)
       
  1724 		return;
       
  1725 	Py_DECREF(x);
       
  1726 #endif
       
  1727 #ifdef CL_HDCC_SOFTWARE
       
  1728 	x = PyInt_FromLong(CL_HDCC_SOFTWARE);
       
  1729 	if (x == NULL || PyDict_SetItemString(d, "HDCC_SOFTWARE", x) < 0)
       
  1730 		return;
       
  1731 	Py_DECREF(x);
       
  1732 #endif
       
  1733 #ifdef CL_HDCC_TILE_THRESHOLD
       
  1734 	x = PyInt_FromLong(CL_HDCC_TILE_THRESHOLD);
       
  1735 	if (x == NULL || PyDict_SetItemString(d, "HDCC_TILE_THRESHOLD", x) < 0)
       
  1736 		return;
       
  1737 	Py_DECREF(x);
       
  1738 #endif
       
  1739 #ifdef CL_HEADER_START_CODE
       
  1740 	x = PyInt_FromLong(CL_HEADER_START_CODE);
       
  1741 	if (x == NULL || PyDict_SetItemString(d, "HEADER_START_CODE", x) < 0)
       
  1742 		return;
       
  1743 	Py_DECREF(x);
       
  1744 #endif
       
  1745 #ifdef CL_IMAGEINFO_FIELDMASK
       
  1746 	x = PyInt_FromLong(CL_IMAGEINFO_FIELDMASK);
       
  1747 	if (x == NULL || PyDict_SetItemString(d, "IMAGEINFO_FIELDMASK", x) < 0)
       
  1748 		return;
       
  1749 	Py_DECREF(x);
       
  1750 #endif
       
  1751 #ifdef CL_IMAGE_CROP_BOTTOM
       
  1752 	x = PyInt_FromLong(CL_IMAGE_CROP_BOTTOM);
       
  1753 	if (x == NULL || PyDict_SetItemString(d, "IMAGE_CROP_BOTTOM", x) < 0)
       
  1754 		return;
       
  1755 	Py_DECREF(x);
       
  1756 #endif
       
  1757 #ifdef CL_IMAGE_CROP_LEFT
       
  1758 	x = PyInt_FromLong(CL_IMAGE_CROP_LEFT);
       
  1759 	if (x == NULL || PyDict_SetItemString(d, "IMAGE_CROP_LEFT", x) < 0)
       
  1760 		return;
       
  1761 	Py_DECREF(x);
       
  1762 #endif
       
  1763 #ifdef CL_IMAGE_CROP_RIGHT
       
  1764 	x = PyInt_FromLong(CL_IMAGE_CROP_RIGHT);
       
  1765 	if (x == NULL || PyDict_SetItemString(d, "IMAGE_CROP_RIGHT", x) < 0)
       
  1766 		return;
       
  1767 	Py_DECREF(x);
       
  1768 #endif
       
  1769 #ifdef CL_IMAGE_CROP_TOP
       
  1770 	x = PyInt_FromLong(CL_IMAGE_CROP_TOP);
       
  1771 	if (x == NULL || PyDict_SetItemString(d, "IMAGE_CROP_TOP", x) < 0)
       
  1772 		return;
       
  1773 	Py_DECREF(x);
       
  1774 #endif
       
  1775 #ifdef CL_IMAGE_HEIGHT
       
  1776 	x = PyInt_FromLong(CL_IMAGE_HEIGHT);
       
  1777 	if (x == NULL || PyDict_SetItemString(d, "IMAGE_HEIGHT", x) < 0)
       
  1778 		return;
       
  1779 	Py_DECREF(x);
       
  1780 #endif
       
  1781 #ifdef CL_IMAGE_WIDTH
       
  1782 	x = PyInt_FromLong(CL_IMAGE_WIDTH);
       
  1783 	if (x == NULL || PyDict_SetItemString(d, "IMAGE_WIDTH", x) < 0)
       
  1784 		return;
       
  1785 	Py_DECREF(x);
       
  1786 #endif
       
  1787 #ifdef CL_IMPACT_CODEC_CONTROL
       
  1788 	x = PyInt_FromLong(CL_IMPACT_CODEC_CONTROL);
       
  1789 	if (x == NULL || PyDict_SetItemString(d, "IMPACT_CODEC_CONTROL", x) < 0)
       
  1790 		return;
       
  1791 	Py_DECREF(x);
       
  1792 #endif
       
  1793 #ifdef CL_IMPACT_FRAME_INTERLEAVE
       
  1794 	x = PyInt_FromLong(CL_IMPACT_FRAME_INTERLEAVE);
       
  1795 	if (x == NULL || PyDict_SetItemString(d, "IMPACT_FRAME_INTERLEAVE", x) < 0)
       
  1796 		return;
       
  1797 	Py_DECREF(x);
       
  1798 #endif
       
  1799 #ifdef CL_IMPACT_NUM_PARAMS
       
  1800 	x = PyInt_FromLong(CL_IMPACT_NUM_PARAMS);
       
  1801 	if (x == NULL || PyDict_SetItemString(d, "IMPACT_NUM_PARAMS", x) < 0)
       
  1802 		return;
       
  1803 	Py_DECREF(x);
       
  1804 #endif
       
  1805 #ifdef CL_INTERNAL_FORMAT
       
  1806 	x = PyInt_FromLong(CL_INTERNAL_FORMAT);
       
  1807 	if (x == NULL || PyDict_SetItemString(d, "INTERNAL_FORMAT", x) < 0)
       
  1808 		return;
       
  1809 	Py_DECREF(x);
       
  1810 #endif
       
  1811 #ifdef CL_INTERNAL_IMAGE_HEIGHT
       
  1812 	x = PyInt_FromLong(CL_INTERNAL_IMAGE_HEIGHT);
       
  1813 	if (x == NULL || PyDict_SetItemString(d, "INTERNAL_IMAGE_HEIGHT", x) < 0)
       
  1814 		return;
       
  1815 	Py_DECREF(x);
       
  1816 #endif
       
  1817 #ifdef CL_INTERNAL_IMAGE_WIDTH
       
  1818 	x = PyInt_FromLong(CL_INTERNAL_IMAGE_WIDTH);
       
  1819 	if (x == NULL || PyDict_SetItemString(d, "INTERNAL_IMAGE_WIDTH", x) < 0)
       
  1820 		return;
       
  1821 	Py_DECREF(x);
       
  1822 #endif
       
  1823 #ifdef CL_INTRA
       
  1824 	x = PyInt_FromLong(CL_INTRA);
       
  1825 	if (x == NULL || PyDict_SetItemString(d, "INTRA", x) < 0)
       
  1826 		return;
       
  1827 	Py_DECREF(x);
       
  1828 #endif
       
  1829 #ifdef CL_JPEG
       
  1830 	x = PyInt_FromLong(CL_JPEG);
       
  1831 	if (x == NULL || PyDict_SetItemString(d, "JPEG", x) < 0)
       
  1832 		return;
       
  1833 	Py_DECREF(x);
       
  1834 #endif
       
  1835 #ifdef CL_JPEG_COSMO
       
  1836 	x = PyInt_FromLong(CL_JPEG_COSMO);
       
  1837 	if (x == NULL || PyDict_SetItemString(d, "JPEG_COSMO", x) < 0)
       
  1838 		return;
       
  1839 	Py_DECREF(x);
       
  1840 #endif
       
  1841 #ifdef CL_JPEG_ERROR
       
  1842 	x = PyInt_FromLong(CL_JPEG_ERROR);
       
  1843 	if (x == NULL || PyDict_SetItemString(d, "JPEG_ERROR", x) < 0)
       
  1844 		return;
       
  1845 	Py_DECREF(x);
       
  1846 #endif
       
  1847 #ifdef CL_JPEG_IMPACT
       
  1848 	x = PyInt_FromLong(CL_JPEG_IMPACT);
       
  1849 	if (x == NULL || PyDict_SetItemString(d, "JPEG_IMPACT", x) < 0)
       
  1850 		return;
       
  1851 	Py_DECREF(x);
       
  1852 #endif
       
  1853 #ifdef CL_JPEG_NUM_PARAMS
       
  1854 	x = PyInt_FromLong(CL_JPEG_NUM_PARAMS);
       
  1855 	if (x == NULL || PyDict_SetItemString(d, "JPEG_NUM_PARAMS", x) < 0)
       
  1856 		return;
       
  1857 	Py_DECREF(x);
       
  1858 #endif
       
  1859 #ifdef CL_JPEG_QUALITY_FACTOR
       
  1860 	x = PyInt_FromLong(CL_JPEG_QUALITY_FACTOR);
       
  1861 	if (x == NULL || PyDict_SetItemString(d, "JPEG_QUALITY_FACTOR", x) < 0)
       
  1862 		return;
       
  1863 	Py_DECREF(x);
       
  1864 #endif
       
  1865 #ifdef CL_JPEG_QUANTIZATION_TABLES
       
  1866 	x = PyInt_FromLong(CL_JPEG_QUANTIZATION_TABLES);
       
  1867 	if (x == NULL || PyDict_SetItemString(d, "JPEG_QUANTIZATION_TABLES", x) < 0)
       
  1868 		return;
       
  1869 	Py_DECREF(x);
       
  1870 #endif
       
  1871 #ifdef CL_JPEG_SOFTWARE
       
  1872 	x = PyInt_FromLong(CL_JPEG_SOFTWARE);
       
  1873 	if (x == NULL || PyDict_SetItemString(d, "JPEG_SOFTWARE", x) < 0)
       
  1874 		return;
       
  1875 	Py_DECREF(x);
       
  1876 #endif
       
  1877 #ifdef CL_JPEG_STREAM_HEADERS
       
  1878 	x = PyInt_FromLong(CL_JPEG_STREAM_HEADERS);
       
  1879 	if (x == NULL || PyDict_SetItemString(d, "JPEG_STREAM_HEADERS", x) < 0)
       
  1880 		return;
       
  1881 	Py_DECREF(x);
       
  1882 #endif
       
  1883 #ifdef CL_KEYFRAME
       
  1884 	x = PyInt_FromLong(CL_KEYFRAME);
       
  1885 	if (x == NULL || PyDict_SetItemString(d, "KEYFRAME", x) < 0)
       
  1886 		return;
       
  1887 	Py_DECREF(x);
       
  1888 #endif
       
  1889 #ifdef CL_KEYFRAME_DISTANCE
       
  1890 	x = PyInt_FromLong(CL_KEYFRAME_DISTANCE);
       
  1891 	if (x == NULL || PyDict_SetItemString(d, "KEYFRAME_DISTANCE", x) < 0)
       
  1892 		return;
       
  1893 	Py_DECREF(x);
       
  1894 #endif
       
  1895 #ifdef CL_LAST_FRAME_INDEX
       
  1896 	x = PyInt_FromLong(CL_LAST_FRAME_INDEX);
       
  1897 	if (x == NULL || PyDict_SetItemString(d, "LAST_FRAME_INDEX", x) < 0)
       
  1898 		return;
       
  1899 	Py_DECREF(x);
       
  1900 #endif
       
  1901 #ifdef CL_LAYER
       
  1902 	x = PyInt_FromLong(CL_LAYER);
       
  1903 	if (x == NULL || PyDict_SetItemString(d, "LAYER", x) < 0)
       
  1904 		return;
       
  1905 	Py_DECREF(x);
       
  1906 #endif
       
  1907 #ifdef CL_LUMA_THRESHOLD
       
  1908 	x = PyInt_FromLong(CL_LUMA_THRESHOLD);
       
  1909 	if (x == NULL || PyDict_SetItemString(d, "LUMA_THRESHOLD", x) < 0)
       
  1910 		return;
       
  1911 	Py_DECREF(x);
       
  1912 #endif
       
  1913 #ifdef CL_MAX_NUMBER_OF_AUDIO_ALGORITHMS
       
  1914 	x = PyInt_FromLong(CL_MAX_NUMBER_OF_AUDIO_ALGORITHMS);
       
  1915 	if (x == NULL || PyDict_SetItemString(d, "MAX_NUMBER_OF_AUDIO_ALGORITHMS", x) < 0)
       
  1916 		return;
       
  1917 	Py_DECREF(x);
       
  1918 #endif
       
  1919 #ifdef CL_MAX_NUMBER_OF_FORMATS
       
  1920 	x = PyInt_FromLong(CL_MAX_NUMBER_OF_FORMATS);
       
  1921 	if (x == NULL || PyDict_SetItemString(d, "MAX_NUMBER_OF_FORMATS", x) < 0)
       
  1922 		return;
       
  1923 	Py_DECREF(x);
       
  1924 #endif
       
  1925 #ifdef CL_MAX_NUMBER_OF_ORIGINAL_FORMATS
       
  1926 	x = PyInt_FromLong(CL_MAX_NUMBER_OF_ORIGINAL_FORMATS);
       
  1927 	if (x == NULL || PyDict_SetItemString(d, "MAX_NUMBER_OF_ORIGINAL_FORMATS", x) < 0)
       
  1928 		return;
       
  1929 	Py_DECREF(x);
       
  1930 #endif
       
  1931 #ifdef CL_MAX_NUMBER_OF_PARAMS
       
  1932 	x = PyInt_FromLong(CL_MAX_NUMBER_OF_PARAMS);
       
  1933 	if (x == NULL || PyDict_SetItemString(d, "MAX_NUMBER_OF_PARAMS", x) < 0)
       
  1934 		return;
       
  1935 	Py_DECREF(x);
       
  1936 #endif
       
  1937 #ifdef CL_MAX_NUMBER_OF_VIDEO_ALGORITHMS
       
  1938 	x = PyInt_FromLong(CL_MAX_NUMBER_OF_VIDEO_ALGORITHMS);
       
  1939 	if (x == NULL || PyDict_SetItemString(d, "MAX_NUMBER_OF_VIDEO_ALGORITHMS", x) < 0)
       
  1940 		return;
       
  1941 	Py_DECREF(x);
       
  1942 #endif
       
  1943 #ifdef CL_MONO
       
  1944 	x = PyInt_FromLong(CL_MONO);
       
  1945 	if (x == NULL || PyDict_SetItemString(d, "MONO", x) < 0)
       
  1946 		return;
       
  1947 	Py_DECREF(x);
       
  1948 #endif
       
  1949 #ifdef CL_MPEG1_AUDIO_AWARE
       
  1950 	x = PyInt_FromLong(CL_MPEG1_AUDIO_AWARE);
       
  1951 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_AWARE", x) < 0)
       
  1952 		return;
       
  1953 	Py_DECREF(x);
       
  1954 #endif
       
  1955 #ifdef CL_MPEG1_AUDIO_LAYER
       
  1956 	x = PyInt_FromLong(CL_MPEG1_AUDIO_LAYER);
       
  1957 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_LAYER", x) < 0)
       
  1958 		return;
       
  1959 	Py_DECREF(x);
       
  1960 #endif
       
  1961 #ifdef CL_MPEG1_AUDIO_LAYER_I
       
  1962 	x = PyInt_FromLong(CL_MPEG1_AUDIO_LAYER_I);
       
  1963 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_LAYER_I", x) < 0)
       
  1964 		return;
       
  1965 	Py_DECREF(x);
       
  1966 #endif
       
  1967 #ifdef CL_MPEG1_AUDIO_LAYER_II
       
  1968 	x = PyInt_FromLong(CL_MPEG1_AUDIO_LAYER_II);
       
  1969 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_LAYER_II", x) < 0)
       
  1970 		return;
       
  1971 	Py_DECREF(x);
       
  1972 #endif
       
  1973 #ifdef CL_MPEG1_AUDIO_MODE
       
  1974 	x = PyInt_FromLong(CL_MPEG1_AUDIO_MODE);
       
  1975 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_MODE", x) < 0)
       
  1976 		return;
       
  1977 	Py_DECREF(x);
       
  1978 #endif
       
  1979 #ifdef CL_MPEG1_AUDIO_MODE_DUAL
       
  1980 	x = PyInt_FromLong(CL_MPEG1_AUDIO_MODE_DUAL);
       
  1981 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_MODE_DUAL", x) < 0)
       
  1982 		return;
       
  1983 	Py_DECREF(x);
       
  1984 #endif
       
  1985 #ifdef CL_MPEG1_AUDIO_MODE_JOINT
       
  1986 	x = PyInt_FromLong(CL_MPEG1_AUDIO_MODE_JOINT);
       
  1987 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_MODE_JOINT", x) < 0)
       
  1988 		return;
       
  1989 	Py_DECREF(x);
       
  1990 #endif
       
  1991 #ifdef CL_MPEG1_AUDIO_MODE_SINGLE
       
  1992 	x = PyInt_FromLong(CL_MPEG1_AUDIO_MODE_SINGLE);
       
  1993 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_MODE_SINGLE", x) < 0)
       
  1994 		return;
       
  1995 	Py_DECREF(x);
       
  1996 #endif
       
  1997 #ifdef CL_MPEG1_AUDIO_MODE_STEREO
       
  1998 	x = PyInt_FromLong(CL_MPEG1_AUDIO_MODE_STEREO);
       
  1999 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_MODE_STEREO", x) < 0)
       
  2000 		return;
       
  2001 	Py_DECREF(x);
       
  2002 #endif
       
  2003 #ifdef CL_MPEG1_AUDIO_SOFTWARE
       
  2004 	x = PyInt_FromLong(CL_MPEG1_AUDIO_SOFTWARE);
       
  2005 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_AUDIO_SOFTWARE", x) < 0)
       
  2006 		return;
       
  2007 	Py_DECREF(x);
       
  2008 #endif
       
  2009 #ifdef CL_MPEG1_END_OF_STREAM
       
  2010 	x = PyInt_FromLong(CL_MPEG1_END_OF_STREAM);
       
  2011 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_END_OF_STREAM", x) < 0)
       
  2012 		return;
       
  2013 	Py_DECREF(x);
       
  2014 #endif
       
  2015 #ifdef CL_MPEG1_ERROR
       
  2016 	x = PyInt_FromLong(CL_MPEG1_ERROR);
       
  2017 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_ERROR", x) < 0)
       
  2018 		return;
       
  2019 	Py_DECREF(x);
       
  2020 #endif
       
  2021 #ifdef CL_MPEG1_NUM_PARAMS
       
  2022 	x = PyInt_FromLong(CL_MPEG1_NUM_PARAMS);
       
  2023 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_NUM_PARAMS", x) < 0)
       
  2024 		return;
       
  2025 	Py_DECREF(x);
       
  2026 #endif
       
  2027 #ifdef CL_MPEG1_VIDEO_M
       
  2028 	x = PyInt_FromLong(CL_MPEG1_VIDEO_M);
       
  2029 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_M", x) < 0)
       
  2030 		return;
       
  2031 	Py_DECREF(x);
       
  2032 #endif
       
  2033 #ifdef CL_MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_B_X
       
  2034 	x = PyInt_FromLong(CL_MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_B_X);
       
  2035 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_B_X", x) < 0)
       
  2036 		return;
       
  2037 	Py_DECREF(x);
       
  2038 #endif
       
  2039 #ifdef CL_MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_B_Y
       
  2040 	x = PyInt_FromLong(CL_MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_B_Y);
       
  2041 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_B_Y", x) < 0)
       
  2042 		return;
       
  2043 	Py_DECREF(x);
       
  2044 #endif
       
  2045 #ifdef CL_MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_P_X
       
  2046 	x = PyInt_FromLong(CL_MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_P_X);
       
  2047 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_P_X", x) < 0)
       
  2048 		return;
       
  2049 	Py_DECREF(x);
       
  2050 #endif
       
  2051 #ifdef CL_MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_P_Y
       
  2052 	x = PyInt_FromLong(CL_MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_P_Y);
       
  2053 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_MAX_MOTION_VECTOR_LENGTH_P_Y", x) < 0)
       
  2054 		return;
       
  2055 	Py_DECREF(x);
       
  2056 #endif
       
  2057 #ifdef CL_MPEG1_VIDEO_N
       
  2058 	x = PyInt_FromLong(CL_MPEG1_VIDEO_N);
       
  2059 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_N", x) < 0)
       
  2060 		return;
       
  2061 	Py_DECREF(x);
       
  2062 #endif
       
  2063 #ifdef CL_MPEG1_VIDEO_SOFTNESS
       
  2064 	x = PyInt_FromLong(CL_MPEG1_VIDEO_SOFTNESS);
       
  2065 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_SOFTNESS", x) < 0)
       
  2066 		return;
       
  2067 	Py_DECREF(x);
       
  2068 #endif
       
  2069 #ifdef CL_MPEG1_VIDEO_SOFTNESS_MAXIMUM
       
  2070 	x = PyInt_FromLong(CL_MPEG1_VIDEO_SOFTNESS_MAXIMUM);
       
  2071 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_SOFTNESS_MAXIMUM", x) < 0)
       
  2072 		return;
       
  2073 	Py_DECREF(x);
       
  2074 #endif
       
  2075 #ifdef CL_MPEG1_VIDEO_SOFTNESS_MEDIUM
       
  2076 	x = PyInt_FromLong(CL_MPEG1_VIDEO_SOFTNESS_MEDIUM);
       
  2077 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_SOFTNESS_MEDIUM", x) < 0)
       
  2078 		return;
       
  2079 	Py_DECREF(x);
       
  2080 #endif
       
  2081 #ifdef CL_MPEG1_VIDEO_SOFTNESS_NONE
       
  2082 	x = PyInt_FromLong(CL_MPEG1_VIDEO_SOFTNESS_NONE);
       
  2083 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_SOFTNESS_NONE", x) < 0)
       
  2084 		return;
       
  2085 	Py_DECREF(x);
       
  2086 #endif
       
  2087 #ifdef CL_MPEG1_VIDEO_SOFTWARE
       
  2088 	x = PyInt_FromLong(CL_MPEG1_VIDEO_SOFTWARE);
       
  2089 	if (x == NULL || PyDict_SetItemString(d, "MPEG1_VIDEO_SOFTWARE", x) < 0)
       
  2090 		return;
       
  2091 	Py_DECREF(x);
       
  2092 #endif
       
  2093 #ifdef CL_MPEG_VIDEO
       
  2094 	x = PyInt_FromLong(CL_MPEG_VIDEO);
       
  2095 	if (x == NULL || PyDict_SetItemString(d, "MPEG_VIDEO", x) < 0)
       
  2096 		return;
       
  2097 	Py_DECREF(x);
       
  2098 #endif
       
  2099 #ifdef CL_MULTIRATE_AWARE
       
  2100 	x = PyInt_FromLong(CL_MULTIRATE_AWARE);
       
  2101 	if (x == NULL || PyDict_SetItemString(d, "MULTIRATE_AWARE", x) < 0)
       
  2102 		return;
       
  2103 	Py_DECREF(x);
       
  2104 #endif
       
  2105 #ifdef CL_MVC1
       
  2106 	x = PyInt_FromLong(CL_MVC1);
       
  2107 	if (x == NULL || PyDict_SetItemString(d, "MVC1", x) < 0)
       
  2108 		return;
       
  2109 	Py_DECREF(x);
       
  2110 #endif
       
  2111 #ifdef CL_MVC1_SOFTWARE
       
  2112 	x = PyInt_FromLong(CL_MVC1_SOFTWARE);
       
  2113 	if (x == NULL || PyDict_SetItemString(d, "MVC1_SOFTWARE", x) < 0)
       
  2114 		return;
       
  2115 	Py_DECREF(x);
       
  2116 #endif
       
  2117 #ifdef CL_MVC2
       
  2118 	x = PyInt_FromLong(CL_MVC2);
       
  2119 	if (x == NULL || PyDict_SetItemString(d, "MVC2", x) < 0)
       
  2120 		return;
       
  2121 	Py_DECREF(x);
       
  2122 #endif
       
  2123 #ifdef CL_MVC2_BLENDING
       
  2124 	x = PyInt_FromLong(CL_MVC2_BLENDING);
       
  2125 	if (x == NULL || PyDict_SetItemString(d, "MVC2_BLENDING", x) < 0)
       
  2126 		return;
       
  2127 	Py_DECREF(x);
       
  2128 #endif
       
  2129 #ifdef CL_MVC2_BLENDING_OFF
       
  2130 	x = PyInt_FromLong(CL_MVC2_BLENDING_OFF);
       
  2131 	if (x == NULL || PyDict_SetItemString(d, "MVC2_BLENDING_OFF", x) < 0)
       
  2132 		return;
       
  2133 	Py_DECREF(x);
       
  2134 #endif
       
  2135 #ifdef CL_MVC2_BLENDING_ON
       
  2136 	x = PyInt_FromLong(CL_MVC2_BLENDING_ON);
       
  2137 	if (x == NULL || PyDict_SetItemString(d, "MVC2_BLENDING_ON", x) < 0)
       
  2138 		return;
       
  2139 	Py_DECREF(x);
       
  2140 #endif
       
  2141 #ifdef CL_MVC2_CHROMA_THRESHOLD
       
  2142 	x = PyInt_FromLong(CL_MVC2_CHROMA_THRESHOLD);
       
  2143 	if (x == NULL || PyDict_SetItemString(d, "MVC2_CHROMA_THRESHOLD", x) < 0)
       
  2144 		return;
       
  2145 	Py_DECREF(x);
       
  2146 #endif
       
  2147 #ifdef CL_MVC2_EDGE_THRESHOLD
       
  2148 	x = PyInt_FromLong(CL_MVC2_EDGE_THRESHOLD);
       
  2149 	if (x == NULL || PyDict_SetItemString(d, "MVC2_EDGE_THRESHOLD", x) < 0)
       
  2150 		return;
       
  2151 	Py_DECREF(x);
       
  2152 #endif
       
  2153 #ifdef CL_MVC2_ERROR
       
  2154 	x = PyInt_FromLong(CL_MVC2_ERROR);
       
  2155 	if (x == NULL || PyDict_SetItemString(d, "MVC2_ERROR", x) < 0)
       
  2156 		return;
       
  2157 	Py_DECREF(x);
       
  2158 #endif
       
  2159 #ifdef CL_MVC2_LUMA_THRESHOLD
       
  2160 	x = PyInt_FromLong(CL_MVC2_LUMA_THRESHOLD);
       
  2161 	if (x == NULL || PyDict_SetItemString(d, "MVC2_LUMA_THRESHOLD", x) < 0)
       
  2162 		return;
       
  2163 	Py_DECREF(x);
       
  2164 #endif
       
  2165 #ifdef CL_MVC2_SOFTWARE
       
  2166 	x = PyInt_FromLong(CL_MVC2_SOFTWARE);
       
  2167 	if (x == NULL || PyDict_SetItemString(d, "MVC2_SOFTWARE", x) < 0)
       
  2168 		return;
       
  2169 	Py_DECREF(x);
       
  2170 #endif
       
  2171 #ifdef CL_MVC3_QUALITY_LEVEL
       
  2172 	x = PyInt_FromLong(CL_MVC3_QUALITY_LEVEL);
       
  2173 	if (x == NULL || PyDict_SetItemString(d, "MVC3_QUALITY_LEVEL", x) < 0)
       
  2174 		return;
       
  2175 	Py_DECREF(x);
       
  2176 #endif
       
  2177 #ifdef CL_MVC3_SOFTWARE
       
  2178 	x = PyInt_FromLong(CL_MVC3_SOFTWARE);
       
  2179 	if (x == NULL || PyDict_SetItemString(d, "MVC3_SOFTWARE", x) < 0)
       
  2180 		return;
       
  2181 	Py_DECREF(x);
       
  2182 #endif
       
  2183 #ifdef CL_NEXT_NOT_AVAILABLE
       
  2184 	x = PyInt_FromLong(CL_NEXT_NOT_AVAILABLE);
       
  2185 	if (x == NULL || PyDict_SetItemString(d, "NEXT_NOT_AVAILABLE", x) < 0)
       
  2186 		return;
       
  2187 	Py_DECREF(x);
       
  2188 #endif
       
  2189 #ifdef CL_NOISE_MARGIN
       
  2190 	x = PyInt_FromLong(CL_NOISE_MARGIN);
       
  2191 	if (x == NULL || PyDict_SetItemString(d, "NOISE_MARGIN", x) < 0)
       
  2192 		return;
       
  2193 	Py_DECREF(x);
       
  2194 #endif
       
  2195 #ifdef CL_NONE
       
  2196 	x = PyInt_FromLong(CL_NONE);
       
  2197 	if (x == NULL || PyDict_SetItemString(d, "NONE", x) < 0)
       
  2198 		return;
       
  2199 	Py_DECREF(x);
       
  2200 #endif
       
  2201 #ifdef CL_NUMBER_OF_FORMATS
       
  2202 	x = PyInt_FromLong(CL_NUMBER_OF_FORMATS);
       
  2203 	if (x == NULL || PyDict_SetItemString(d, "NUMBER_OF_FORMATS", x) < 0)
       
  2204 		return;
       
  2205 	Py_DECREF(x);
       
  2206 #endif
       
  2207 #ifdef CL_NUMBER_OF_FRAMES
       
  2208 	x = PyInt_FromLong(CL_NUMBER_OF_FRAMES);
       
  2209 	if (x == NULL || PyDict_SetItemString(d, "NUMBER_OF_FRAMES", x) < 0)
       
  2210 		return;
       
  2211 	Py_DECREF(x);
       
  2212 #endif
       
  2213 #ifdef CL_NUMBER_OF_PARAMS
       
  2214 	x = PyInt_FromLong(CL_NUMBER_OF_PARAMS);
       
  2215 	if (x == NULL || PyDict_SetItemString(d, "NUMBER_OF_PARAMS", x) < 0)
       
  2216 		return;
       
  2217 	Py_DECREF(x);
       
  2218 #endif
       
  2219 #ifdef CL_NUMBER_OF_PARAMS_FREEZE
       
  2220 	x = PyInt_FromLong(CL_NUMBER_OF_PARAMS_FREEZE);
       
  2221 	if (x == NULL || PyDict_SetItemString(d, "NUMBER_OF_PARAMS_FREEZE", x) < 0)
       
  2222 		return;
       
  2223 	Py_DECREF(x);
       
  2224 #endif
       
  2225 #ifdef CL_NUMBER_OF_VIDEO_FORMATS
       
  2226 	x = PyInt_FromLong(CL_NUMBER_OF_VIDEO_FORMATS);
       
  2227 	if (x == NULL || PyDict_SetItemString(d, "NUMBER_OF_VIDEO_FORMATS", x) < 0)
       
  2228 		return;
       
  2229 	Py_DECREF(x);
       
  2230 #endif
       
  2231 #ifdef CL_ORIENTATION
       
  2232 	x = PyInt_FromLong(CL_ORIENTATION);
       
  2233 	if (x == NULL || PyDict_SetItemString(d, "ORIENTATION", x) < 0)
       
  2234 		return;
       
  2235 	Py_DECREF(x);
       
  2236 #endif
       
  2237 #ifdef CL_ORIGINAL_FORMAT
       
  2238 	x = PyInt_FromLong(CL_ORIGINAL_FORMAT);
       
  2239 	if (x == NULL || PyDict_SetItemString(d, "ORIGINAL_FORMAT", x) < 0)
       
  2240 		return;
       
  2241 	Py_DECREF(x);
       
  2242 #endif
       
  2243 #ifdef CL_PARAM_OUT_OF_RANGE
       
  2244 	x = PyInt_FromLong(CL_PARAM_OUT_OF_RANGE);
       
  2245 	if (x == NULL || PyDict_SetItemString(d, "PARAM_OUT_OF_RANGE", x) < 0)
       
  2246 		return;
       
  2247 	Py_DECREF(x);
       
  2248 #endif
       
  2249 #ifdef CL_PIXEL_ASPECT
       
  2250 	x = PyInt_FromLong(CL_PIXEL_ASPECT);
       
  2251 	if (x == NULL || PyDict_SetItemString(d, "PIXEL_ASPECT", x) < 0)
       
  2252 		return;
       
  2253 	Py_DECREF(x);
       
  2254 #endif
       
  2255 #ifdef CL_PREDICTED
       
  2256 	x = PyInt_FromLong(CL_PREDICTED);
       
  2257 	if (x == NULL || PyDict_SetItemString(d, "PREDICTED", x) < 0)
       
  2258 		return;
       
  2259 	Py_DECREF(x);
       
  2260 #endif
       
  2261 #ifdef CL_PREROLL
       
  2262 	x = PyInt_FromLong(CL_PREROLL);
       
  2263 	if (x == NULL || PyDict_SetItemString(d, "PREROLL", x) < 0)
       
  2264 		return;
       
  2265 	Py_DECREF(x);
       
  2266 #endif
       
  2267 #ifdef CL_QUALITY_FACTOR
       
  2268 	x = PyInt_FromLong(CL_QUALITY_FACTOR);
       
  2269 	if (x == NULL || PyDict_SetItemString(d, "QUALITY_FACTOR", x) < 0)
       
  2270 		return;
       
  2271 	Py_DECREF(x);
       
  2272 #endif
       
  2273 #ifdef CL_QUALITY_LEVEL
       
  2274 	x = PyInt_FromLong(CL_QUALITY_LEVEL);
       
  2275 	if (x == NULL || PyDict_SetItemString(d, "QUALITY_LEVEL", x) < 0)
       
  2276 		return;
       
  2277 	Py_DECREF(x);
       
  2278 #endif
       
  2279 #ifdef CL_QUALITY_SPATIAL
       
  2280 	x = PyInt_FromLong(CL_QUALITY_SPATIAL);
       
  2281 	if (x == NULL || PyDict_SetItemString(d, "QUALITY_SPATIAL", x) < 0)
       
  2282 		return;
       
  2283 	Py_DECREF(x);
       
  2284 #endif
       
  2285 #ifdef CL_QUALITY_TEMPORAL
       
  2286 	x = PyInt_FromLong(CL_QUALITY_TEMPORAL);
       
  2287 	if (x == NULL || PyDict_SetItemString(d, "QUALITY_TEMPORAL", x) < 0)
       
  2288 		return;
       
  2289 	Py_DECREF(x);
       
  2290 #endif
       
  2291 #ifdef CL_QUANTIZATION_TABLES
       
  2292 	x = PyInt_FromLong(CL_QUANTIZATION_TABLES);
       
  2293 	if (x == NULL || PyDict_SetItemString(d, "QUANTIZATION_TABLES", x) < 0)
       
  2294 		return;
       
  2295 	Py_DECREF(x);
       
  2296 #endif
       
  2297 #ifdef CL_RANGE_VALUE
       
  2298 	x = PyInt_FromLong(CL_RANGE_VALUE);
       
  2299 	if (x == NULL || PyDict_SetItemString(d, "RANGE_VALUE", x) < 0)
       
  2300 		return;
       
  2301 	Py_DECREF(x);
       
  2302 #endif
       
  2303 #ifdef CL_RGB
       
  2304 	x = PyInt_FromLong(CL_RGB);
       
  2305 	if (x == NULL || PyDict_SetItemString(d, "RGB", x) < 0)
       
  2306 		return;
       
  2307 	Py_DECREF(x);
       
  2308 #endif
       
  2309 #ifdef CL_RGB332
       
  2310 	x = PyInt_FromLong(CL_RGB332);
       
  2311 	if (x == NULL || PyDict_SetItemString(d, "RGB332", x) < 0)
       
  2312 		return;
       
  2313 	Py_DECREF(x);
       
  2314 #endif
       
  2315 #ifdef CL_RGB8
       
  2316 	x = PyInt_FromLong(CL_RGB8);
       
  2317 	if (x == NULL || PyDict_SetItemString(d, "RGB8", x) < 0)
       
  2318 		return;
       
  2319 	Py_DECREF(x);
       
  2320 #endif
       
  2321 #ifdef CL_RGBA
       
  2322 	x = PyInt_FromLong(CL_RGBA);
       
  2323 	if (x == NULL || PyDict_SetItemString(d, "RGBA", x) < 0)
       
  2324 		return;
       
  2325 	Py_DECREF(x);
       
  2326 #endif
       
  2327 #ifdef CL_RGBX
       
  2328 	x = PyInt_FromLong(CL_RGBX);
       
  2329 	if (x == NULL || PyDict_SetItemString(d, "RGBX", x) < 0)
       
  2330 		return;
       
  2331 	Py_DECREF(x);
       
  2332 #endif
       
  2333 #ifdef CL_RLE
       
  2334 	x = PyInt_FromLong(CL_RLE);
       
  2335 	if (x == NULL || PyDict_SetItemString(d, "RLE", x) < 0)
       
  2336 		return;
       
  2337 	Py_DECREF(x);
       
  2338 #endif
       
  2339 #ifdef CL_RLE24
       
  2340 	x = PyInt_FromLong(CL_RLE24);
       
  2341 	if (x == NULL || PyDict_SetItemString(d, "RLE24", x) < 0)
       
  2342 		return;
       
  2343 	Py_DECREF(x);
       
  2344 #endif
       
  2345 #ifdef CL_RLE24_SOFTWARE
       
  2346 	x = PyInt_FromLong(CL_RLE24_SOFTWARE);
       
  2347 	if (x == NULL || PyDict_SetItemString(d, "RLE24_SOFTWARE", x) < 0)
       
  2348 		return;
       
  2349 	Py_DECREF(x);
       
  2350 #endif
       
  2351 #ifdef CL_RLE_SOFTWARE
       
  2352 	x = PyInt_FromLong(CL_RLE_SOFTWARE);
       
  2353 	if (x == NULL || PyDict_SetItemString(d, "RLE_SOFTWARE", x) < 0)
       
  2354 		return;
       
  2355 	Py_DECREF(x);
       
  2356 #endif
       
  2357 #ifdef CL_RTR
       
  2358 	x = PyInt_FromLong(CL_RTR);
       
  2359 	if (x == NULL || PyDict_SetItemString(d, "RTR", x) < 0)
       
  2360 		return;
       
  2361 	Py_DECREF(x);
       
  2362 #endif
       
  2363 #ifdef CL_RTR1
       
  2364 	x = PyInt_FromLong(CL_RTR1);
       
  2365 	if (x == NULL || PyDict_SetItemString(d, "RTR1", x) < 0)
       
  2366 		return;
       
  2367 	Py_DECREF(x);
       
  2368 #endif
       
  2369 #ifdef CL_RTR_QUALITY_LEVEL
       
  2370 	x = PyInt_FromLong(CL_RTR_QUALITY_LEVEL);
       
  2371 	if (x == NULL || PyDict_SetItemString(d, "RTR_QUALITY_LEVEL", x) < 0)
       
  2372 		return;
       
  2373 	Py_DECREF(x);
       
  2374 #endif
       
  2375 #ifdef CL_SAMPLES_PER_TILE
       
  2376 	x = PyInt_FromLong(CL_SAMPLES_PER_TILE);
       
  2377 	if (x == NULL || PyDict_SetItemString(d, "SAMPLES_PER_TILE", x) < 0)
       
  2378 		return;
       
  2379 	Py_DECREF(x);
       
  2380 #endif
       
  2381 #ifdef CL_SCHEME_BUSY
       
  2382 	x = PyInt_FromLong(CL_SCHEME_BUSY);
       
  2383 	if (x == NULL || PyDict_SetItemString(d, "SCHEME_BUSY", x) < 0)
       
  2384 		return;
       
  2385 	Py_DECREF(x);
       
  2386 #endif
       
  2387 #ifdef CL_SCHEME_NOT_AVAILABLE
       
  2388 	x = PyInt_FromLong(CL_SCHEME_NOT_AVAILABLE);
       
  2389 	if (x == NULL || PyDict_SetItemString(d, "SCHEME_NOT_AVAILABLE", x) < 0)
       
  2390 		return;
       
  2391 	Py_DECREF(x);
       
  2392 #endif
       
  2393 #ifdef CL_SPEED
       
  2394 	x = PyInt_FromLong(CL_SPEED);
       
  2395 	if (x == NULL || PyDict_SetItemString(d, "SPEED", x) < 0)
       
  2396 		return;
       
  2397 	Py_DECREF(x);
       
  2398 #endif
       
  2399 #ifdef CL_STEREO_INTERLEAVED
       
  2400 	x = PyInt_FromLong(CL_STEREO_INTERLEAVED);
       
  2401 	if (x == NULL || PyDict_SetItemString(d, "STEREO_INTERLEAVED", x) < 0)
       
  2402 		return;
       
  2403 	Py_DECREF(x);
       
  2404 #endif
       
  2405 #ifdef CL_STREAM_HEADERS
       
  2406 	x = PyInt_FromLong(CL_STREAM_HEADERS);
       
  2407 	if (x == NULL || PyDict_SetItemString(d, "STREAM_HEADERS", x) < 0)
       
  2408 		return;
       
  2409 	Py_DECREF(x);
       
  2410 #endif
       
  2411 #ifdef CL_TILE_THRESHOLD
       
  2412 	x = PyInt_FromLong(CL_TILE_THRESHOLD);
       
  2413 	if (x == NULL || PyDict_SetItemString(d, "TILE_THRESHOLD", x) < 0)
       
  2414 		return;
       
  2415 	Py_DECREF(x);
       
  2416 #endif
       
  2417 #ifdef CL_TOP_DOWN
       
  2418 	x = PyInt_FromLong(CL_TOP_DOWN);
       
  2419 	if (x == NULL || PyDict_SetItemString(d, "TOP_DOWN", x) < 0)
       
  2420 		return;
       
  2421 	Py_DECREF(x);
       
  2422 #endif
       
  2423 #ifdef CL_ULAW
       
  2424 	x = PyInt_FromLong(CL_ULAW);
       
  2425 	if (x == NULL || PyDict_SetItemString(d, "ULAW", x) < 0)
       
  2426 		return;
       
  2427 	Py_DECREF(x);
       
  2428 #endif
       
  2429 #ifdef CL_UNCOMPRESSED
       
  2430 	x = PyInt_FromLong(CL_UNCOMPRESSED);
       
  2431 	if (x == NULL || PyDict_SetItemString(d, "UNCOMPRESSED", x) < 0)
       
  2432 		return;
       
  2433 	Py_DECREF(x);
       
  2434 #endif
       
  2435 #ifdef CL_UNCOMPRESSED_AUDIO
       
  2436 	x = PyInt_FromLong(CL_UNCOMPRESSED_AUDIO);
       
  2437 	if (x == NULL || PyDict_SetItemString(d, "UNCOMPRESSED_AUDIO", x) < 0)
       
  2438 		return;
       
  2439 	Py_DECREF(x);
       
  2440 #endif
       
  2441 #ifdef CL_UNCOMPRESSED_VIDEO
       
  2442 	x = PyInt_FromLong(CL_UNCOMPRESSED_VIDEO);
       
  2443 	if (x == NULL || PyDict_SetItemString(d, "UNCOMPRESSED_VIDEO", x) < 0)
       
  2444 		return;
       
  2445 	Py_DECREF(x);
       
  2446 #endif
       
  2447 #ifdef CL_UNKNOWN_SCHEME
       
  2448 	x = PyInt_FromLong(CL_UNKNOWN_SCHEME);
       
  2449 	if (x == NULL || PyDict_SetItemString(d, "UNKNOWN_SCHEME", x) < 0)
       
  2450 		return;
       
  2451 	Py_DECREF(x);
       
  2452 #endif
       
  2453 #ifdef CL_VIDEO
       
  2454 	x = PyInt_FromLong(CL_VIDEO);
       
  2455 	if (x == NULL || PyDict_SetItemString(d, "VIDEO", x) < 0)
       
  2456 		return;
       
  2457 	Py_DECREF(x);
       
  2458 #endif
       
  2459 #ifdef CL_Y
       
  2460 	x = PyInt_FromLong(CL_Y);
       
  2461 	if (x == NULL || PyDict_SetItemString(d, "Y", x) < 0)
       
  2462 		return;
       
  2463 	Py_DECREF(x);
       
  2464 #endif
       
  2465 #ifdef CL_YCbCr
       
  2466 	x = PyInt_FromLong(CL_YCbCr);
       
  2467 	if (x == NULL || PyDict_SetItemString(d, "YCbCr", x) < 0)
       
  2468 		return;
       
  2469 	Py_DECREF(x);
       
  2470 #endif
       
  2471 #ifdef CL_YCbCr422
       
  2472 	x = PyInt_FromLong(CL_YCbCr422);
       
  2473 	if (x == NULL || PyDict_SetItemString(d, "YCbCr422", x) < 0)
       
  2474 		return;
       
  2475 	Py_DECREF(x);
       
  2476 #endif
       
  2477 #ifdef CL_YCbCr422DC
       
  2478 	x = PyInt_FromLong(CL_YCbCr422DC);
       
  2479 	if (x == NULL || PyDict_SetItemString(d, "YCbCr422DC", x) < 0)
       
  2480 		return;
       
  2481 	Py_DECREF(x);
       
  2482 #endif
       
  2483 #ifdef CL_YCbCr422HC
       
  2484 	x = PyInt_FromLong(CL_YCbCr422HC);
       
  2485 	if (x == NULL || PyDict_SetItemString(d, "YCbCr422HC", x) < 0)
       
  2486 		return;
       
  2487 	Py_DECREF(x);
       
  2488 #endif
       
  2489 #ifdef CL_YUV
       
  2490 	x = PyInt_FromLong(CL_YUV);
       
  2491 	if (x == NULL || PyDict_SetItemString(d, "YUV", x) < 0)
       
  2492 		return;
       
  2493 	Py_DECREF(x);
       
  2494 #endif
       
  2495 #ifdef CL_YUV422
       
  2496 	x = PyInt_FromLong(CL_YUV422);
       
  2497 	if (x == NULL || PyDict_SetItemString(d, "YUV422", x) < 0)
       
  2498 		return;
       
  2499 	Py_DECREF(x);
       
  2500 #endif
       
  2501 #ifdef CL_YUV422DC
       
  2502 	x = PyInt_FromLong(CL_YUV422DC);
       
  2503 	if (x == NULL || PyDict_SetItemString(d, "YUV422DC", x) < 0)
       
  2504 		return;
       
  2505 	Py_DECREF(x);
       
  2506 #endif
       
  2507 #ifdef CL_YUV422HC
       
  2508 	x = PyInt_FromLong(CL_YUV422HC);
       
  2509 	if (x == NULL || PyDict_SetItemString(d, "YUV422HC", x) < 0)
       
  2510 		return;
       
  2511 	Py_DECREF(x);
       
  2512 #endif
       
  2513 #ifdef AWCMP_STEREO
       
  2514 	x = PyInt_FromLong(AWCMP_STEREO);
       
  2515 	if (x == NULL || PyDict_SetItemString(d, "AWCMP_STEREO", x) < 0)
       
  2516 		return;
       
  2517 	Py_DECREF(x);
       
  2518 #endif
       
  2519 #ifdef AWCMP_JOINT_STEREO
       
  2520 	x = PyInt_FromLong(AWCMP_JOINT_STEREO);
       
  2521 	if (x == NULL || PyDict_SetItemString(d, "AWCMP_JOINT_STEREO", x) < 0)
       
  2522 		return;
       
  2523 	Py_DECREF(x);
       
  2524 #endif
       
  2525 #ifdef AWCMP_INDEPENDENT
       
  2526 	x = PyInt_FromLong(AWCMP_INDEPENDENT);
       
  2527 	if (x == NULL || PyDict_SetItemString(d, "AWCMP_INDEPENDENT", x) < 0)
       
  2528 		return;
       
  2529 	Py_DECREF(x);
       
  2530 #endif
       
  2531 #ifdef AWCMP_FIXED_RATE
       
  2532 	x = PyInt_FromLong(AWCMP_FIXED_RATE);
       
  2533 	if (x == NULL || PyDict_SetItemString(d, "AWCMP_FIXED_RATE", x) < 0)
       
  2534 		return;
       
  2535 	Py_DECREF(x);
       
  2536 #endif
       
  2537 #ifdef AWCMP_CONST_QUAL
       
  2538 	x = PyInt_FromLong(AWCMP_CONST_QUAL);
       
  2539 	if (x == NULL || PyDict_SetItemString(d, "AWCMP_CONST_QUAL", x) < 0)
       
  2540 		return;
       
  2541 	Py_DECREF(x);
       
  2542 #endif
       
  2543 #ifdef AWCMP_LOSSLESS
       
  2544 	x = PyInt_FromLong(AWCMP_LOSSLESS);
       
  2545 	if (x == NULL || PyDict_SetItemString(d, "AWCMP_LOSSLESS", x) < 0)
       
  2546 		return;
       
  2547 	Py_DECREF(x);
       
  2548 #endif
       
  2549 #ifdef AWCMP_MPEG_LAYER_I
       
  2550 	x = PyInt_FromLong(AWCMP_MPEG_LAYER_I);
       
  2551 	if (x == NULL || PyDict_SetItemString(d, "AWCMP_MPEG_LAYER_I", x) < 0)
       
  2552 		return;
       
  2553 	Py_DECREF(x);
       
  2554 #endif
       
  2555 #ifdef AWCMP_MPEG_LAYER_II
       
  2556 	x = PyInt_FromLong(AWCMP_MPEG_LAYER_II);
       
  2557 	if (x == NULL || PyDict_SetItemString(d, "AWCMP_MPEG_LAYER_II", x) < 0)
       
  2558 		return;
       
  2559 	Py_DECREF(x);
       
  2560 #endif
       
  2561 
       
  2562 	(void) clSetErrorHandler(cl_ErrorHandler);
       
  2563 }