src/3rdparty/libjpeg/jmorecfg.h
branchGCC_SURGE
changeset 31 5daf16870df6
parent 30 5dc02b23752f
equal deleted inserted replaced
27:93b982ccede2 31:5daf16870df6
     1 /*
     1 /*
     2  * jmorecfg.h
     2  * jmorecfg.h
     3  *
     3  *
     4  * Copyright (C) 1991-1997, Thomas G. Lane.
     4  * Copyright (C) 1991-1997, Thomas G. Lane.
       
     5  * Modified 1997-2009 by Guido Vollbeding.
     5  * This file is part of the Independent JPEG Group's software.
     6  * This file is part of the Independent JPEG Group's software.
     6  * For conditions of distribution and use, see the accompanying README file.
     7  * For conditions of distribution and use, see the accompanying README file.
     7  *
     8  *
     8  * This file contains additional configuration options that customize the
     9  * This file contains additional configuration options that customize the
     9  * JPEG software for special applications or support machine-dependent
    10  * JPEG software for special applications or support machine-dependent
   155 typedef short INT16;
   156 typedef short INT16;
   156 #endif
   157 #endif
   157 
   158 
   158 /* INT32 must hold at least signed 32-bit values. */
   159 /* INT32 must hold at least signed 32-bit values. */
   159 
   160 
   160 #if !defined(XMD_H) && !defined(VXWORKS)			/* X11/xmd.h correctly defines INT32 */
   161 #ifndef XMD_H			/* X11/xmd.h correctly defines INT32 */
       
   162 #ifndef _BASETSD_H_		/* Microsoft defines it in basetsd.h */
       
   163 #ifndef _BASETSD_H		/* MinGW is slightly different */
       
   164 #ifndef QGLOBAL_H		/* Qt defines it in qglobal.h */
       
   165 #ifndef VXWORKS
   161 typedef long INT32;
   166 typedef long INT32;
       
   167 #endif
       
   168 #endif
       
   169 #endif
       
   170 #endif
   162 #endif
   171 #endif
   163 
   172 
   164 /* Datatype used for image dimensions.  The JPEG standard only supports
   173 /* Datatype used for image dimensions.  The JPEG standard only supports
   165  * images up to 64K*64K due to 16-bit fields in SOF markers.  Therefore
   174  * images up to 64K*64K due to 16-bit fields in SOF markers.  Therefore
   166  * "unsigned int" is sufficient on all machines.  However, if you need to
   175  * "unsigned int" is sufficient on all machines.  However, if you need to
   178  * in particular, you'll need to do that to make the library a Windows DLL.
   187  * in particular, you'll need to do that to make the library a Windows DLL.
   179  * Another application is to make all functions global for use with debuggers
   188  * Another application is to make all functions global for use with debuggers
   180  * or code profilers that require it.
   189  * or code profilers that require it.
   181  */
   190  */
   182 
   191 
       
   192 #if defined(VXWORKS) && defined(LOCAL)
       
   193 #undef LOCAL
       
   194 #endif
   183 /* a function called through method pointers: */
   195 /* a function called through method pointers: */
   184 #define METHODDEF(type)		static type
   196 #define METHODDEF(type)		static type
   185 /* a function used only in its module: */
   197 /* a function used only in its module: */
   186 #if defined(VXWORKS) && defined(LOCAL)
       
   187 # undef LOCAL
       
   188 #endif
       
   189 #define LOCAL(type)		static type
   198 #define LOCAL(type)		static type
   190 /* a function referenced thru EXTERNs: */
   199 /* a function referenced thru EXTERNs: */
   191 #define GLOBAL(type)		type
   200 #define GLOBAL(type)		type
   192 /* a reference to a GLOBAL function: */
   201 /* a reference to a GLOBAL function: */
   193 #define EXTERN(type)		extern type
   202 #define EXTERN(type)		extern type
   210  * on 80x86 machines.  Most of the specialized coding for 80x86 is handled
   219  * on 80x86 machines.  Most of the specialized coding for 80x86 is handled
   211  * by just saying "FAR *" where such a pointer is needed.  In a few places
   220  * by just saying "FAR *" where such a pointer is needed.  In a few places
   212  * explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol.
   221  * explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol.
   213  */
   222  */
   214 
   223 
       
   224 #ifndef FAR
   215 #ifdef NEED_FAR_POINTERS
   225 #ifdef NEED_FAR_POINTERS
   216 #define FAR  far
   226 #define FAR  far
   217 #else
   227 #else
   218 #define FAR
   228 #define FAR
       
   229 #endif
   219 #endif
   230 #endif
   220 
   231 
   221 
   232 
   222 /*
   233 /*
   223  * On a few systems, type boolean and/or its values FALSE, TRUE may appear
   234  * On a few systems, type boolean and/or its values FALSE, TRUE may appear
   257  * library.  Note that you can leave certain source files out of the
   268  * library.  Note that you can leave certain source files out of the
   258  * compilation/linking process if you've #undef'd the corresponding symbols.
   269  * compilation/linking process if you've #undef'd the corresponding symbols.
   259  * (You may HAVE to do that if your compiler doesn't like null source files.)
   270  * (You may HAVE to do that if your compiler doesn't like null source files.)
   260  */
   271  */
   261 
   272 
   262 /* Arithmetic coding is unsupported for legal reasons.  Complaints to IBM. */
       
   263 
       
   264 /* Capability options common to encoder and decoder: */
   273 /* Capability options common to encoder and decoder: */
   265 
   274 
   266 #define DCT_ISLOW_SUPPORTED	/* slow but accurate integer algorithm */
   275 #define DCT_ISLOW_SUPPORTED	/* slow but accurate integer algorithm */
   267 #define DCT_IFAST_SUPPORTED	/* faster, less accurate integer method */
   276 #define DCT_IFAST_SUPPORTED	/* faster, less accurate integer method */
   268 #define DCT_FLOAT_SUPPORTED	/* floating-point: accurate, fast on fast HW */
   277 #define DCT_FLOAT_SUPPORTED	/* floating-point: accurate, fast on fast HW */
   270 /* Encoder capability options: */
   279 /* Encoder capability options: */
   271 
   280 
   272 #undef  C_ARITH_CODING_SUPPORTED    /* Arithmetic coding back end? */
   281 #undef  C_ARITH_CODING_SUPPORTED    /* Arithmetic coding back end? */
   273 #define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
   282 #define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
   274 #define C_PROGRESSIVE_SUPPORTED	    /* Progressive JPEG? (Requires MULTISCAN)*/
   283 #define C_PROGRESSIVE_SUPPORTED	    /* Progressive JPEG? (Requires MULTISCAN)*/
       
   284 #define DCT_SCALING_SUPPORTED	    /* Input rescaling via DCT? (Requires DCT_ISLOW)*/
   275 #define ENTROPY_OPT_SUPPORTED	    /* Optimization of entropy coding parms? */
   285 #define ENTROPY_OPT_SUPPORTED	    /* Optimization of entropy coding parms? */
   276 /* Note: if you selected 12-bit data precision, it is dangerous to turn off
   286 /* Note: if you selected 12-bit data precision, it is dangerous to turn off
   277  * ENTROPY_OPT_SUPPORTED.  The standard Huffman tables are only good for 8-bit
   287  * ENTROPY_OPT_SUPPORTED.  The standard Huffman tables are only good for 8-bit
   278  * precision, so jchuff.c normally uses entropy optimization to compute
   288  * precision, so jchuff.c normally uses entropy optimization to compute
   279  * usable tables for higher precision.  If you don't want to do optimization,
   289  * usable tables for higher precision.  If you don't want to do optimization,
   286 /* Decoder capability options: */
   296 /* Decoder capability options: */
   287 
   297 
   288 #undef  D_ARITH_CODING_SUPPORTED    /* Arithmetic coding back end? */
   298 #undef  D_ARITH_CODING_SUPPORTED    /* Arithmetic coding back end? */
   289 #define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
   299 #define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
   290 #define D_PROGRESSIVE_SUPPORTED	    /* Progressive JPEG? (Requires MULTISCAN)*/
   300 #define D_PROGRESSIVE_SUPPORTED	    /* Progressive JPEG? (Requires MULTISCAN)*/
       
   301 #define IDCT_SCALING_SUPPORTED	    /* Output rescaling via IDCT? */
   291 #define SAVE_MARKERS_SUPPORTED	    /* jpeg_save_markers() needed? */
   302 #define SAVE_MARKERS_SUPPORTED	    /* jpeg_save_markers() needed? */
   292 #define BLOCK_SMOOTHING_SUPPORTED   /* Block smoothing? (Progressive only) */
   303 #define BLOCK_SMOOTHING_SUPPORTED   /* Block smoothing? (Progressive only) */
   293 #define IDCT_SCALING_SUPPORTED	    /* Output rescaling via IDCT? */
       
   294 #undef  UPSAMPLE_SCALING_SUPPORTED  /* Output rescaling at upsample stage? */
   304 #undef  UPSAMPLE_SCALING_SUPPORTED  /* Output rescaling at upsample stage? */
   295 #define UPSAMPLE_MERGING_SUPPORTED  /* Fast path for sloppy upsampling? */
   305 #define UPSAMPLE_MERGING_SUPPORTED  /* Fast path for sloppy upsampling? */
   296 #define QUANT_1PASS_SUPPORTED	    /* 1-pass color quantization? */
   306 #define QUANT_1PASS_SUPPORTED	    /* 1-pass color quantization? */
   297 #define QUANT_2PASS_SUPPORTED	    /* 2-pass color quantization? */
   307 #define QUANT_2PASS_SUPPORTED	    /* 2-pass color quantization? */
   298 
   308