< prev index next >

modules/javafx.graphics/src/main/native-iio/libjpeg7/jmorecfg.h

Print this page

        

*** 1,10 **** /* * jmorecfg.h * * Copyright (C) 1991-1997, Thomas G. Lane. ! * Modified 1997-2009 by Guido Vollbeding. * This file is part of the Independent JPEG Group's software. * For conditions of distribution and use, see the accompanying README file. * * This file contains additional configuration options that customize the * JPEG software for special applications or support machine-dependent --- 1,10 ---- /* * jmorecfg.h * * Copyright (C) 1991-1997, Thomas G. Lane. ! * Modified 1997-2013 by Guido Vollbeding. * This file is part of the Independent JPEG Group's software. * For conditions of distribution and use, see the accompanying README file. * * This file contains additional configuration options that customize the * JPEG software for special applications or support machine-dependent
*** 13,29 **** /* * Define BITS_IN_JSAMPLE as either * 8 for 8-bit sample values (the usual setting) * 12 for 12-bit sample values ! * Only 8 and 12 are legal data precisions for lossy JPEG according to the ! * JPEG standard, and the IJG code does not support anything else! ! * We do not support run-time selection of data precision, sorry. */ ! #define BITS_IN_JSAMPLE 8 /* use 8 or 12 */ /* * Maximum number of components (color channels) allowed in JPEG image. * To meet the letter of the JPEG spec, set this to 255. However, darn --- 13,38 ---- /* * Define BITS_IN_JSAMPLE as either * 8 for 8-bit sample values (the usual setting) + * 9 for 9-bit sample values + * 10 for 10-bit sample values + * 11 for 11-bit sample values * 12 for 12-bit sample values ! * Only 8, 9, 10, 11, and 12 bits sample data precision are supported for ! * full-feature DCT processing. Further depths up to 16-bit may be added ! * later for the lossless modes of operation. ! * Run-time selection and conversion of data precision will be added later ! * and are currently not supported, sorry. ! * Exception: The transcoding part (jpegtran) supports all settings in a ! * single instance, since it operates on the level of DCT coefficients and ! * not sample values. The DCT coefficients are of the same type (16 bits) ! * in all cases (see below). */ ! #define BITS_IN_JSAMPLE 8 /* use 8, 9, 10, 11, or 12 */ /* * Maximum number of components (color channels) allowed in JPEG image. * To meet the letter of the JPEG spec, set this to 255. However, darn
*** 75,84 **** --- 84,135 ---- #define CENTERJSAMPLE 128 #endif /* BITS_IN_JSAMPLE == 8 */ + #if BITS_IN_JSAMPLE == 9 + /* JSAMPLE should be the smallest type that will hold the values 0..511. + * On nearly all machines "short" will do nicely. + */ + + typedef short JSAMPLE; + #define GETJSAMPLE(value) ((int) (value)) + + #define MAXJSAMPLE 511 + #define CENTERJSAMPLE 256 + + #endif /* BITS_IN_JSAMPLE == 9 */ + + + #if BITS_IN_JSAMPLE == 10 + /* JSAMPLE should be the smallest type that will hold the values 0..1023. + * On nearly all machines "short" will do nicely. + */ + + typedef short JSAMPLE; + #define GETJSAMPLE(value) ((int) (value)) + + #define MAXJSAMPLE 1023 + #define CENTERJSAMPLE 512 + + #endif /* BITS_IN_JSAMPLE == 10 */ + + + #if BITS_IN_JSAMPLE == 11 + /* JSAMPLE should be the smallest type that will hold the values 0..2047. + * On nearly all machines "short" will do nicely. + */ + + typedef short JSAMPLE; + #define GETJSAMPLE(value) ((int) (value)) + + #define MAXJSAMPLE 2047 + #define CENTERJSAMPLE 1024 + + #endif /* BITS_IN_JSAMPLE == 11 */ + + #if BITS_IN_JSAMPLE == 12 /* JSAMPLE should be the smallest type that will hold the values 0..4095. * On nearly all machines "short" will do nicely. */
*** 158,172 **** --- 209,225 ---- /* INT32 must hold at least signed 32-bit values. */ #ifndef XMD_H /* X11/xmd.h correctly defines INT32 */ #ifndef _BASETSD_H_ /* Microsoft defines it in basetsd.h */ + #ifndef _BASETSD_H /* MinGW is slightly different */ #ifndef QGLOBAL_H /* Qt defines it in qglobal.h */ typedef long INT32; #endif #endif #endif + #endif /* Datatype used for image dimensions. The JPEG standard only supports * images up to 64K*64K due to 16-bit fields in SOF markers. Therefore * "unsigned int" is sufficient on all machines. However, if you need to * handle larger images and you don't mind deviating from the spec, you
*** 206,215 **** --- 259,288 ---- #else #define JMETHOD(type,methodname,arglist) type (*methodname) () #endif + /* The noreturn type identifier is used to declare functions + * which cannot return. + * Compilers can thus create more optimized code and perform + * better checks for warnings and errors. + * Static analyzer tools can make improved inferences about + * execution paths and are prevented from giving false alerts. + * + * Unfortunately, the proposed specifications of corresponding + * extensions in the Dec 2011 ISO C standard revision (C11), + * GCC, MSVC, etc. are not viable. + * Thus we introduce a user defined type to declare noreturn + * functions at least for clarity. A proper compiler would + * have a suitable noreturn type to match in place of void. + */ + + #ifndef HAVE_NORETURN_T + typedef void noreturn_t; + #endif + + /* Here is the pseudo-keyword for declaring pointers that must be "far" * on 80x86 machines. Most of the specialized coding for 80x86 is handled * by just saying "FAR *" where such a pointer is needed. In a few places * explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol. */
*** 229,246 **** * specific header files that you want to include together with these files. * Defining HAVE_BOOLEAN before including jpeglib.h should make it work. */ #ifndef HAVE_BOOLEAN typedef int boolean; - #endif #ifndef FALSE /* in case these macros already exist */ #define FALSE 0 /* values of boolean */ #endif #ifndef TRUE #define TRUE 1 #endif /* * The remaining options affect code selection within the JPEG library, * but they don't need to be visible to most applications using the library. --- 302,324 ---- * specific header files that you want to include together with these files. * Defining HAVE_BOOLEAN before including jpeglib.h should make it work. */ #ifndef HAVE_BOOLEAN + #if defined FALSE || defined TRUE || defined QGLOBAL_H + /* Qt3 defines FALSE and TRUE as "const" variables in qglobal.h */ typedef int boolean; #ifndef FALSE /* in case these macros already exist */ #define FALSE 0 /* values of boolean */ #endif #ifndef TRUE #define TRUE 1 #endif + #else + typedef enum { FALSE = 0, TRUE = 1 } boolean; + #endif + #endif /* * The remaining options affect code selection within the JPEG library, * but they don't need to be visible to most applications using the library.
*** 269,299 **** #define DCT_IFAST_SUPPORTED /* faster, less accurate integer method */ #define DCT_FLOAT_SUPPORTED /* floating-point: accurate, fast on fast HW */ /* Encoder capability options: */ ! #undef C_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ #define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ #define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ #define DCT_SCALING_SUPPORTED /* Input rescaling via DCT? (Requires DCT_ISLOW)*/ #define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */ ! /* Note: if you selected 12-bit data precision, it is dangerous to turn off ! * ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only good for 8-bit ! * precision, so jchuff.c normally uses entropy optimization to compute ! * usable tables for higher precision. If you don't want to do optimization, ! * you'll have to supply different default Huffman tables. * The exact same statements apply for progressive JPEG: the default tables * don't work for progressive mode. (This may get fixed, however.) */ #define INPUT_SMOOTHING_SUPPORTED /* Input image smoothing option? */ /* Decoder capability options: */ ! #undef D_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ #define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ #define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ ! #define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? */ #define SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */ #define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */ #undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */ #define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */ #define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */ --- 347,378 ---- #define DCT_IFAST_SUPPORTED /* faster, less accurate integer method */ #define DCT_FLOAT_SUPPORTED /* floating-point: accurate, fast on fast HW */ /* Encoder capability options: */ ! #define C_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ #define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ #define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ #define DCT_SCALING_SUPPORTED /* Input rescaling via DCT? (Requires DCT_ISLOW)*/ #define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */ ! /* Note: if you selected more than 8-bit data precision, it is dangerous to ! * turn off ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only ! * good for 8-bit precision, so arithmetic coding is recommended for higher ! * precision. The Huffman encoder normally uses entropy optimization to ! * compute usable tables for higher precision. Otherwise, you'll have to ! * supply different default Huffman tables. * The exact same statements apply for progressive JPEG: the default tables * don't work for progressive mode. (This may get fixed, however.) */ #define INPUT_SMOOTHING_SUPPORTED /* Input image smoothing option? */ /* Decoder capability options: */ ! #define D_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ #define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ #define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ ! #define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? (Requires DCT_ISLOW)*/ #define SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */ #define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */ #undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */ #define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */ #define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */
*** 308,320 **** * change these macros. You can also deal with formats such as R,G,B,X * (one extra byte per pixel) by changing RGB_PIXELSIZE. Note that changing * the offsets will also change the order in which colormap data is organized. * RESTRICTIONS: * 1. The sample applications cjpeg,djpeg do NOT support modified RGB formats. ! * 2. These macros only affect RGB<=>YCbCr color conversion, so they are not ! * useful if you are using JPEG color spaces other than YCbCr or grayscale. ! * 3. The color quantizer modules will not behave desirably if RGB_PIXELSIZE * is not 3 (they don't understand about dummy color components!). So you * can't use color quantization if you change that value. */ #define RGB_RED 0 /* Offset of Red in an RGB scanline element */ --- 387,397 ---- * change these macros. You can also deal with formats such as R,G,B,X * (one extra byte per pixel) by changing RGB_PIXELSIZE. Note that changing * the offsets will also change the order in which colormap data is organized. * RESTRICTIONS: * 1. The sample applications cjpeg,djpeg do NOT support modified RGB formats. ! * 2. The color quantizer modules will not behave desirably if RGB_PIXELSIZE * is not 3 (they don't understand about dummy color components!). So you * can't use color quantization if you change that value. */ #define RGB_RED 0 /* Offset of Red in an RGB scanline element */
< prev index next >