equal
deleted
inserted
replaced
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 |