update libjpg in extern folder to v8. still need the .lib file for windows, possibly? idk
This commit is contained in:
Vendored
+38
-22
@@ -1,23 +1,38 @@
|
|||||||
/* jconfig.xmingw32msvc --- jconfig.h for mingw32/msvc. */
|
/* jconfig.h. Generated from jconfig.cfg by configure. */
|
||||||
/* see jconfig.doc for explanations */
|
/* jconfig.cfg --- source file edited by configure script */
|
||||||
|
/* see jconfig.txt for explanations */
|
||||||
|
|
||||||
#define HAVE_PROTOTYPES
|
#define HAVE_PROTOTYPES 1
|
||||||
#define HAVE_UNSIGNED_CHAR
|
#define HAVE_UNSIGNED_CHAR 1
|
||||||
#define HAVE_UNSIGNED_SHORT
|
#define HAVE_UNSIGNED_SHORT 1
|
||||||
/* #define void char */
|
/* #undef void */
|
||||||
/* #define const */
|
/* #undef const */
|
||||||
#undef CHAR_IS_UNSIGNED
|
/* #undef CHAR_IS_UNSIGNED */
|
||||||
#define HAVE_STDDEF_H
|
|
||||||
#define HAVE_STDLIB_H
|
|
||||||
#undef NEED_BSD_STRINGS
|
|
||||||
#undef NEED_SYS_TYPES_H
|
/* #undef NEED_BSD_STRINGS */
|
||||||
#undef NEED_FAR_POINTERS /* win32 uses flat 32-bit addressing */
|
/* #undef NEED_SYS_TYPES_H */
|
||||||
#undef NEED_SHORT_EXTERNAL_NAMES
|
/* #undef NEED_FAR_POINTERS */
|
||||||
#undef INCOMPLETE_TYPES_BROKEN
|
/* #undef NEED_SHORT_EXTERNAL_NAMES */
|
||||||
|
/* Define this if you get warnings about undefined structures. */
|
||||||
|
/* #undef INCOMPLETE_TYPES_BROKEN */
|
||||||
|
|
||||||
|
/* Define "boolean" as unsigned char, not int, on Windows systems. */
|
||||||
|
#ifdef _WIN32
|
||||||
|
#ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */
|
||||||
|
typedef unsigned char boolean;
|
||||||
|
#endif
|
||||||
|
#define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef JPEG_INTERNALS
|
#ifdef JPEG_INTERNALS
|
||||||
|
|
||||||
#undef RIGHT_SHIFT_IS_UNSIGNED
|
/* #undef RIGHT_SHIFT_IS_UNSIGNED */
|
||||||
|
#define INLINE __inline__
|
||||||
|
/* These are for configuring the JPEG memory manager. */
|
||||||
|
/* #undef DEFAULT_MAX_MEM */
|
||||||
|
/* #undef NO_MKTEMP */
|
||||||
|
|
||||||
#endif /* JPEG_INTERNALS */
|
#endif /* JPEG_INTERNALS */
|
||||||
|
|
||||||
@@ -26,13 +41,14 @@
|
|||||||
#define BMP_SUPPORTED /* BMP image file format */
|
#define BMP_SUPPORTED /* BMP image file format */
|
||||||
#define GIF_SUPPORTED /* GIF image file format */
|
#define GIF_SUPPORTED /* GIF image file format */
|
||||||
#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */
|
#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */
|
||||||
#undef RLE_SUPPORTED /* Utah RLE image file format */
|
/* #undef RLE_SUPPORTED */
|
||||||
#define TARGA_SUPPORTED /* Targa image file format */
|
#define TARGA_SUPPORTED /* Targa image file format */
|
||||||
|
|
||||||
#undef TWO_FILE_COMMANDLINE /* optional */
|
/* #undef TWO_FILE_COMMANDLINE */
|
||||||
#define USE_SETMODE /* Needed to make one-file style work in DJGPP */
|
/* #undef NEED_SIGNAL_CATCHER */
|
||||||
#undef NEED_SIGNAL_CATCHER /* Define this if you use jmemname.c */
|
/* #undef DONT_USE_B_MODE */
|
||||||
#undef DONT_USE_B_MODE
|
|
||||||
#undef PROGRESS_REPORT /* optional */
|
/* Define this if you want percent-done progress reports from cjpeg/djpeg. */
|
||||||
|
/* #undef PROGRESS_REPORT */
|
||||||
|
|
||||||
#endif /* JPEG_CJPEG_DJPEG */
|
#endif /* JPEG_CJPEG_DJPEG */
|
||||||
|
|||||||
Vendored
+16
-3
@@ -2,6 +2,7 @@
|
|||||||
* jerror.h
|
* jerror.h
|
||||||
*
|
*
|
||||||
* Copyright (C) 1994-1997, Thomas G. Lane.
|
* Copyright (C) 1994-1997, Thomas G. Lane.
|
||||||
|
* Modified 1997-2009 by Guido Vollbeding.
|
||||||
* This file is part of the Independent JPEG Group's software.
|
* This file is part of the Independent JPEG Group's software.
|
||||||
* For conditions of distribution and use, see the accompanying README file.
|
* For conditions of distribution and use, see the accompanying README file.
|
||||||
*
|
*
|
||||||
@@ -39,14 +40,15 @@ typedef enum {
|
|||||||
JMESSAGE(JMSG_NOMESSAGE, "Bogus message code %d") /* Must be first entry! */
|
JMESSAGE(JMSG_NOMESSAGE, "Bogus message code %d") /* Must be first entry! */
|
||||||
|
|
||||||
/* For maintenance convenience, list is alphabetical by message code name */
|
/* For maintenance convenience, list is alphabetical by message code name */
|
||||||
JMESSAGE(JERR_ARITH_NOTIMPL,
|
|
||||||
"Sorry, there are legal restrictions on arithmetic coding")
|
|
||||||
JMESSAGE(JERR_BAD_ALIGN_TYPE, "ALIGN_TYPE is wrong, please fix")
|
JMESSAGE(JERR_BAD_ALIGN_TYPE, "ALIGN_TYPE is wrong, please fix")
|
||||||
JMESSAGE(JERR_BAD_ALLOC_CHUNK, "MAX_ALLOC_CHUNK is wrong, please fix")
|
JMESSAGE(JERR_BAD_ALLOC_CHUNK, "MAX_ALLOC_CHUNK is wrong, please fix")
|
||||||
JMESSAGE(JERR_BAD_BUFFER_MODE, "Bogus buffer control mode")
|
JMESSAGE(JERR_BAD_BUFFER_MODE, "Bogus buffer control mode")
|
||||||
JMESSAGE(JERR_BAD_COMPONENT_ID, "Invalid component ID %d in SOS")
|
JMESSAGE(JERR_BAD_COMPONENT_ID, "Invalid component ID %d in SOS")
|
||||||
|
JMESSAGE(JERR_BAD_CROP_SPEC, "Invalid crop request")
|
||||||
JMESSAGE(JERR_BAD_DCT_COEF, "DCT coefficient out of range")
|
JMESSAGE(JERR_BAD_DCT_COEF, "DCT coefficient out of range")
|
||||||
JMESSAGE(JERR_BAD_DCTSIZE, "IDCT output block size %d not supported")
|
JMESSAGE(JERR_BAD_DCTSIZE, "DCT scaled block size %dx%d not supported")
|
||||||
|
JMESSAGE(JERR_BAD_DROP_SAMPLING,
|
||||||
|
"Component index %d: mismatching sampling ratio %d:%d, %d:%d, %c")
|
||||||
JMESSAGE(JERR_BAD_HUFF_TABLE, "Bogus Huffman table definition")
|
JMESSAGE(JERR_BAD_HUFF_TABLE, "Bogus Huffman table definition")
|
||||||
JMESSAGE(JERR_BAD_IN_COLORSPACE, "Bogus input colorspace")
|
JMESSAGE(JERR_BAD_IN_COLORSPACE, "Bogus input colorspace")
|
||||||
JMESSAGE(JERR_BAD_J_COLORSPACE, "Bogus JPEG colorspace")
|
JMESSAGE(JERR_BAD_J_COLORSPACE, "Bogus JPEG colorspace")
|
||||||
@@ -93,6 +95,7 @@ JMESSAGE(JERR_MISSING_DATA, "Scan script does not transmit all data")
|
|||||||
JMESSAGE(JERR_MODE_CHANGE, "Invalid color quantization mode change")
|
JMESSAGE(JERR_MODE_CHANGE, "Invalid color quantization mode change")
|
||||||
JMESSAGE(JERR_NOTIMPL, "Not implemented yet")
|
JMESSAGE(JERR_NOTIMPL, "Not implemented yet")
|
||||||
JMESSAGE(JERR_NOT_COMPILED, "Requested feature was omitted at compile time")
|
JMESSAGE(JERR_NOT_COMPILED, "Requested feature was omitted at compile time")
|
||||||
|
JMESSAGE(JERR_NO_ARITH_TABLE, "Arithmetic table 0x%02x was not defined")
|
||||||
JMESSAGE(JERR_NO_BACKING_STORE, "Backing store not supported")
|
JMESSAGE(JERR_NO_BACKING_STORE, "Backing store not supported")
|
||||||
JMESSAGE(JERR_NO_HUFF_TABLE, "Huffman table 0x%02x was not defined")
|
JMESSAGE(JERR_NO_HUFF_TABLE, "Huffman table 0x%02x was not defined")
|
||||||
JMESSAGE(JERR_NO_IMAGE, "JPEG datastream contains no image")
|
JMESSAGE(JERR_NO_IMAGE, "JPEG datastream contains no image")
|
||||||
@@ -170,6 +173,7 @@ JMESSAGE(JTRC_UNKNOWN_IDS,
|
|||||||
JMESSAGE(JTRC_XMS_CLOSE, "Freed XMS handle %u")
|
JMESSAGE(JTRC_XMS_CLOSE, "Freed XMS handle %u")
|
||||||
JMESSAGE(JTRC_XMS_OPEN, "Obtained XMS handle %u")
|
JMESSAGE(JTRC_XMS_OPEN, "Obtained XMS handle %u")
|
||||||
JMESSAGE(JWRN_ADOBE_XFORM, "Unknown Adobe color transform code %d")
|
JMESSAGE(JWRN_ADOBE_XFORM, "Unknown Adobe color transform code %d")
|
||||||
|
JMESSAGE(JWRN_ARITH_BAD_CODE, "Corrupt JPEG data: bad arithmetic code")
|
||||||
JMESSAGE(JWRN_BOGUS_PROGRESSION,
|
JMESSAGE(JWRN_BOGUS_PROGRESSION,
|
||||||
"Inconsistent progression sequence for component %d coefficient %d")
|
"Inconsistent progression sequence for component %d coefficient %d")
|
||||||
JMESSAGE(JWRN_EXTRANEOUS_DATA,
|
JMESSAGE(JWRN_EXTRANEOUS_DATA,
|
||||||
@@ -227,6 +231,15 @@ JMESSAGE(JWRN_TOO_MUCH_DATA, "Application transferred too many scanlines")
|
|||||||
(cinfo)->err->msg_parm.i[2] = (p3), \
|
(cinfo)->err->msg_parm.i[2] = (p3), \
|
||||||
(cinfo)->err->msg_parm.i[3] = (p4), \
|
(cinfo)->err->msg_parm.i[3] = (p4), \
|
||||||
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
||||||
|
#define ERREXIT6(cinfo,code,p1,p2,p3,p4,p5,p6) \
|
||||||
|
((cinfo)->err->msg_code = (code), \
|
||||||
|
(cinfo)->err->msg_parm.i[0] = (p1), \
|
||||||
|
(cinfo)->err->msg_parm.i[1] = (p2), \
|
||||||
|
(cinfo)->err->msg_parm.i[2] = (p3), \
|
||||||
|
(cinfo)->err->msg_parm.i[3] = (p4), \
|
||||||
|
(cinfo)->err->msg_parm.i[4] = (p5), \
|
||||||
|
(cinfo)->err->msg_parm.i[5] = (p6), \
|
||||||
|
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
||||||
#define ERREXITS(cinfo,code,str) \
|
#define ERREXITS(cinfo,code,str) \
|
||||||
((cinfo)->err->msg_code = (code), \
|
((cinfo)->err->msg_code = (code), \
|
||||||
strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \
|
strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \
|
||||||
|
|||||||
Vendored
+14
-14
@@ -2,6 +2,7 @@
|
|||||||
* jmorecfg.h
|
* jmorecfg.h
|
||||||
*
|
*
|
||||||
* Copyright (C) 1991-1997, Thomas G. Lane.
|
* Copyright (C) 1991-1997, Thomas G. Lane.
|
||||||
|
* Modified 1997-2009 by Guido Vollbeding.
|
||||||
* This file is part of the Independent JPEG Group's software.
|
* This file is part of the Independent JPEG Group's software.
|
||||||
* For conditions of distribution and use, see the accompanying README file.
|
* For conditions of distribution and use, see the accompanying README file.
|
||||||
*
|
*
|
||||||
@@ -158,8 +159,14 @@ typedef short INT16;
|
|||||||
/* INT32 must hold at least signed 32-bit values. */
|
/* INT32 must hold at least signed 32-bit values. */
|
||||||
|
|
||||||
#ifndef XMD_H /* X11/xmd.h correctly defines INT32 */
|
#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;
|
typedef long INT32;
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Datatype used for image dimensions. The JPEG standard only supports
|
/* Datatype used for image dimensions. The JPEG standard only supports
|
||||||
* images up to 64K*64K due to 16-bit fields in SOF markers. Therefore
|
* images up to 64K*64K due to 16-bit fields in SOF markers. Therefore
|
||||||
@@ -187,16 +194,8 @@ typedef unsigned int JDIMENSION;
|
|||||||
/* a function referenced thru EXTERNs: */
|
/* a function referenced thru EXTERNs: */
|
||||||
#define GLOBAL(type) type
|
#define GLOBAL(type) type
|
||||||
/* a reference to a GLOBAL function: */
|
/* a reference to a GLOBAL function: */
|
||||||
#if defined(WIN32)
|
|
||||||
# ifdef BUILDING_JPEG_DLL
|
|
||||||
# define DLLIMPORT __declspec (dllexport)
|
|
||||||
# else
|
|
||||||
# define DLLIMPORT __declspec (dllimport)
|
|
||||||
# endif
|
|
||||||
# define EXTERN(type) DLLIMPORT extern type
|
|
||||||
#else
|
|
||||||
#define EXTERN(type) extern type
|
#define EXTERN(type) extern type
|
||||||
#endif
|
|
||||||
|
|
||||||
/* This macro is used to declare a "method", that is, a function pointer.
|
/* This macro is used to declare a "method", that is, a function pointer.
|
||||||
* We want to supply prototype parameters if the compiler can cope.
|
* We want to supply prototype parameters if the compiler can cope.
|
||||||
@@ -217,11 +216,13 @@ typedef unsigned int JDIMENSION;
|
|||||||
* explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol.
|
* explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef FAR
|
||||||
#ifdef NEED_FAR_POINTERS
|
#ifdef NEED_FAR_POINTERS
|
||||||
#define FAR far
|
#define FAR far
|
||||||
#else
|
#else
|
||||||
#define FAR
|
#define FAR
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -264,8 +265,6 @@ typedef int boolean;
|
|||||||
* (You may HAVE to do that if your compiler doesn't like null source files.)
|
* (You may HAVE to do that if your compiler doesn't like null source files.)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Arithmetic coding is unsupported for legal reasons. Complaints to IBM. */
|
|
||||||
|
|
||||||
/* Capability options common to encoder and decoder: */
|
/* Capability options common to encoder and decoder: */
|
||||||
|
|
||||||
#define DCT_ISLOW_SUPPORTED /* slow but accurate integer algorithm */
|
#define DCT_ISLOW_SUPPORTED /* slow but accurate integer algorithm */
|
||||||
@@ -274,9 +273,10 @@ typedef int boolean;
|
|||||||
|
|
||||||
/* Encoder capability options: */
|
/* Encoder capability options: */
|
||||||
|
|
||||||
#undef C_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */
|
#define C_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */
|
||||||
#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
|
#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
|
||||||
#define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/
|
#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? */
|
#define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */
|
||||||
/* Note: if you selected 12-bit data precision, it is dangerous to turn off
|
/* 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
|
* ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only good for 8-bit
|
||||||
@@ -290,12 +290,12 @@ typedef int boolean;
|
|||||||
|
|
||||||
/* Decoder capability options: */
|
/* Decoder capability options: */
|
||||||
|
|
||||||
#undef D_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */
|
#define D_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */
|
||||||
#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
|
#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
|
||||||
#define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/
|
#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 SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */
|
||||||
#define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */
|
#define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */
|
||||||
#define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? */
|
|
||||||
#undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */
|
#undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */
|
||||||
#define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */
|
#define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */
|
||||||
#define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */
|
#define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */
|
||||||
|
|||||||
Vendored
+75
-21
@@ -2,6 +2,7 @@
|
|||||||
* jpeglib.h
|
* jpeglib.h
|
||||||
*
|
*
|
||||||
* Copyright (C) 1991-1998, Thomas G. Lane.
|
* Copyright (C) 1991-1998, Thomas G. Lane.
|
||||||
|
* Modified 2002-2009 by Guido Vollbeding.
|
||||||
* This file is part of the Independent JPEG Group's software.
|
* This file is part of the Independent JPEG Group's software.
|
||||||
* For conditions of distribution and use, see the accompanying README file.
|
* For conditions of distribution and use, see the accompanying README file.
|
||||||
*
|
*
|
||||||
@@ -13,10 +14,6 @@
|
|||||||
#ifndef JPEGLIB_H
|
#ifndef JPEGLIB_H
|
||||||
#define JPEGLIB_H
|
#define JPEGLIB_H
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* First we include the configuration files that record how this
|
* First we include the configuration files that record how this
|
||||||
* installation of the JPEG library is set up. jconfig.h can be
|
* installation of the JPEG library is set up. jconfig.h can be
|
||||||
@@ -30,11 +27,17 @@ extern "C" {
|
|||||||
#include "jmorecfg.h" /* seldom changed options */
|
#include "jmorecfg.h" /* seldom changed options */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#ifndef DONT_USE_EXTERN_C
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Version ID for the JPEG library.
|
/* Version ID for the JPEG library.
|
||||||
* Might be useful for tests like "#if JPEG_LIB_VERSION >= 60".
|
* Might be useful for tests like "#if JPEG_LIB_VERSION >= 80".
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define JPEG_LIB_VERSION 62 /* Version 6b */
|
#define JPEG_LIB_VERSION 80 /* Version 8.0 */
|
||||||
|
|
||||||
|
|
||||||
/* Various constants determining the sizes of things.
|
/* Various constants determining the sizes of things.
|
||||||
@@ -142,18 +145,18 @@ typedef struct {
|
|||||||
*/
|
*/
|
||||||
JDIMENSION width_in_blocks;
|
JDIMENSION width_in_blocks;
|
||||||
JDIMENSION height_in_blocks;
|
JDIMENSION height_in_blocks;
|
||||||
/* Size of a DCT block in samples. Always DCTSIZE for compression.
|
/* Size of a DCT block in samples,
|
||||||
* For decompression this is the size of the output from one DCT block,
|
* reflecting any scaling we choose to apply during the DCT step.
|
||||||
* reflecting any scaling we choose to apply during the IDCT step.
|
* Values from 1 to 16 are supported.
|
||||||
* Values of 1,2,4,8 are likely to be supported. Note that different
|
* Note that different components may receive different DCT scalings.
|
||||||
* components may receive different IDCT scalings.
|
|
||||||
*/
|
*/
|
||||||
int DCT_scaled_size;
|
int DCT_h_scaled_size;
|
||||||
|
int DCT_v_scaled_size;
|
||||||
/* The downsampled dimensions are the component's actual, unpadded number
|
/* The downsampled dimensions are the component's actual, unpadded number
|
||||||
* of samples at the main buffer (preprocessing/compression interface), thus
|
* of samples at the main buffer (preprocessing/compression interface);
|
||||||
* downsampled_width = ceil(image_width * Hi/Hmax)
|
* DCT scaling is included, so
|
||||||
* and similarly for height. For decompression, IDCT scaling is included, so
|
* downsampled_width = ceil(image_width * Hi/Hmax * DCT_h_scaled_size/DCTSIZE)
|
||||||
* downsampled_width = ceil(image_width * Hi/Hmax * DCT_scaled_size/DCTSIZE)
|
* and similarly for height.
|
||||||
*/
|
*/
|
||||||
JDIMENSION downsampled_width; /* actual width in samples */
|
JDIMENSION downsampled_width; /* actual width in samples */
|
||||||
JDIMENSION downsampled_height; /* actual height in samples */
|
JDIMENSION downsampled_height; /* actual height in samples */
|
||||||
@@ -168,7 +171,7 @@ typedef struct {
|
|||||||
int MCU_width; /* number of blocks per MCU, horizontally */
|
int MCU_width; /* number of blocks per MCU, horizontally */
|
||||||
int MCU_height; /* number of blocks per MCU, vertically */
|
int MCU_height; /* number of blocks per MCU, vertically */
|
||||||
int MCU_blocks; /* MCU_width * MCU_height */
|
int MCU_blocks; /* MCU_width * MCU_height */
|
||||||
int MCU_sample_width; /* MCU width in samples, MCU_width*DCT_scaled_size */
|
int MCU_sample_width; /* MCU width in samples: MCU_width * DCT_h_scaled_size */
|
||||||
int last_col_width; /* # of non-dummy blocks across in last MCU */
|
int last_col_width; /* # of non-dummy blocks across in last MCU */
|
||||||
int last_row_height; /* # of non-dummy blocks down in last MCU */
|
int last_row_height; /* # of non-dummy blocks down in last MCU */
|
||||||
|
|
||||||
@@ -295,6 +298,17 @@ struct jpeg_compress_struct {
|
|||||||
* helper routines to simplify changing parameters.
|
* helper routines to simplify changing parameters.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
unsigned int scale_num, scale_denom; /* fraction by which to scale image */
|
||||||
|
|
||||||
|
JDIMENSION jpeg_width; /* scaled JPEG image width */
|
||||||
|
JDIMENSION jpeg_height; /* scaled JPEG image height */
|
||||||
|
/* Dimensions of actual JPEG image that will be written to file,
|
||||||
|
* derived from input dimensions by scaling factors above.
|
||||||
|
* These fields are computed by jpeg_start_compress().
|
||||||
|
* You can also use jpeg_calc_jpeg_dimensions() to determine these values
|
||||||
|
* in advance of calling jpeg_start_compress().
|
||||||
|
*/
|
||||||
|
|
||||||
int data_precision; /* bits of precision in image data */
|
int data_precision; /* bits of precision in image data */
|
||||||
|
|
||||||
int num_components; /* # of color components in JPEG image */
|
int num_components; /* # of color components in JPEG image */
|
||||||
@@ -304,7 +318,10 @@ struct jpeg_compress_struct {
|
|||||||
/* comp_info[i] describes component that appears i'th in SOF */
|
/* comp_info[i] describes component that appears i'th in SOF */
|
||||||
|
|
||||||
JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS];
|
JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS];
|
||||||
/* ptrs to coefficient quantization tables, or NULL if not defined */
|
int q_scale_factor[NUM_QUANT_TBLS];
|
||||||
|
/* ptrs to coefficient quantization tables, or NULL if not defined,
|
||||||
|
* and corresponding scale factors (percentage, initialized 100).
|
||||||
|
*/
|
||||||
|
|
||||||
JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS];
|
JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS];
|
||||||
JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS];
|
JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS];
|
||||||
@@ -325,6 +342,7 @@ struct jpeg_compress_struct {
|
|||||||
boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */
|
boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */
|
||||||
boolean optimize_coding; /* TRUE=optimize entropy encoding parms */
|
boolean optimize_coding; /* TRUE=optimize entropy encoding parms */
|
||||||
boolean CCIR601_sampling; /* TRUE=first samples are cosited */
|
boolean CCIR601_sampling; /* TRUE=first samples are cosited */
|
||||||
|
boolean do_fancy_downsampling; /* TRUE=apply fancy downsampling */
|
||||||
int smoothing_factor; /* 1..100, or 0 for no input smoothing */
|
int smoothing_factor; /* 1..100, or 0 for no input smoothing */
|
||||||
J_DCT_METHOD dct_method; /* DCT algorithm selector */
|
J_DCT_METHOD dct_method; /* DCT algorithm selector */
|
||||||
|
|
||||||
@@ -368,6 +386,9 @@ struct jpeg_compress_struct {
|
|||||||
int max_h_samp_factor; /* largest h_samp_factor */
|
int max_h_samp_factor; /* largest h_samp_factor */
|
||||||
int max_v_samp_factor; /* largest v_samp_factor */
|
int max_v_samp_factor; /* largest v_samp_factor */
|
||||||
|
|
||||||
|
int min_DCT_h_scaled_size; /* smallest DCT_h_scaled_size of any component */
|
||||||
|
int min_DCT_v_scaled_size; /* smallest DCT_v_scaled_size of any component */
|
||||||
|
|
||||||
JDIMENSION total_iMCU_rows; /* # of iMCU rows to be input to coef ctlr */
|
JDIMENSION total_iMCU_rows; /* # of iMCU rows to be input to coef ctlr */
|
||||||
/* The coefficient controller receives data in units of MCU rows as defined
|
/* The coefficient controller receives data in units of MCU rows as defined
|
||||||
* for fully interleaved scans (whether the JPEG file is interleaved or not).
|
* for fully interleaved scans (whether the JPEG file is interleaved or not).
|
||||||
@@ -393,6 +414,10 @@ struct jpeg_compress_struct {
|
|||||||
|
|
||||||
int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */
|
int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */
|
||||||
|
|
||||||
|
int block_size; /* the basic DCT block size: 1..16 */
|
||||||
|
const int * natural_order; /* natural-order position array */
|
||||||
|
int lim_Se; /* min( Se, DCTSIZE2-1 ) */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Links to compression subobjects (methods and private variables of modules)
|
* Links to compression subobjects (methods and private variables of modules)
|
||||||
*/
|
*/
|
||||||
@@ -539,6 +564,7 @@ struct jpeg_decompress_struct {
|
|||||||
jpeg_component_info * comp_info;
|
jpeg_component_info * comp_info;
|
||||||
/* comp_info[i] describes component that appears i'th in SOF */
|
/* comp_info[i] describes component that appears i'th in SOF */
|
||||||
|
|
||||||
|
boolean is_baseline; /* TRUE if Baseline SOF0 encountered */
|
||||||
boolean progressive_mode; /* TRUE if SOFn specifies progressive mode */
|
boolean progressive_mode; /* TRUE if SOFn specifies progressive mode */
|
||||||
boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */
|
boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */
|
||||||
|
|
||||||
@@ -579,7 +605,8 @@ struct jpeg_decompress_struct {
|
|||||||
int max_h_samp_factor; /* largest h_samp_factor */
|
int max_h_samp_factor; /* largest h_samp_factor */
|
||||||
int max_v_samp_factor; /* largest v_samp_factor */
|
int max_v_samp_factor; /* largest v_samp_factor */
|
||||||
|
|
||||||
int min_DCT_scaled_size; /* smallest DCT_scaled_size of any component */
|
int min_DCT_h_scaled_size; /* smallest DCT_h_scaled_size of any component */
|
||||||
|
int min_DCT_v_scaled_size; /* smallest DCT_v_scaled_size of any component */
|
||||||
|
|
||||||
JDIMENSION total_iMCU_rows; /* # of iMCU rows in image */
|
JDIMENSION total_iMCU_rows; /* # of iMCU rows in image */
|
||||||
/* The coefficient controller's input and output progress is measured in
|
/* The coefficient controller's input and output progress is measured in
|
||||||
@@ -587,7 +614,7 @@ struct jpeg_decompress_struct {
|
|||||||
* in fully interleaved JPEG scans, but are used whether the scan is
|
* in fully interleaved JPEG scans, but are used whether the scan is
|
||||||
* interleaved or not. We define an iMCU row as v_samp_factor DCT block
|
* interleaved or not. We define an iMCU row as v_samp_factor DCT block
|
||||||
* rows of each component. Therefore, the IDCT output contains
|
* rows of each component. Therefore, the IDCT output contains
|
||||||
* v_samp_factor*DCT_scaled_size sample rows of a component per iMCU row.
|
* v_samp_factor*DCT_v_scaled_size sample rows of a component per iMCU row.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
JSAMPLE * sample_range_limit; /* table for fast range-limiting */
|
JSAMPLE * sample_range_limit; /* table for fast range-limiting */
|
||||||
@@ -611,6 +638,12 @@ struct jpeg_decompress_struct {
|
|||||||
|
|
||||||
int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */
|
int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */
|
||||||
|
|
||||||
|
/* These fields are derived from Se of first SOS marker.
|
||||||
|
*/
|
||||||
|
int block_size; /* the basic DCT block size: 1..16 */
|
||||||
|
const int * natural_order; /* natural-order position array for entropy decode */
|
||||||
|
int lim_Se; /* min( Se, DCTSIZE2-1 ) for entropy decode */
|
||||||
|
|
||||||
/* This field is shared between entropy decoder and marker parser.
|
/* This field is shared between entropy decoder and marker parser.
|
||||||
* It is either zero or the code of a JPEG marker that has been
|
* It is either zero or the code of a JPEG marker that has been
|
||||||
* read from the data source, but has not yet been processed.
|
* read from the data source, but has not yet been processed.
|
||||||
@@ -840,11 +873,14 @@ typedef JMETHOD(boolean, jpeg_marker_parser_method, (j_decompress_ptr cinfo));
|
|||||||
#define jpeg_destroy_decompress jDestDecompress
|
#define jpeg_destroy_decompress jDestDecompress
|
||||||
#define jpeg_stdio_dest jStdDest
|
#define jpeg_stdio_dest jStdDest
|
||||||
#define jpeg_stdio_src jStdSrc
|
#define jpeg_stdio_src jStdSrc
|
||||||
|
#define jpeg_mem_dest jMemDest
|
||||||
|
#define jpeg_mem_src jMemSrc
|
||||||
#define jpeg_set_defaults jSetDefaults
|
#define jpeg_set_defaults jSetDefaults
|
||||||
#define jpeg_set_colorspace jSetColorspace
|
#define jpeg_set_colorspace jSetColorspace
|
||||||
#define jpeg_default_colorspace jDefColorspace
|
#define jpeg_default_colorspace jDefColorspace
|
||||||
#define jpeg_set_quality jSetQuality
|
#define jpeg_set_quality jSetQuality
|
||||||
#define jpeg_set_linear_quality jSetLQuality
|
#define jpeg_set_linear_quality jSetLQuality
|
||||||
|
#define jpeg_default_qtables jDefQTables
|
||||||
#define jpeg_add_quant_table jAddQuantTable
|
#define jpeg_add_quant_table jAddQuantTable
|
||||||
#define jpeg_quality_scaling jQualityScaling
|
#define jpeg_quality_scaling jQualityScaling
|
||||||
#define jpeg_simple_progression jSimProgress
|
#define jpeg_simple_progression jSimProgress
|
||||||
@@ -854,6 +890,7 @@ typedef JMETHOD(boolean, jpeg_marker_parser_method, (j_decompress_ptr cinfo));
|
|||||||
#define jpeg_start_compress jStrtCompress
|
#define jpeg_start_compress jStrtCompress
|
||||||
#define jpeg_write_scanlines jWrtScanlines
|
#define jpeg_write_scanlines jWrtScanlines
|
||||||
#define jpeg_finish_compress jFinCompress
|
#define jpeg_finish_compress jFinCompress
|
||||||
|
#define jpeg_calc_jpeg_dimensions jCjpegDimensions
|
||||||
#define jpeg_write_raw_data jWrtRawData
|
#define jpeg_write_raw_data jWrtRawData
|
||||||
#define jpeg_write_marker jWrtMarker
|
#define jpeg_write_marker jWrtMarker
|
||||||
#define jpeg_write_m_header jWrtMHeader
|
#define jpeg_write_m_header jWrtMHeader
|
||||||
@@ -870,6 +907,7 @@ typedef JMETHOD(boolean, jpeg_marker_parser_method, (j_decompress_ptr cinfo));
|
|||||||
#define jpeg_input_complete jInComplete
|
#define jpeg_input_complete jInComplete
|
||||||
#define jpeg_new_colormap jNewCMap
|
#define jpeg_new_colormap jNewCMap
|
||||||
#define jpeg_consume_input jConsumeInput
|
#define jpeg_consume_input jConsumeInput
|
||||||
|
#define jpeg_core_output_dimensions jCoreDimensions
|
||||||
#define jpeg_calc_output_dimensions jCalcDimensions
|
#define jpeg_calc_output_dimensions jCalcDimensions
|
||||||
#define jpeg_save_markers jSaveMarkers
|
#define jpeg_save_markers jSaveMarkers
|
||||||
#define jpeg_set_marker_processor jSetMarker
|
#define jpeg_set_marker_processor jSetMarker
|
||||||
@@ -914,6 +952,14 @@ EXTERN(void) jpeg_destroy_decompress JPP((j_decompress_ptr cinfo));
|
|||||||
EXTERN(void) jpeg_stdio_dest JPP((j_compress_ptr cinfo, FILE * outfile));
|
EXTERN(void) jpeg_stdio_dest JPP((j_compress_ptr cinfo, FILE * outfile));
|
||||||
EXTERN(void) jpeg_stdio_src JPP((j_decompress_ptr cinfo, FILE * infile));
|
EXTERN(void) jpeg_stdio_src JPP((j_decompress_ptr cinfo, FILE * infile));
|
||||||
|
|
||||||
|
/* Data source and destination managers: memory buffers. */
|
||||||
|
EXTERN(void) jpeg_mem_dest JPP((j_compress_ptr cinfo,
|
||||||
|
unsigned char ** outbuffer,
|
||||||
|
unsigned long * outsize));
|
||||||
|
EXTERN(void) jpeg_mem_src JPP((j_decompress_ptr cinfo,
|
||||||
|
unsigned char * inbuffer,
|
||||||
|
unsigned long insize));
|
||||||
|
|
||||||
/* Default parameter setup for compression */
|
/* Default parameter setup for compression */
|
||||||
EXTERN(void) jpeg_set_defaults JPP((j_compress_ptr cinfo));
|
EXTERN(void) jpeg_set_defaults JPP((j_compress_ptr cinfo));
|
||||||
/* Compression parameter setup aids */
|
/* Compression parameter setup aids */
|
||||||
@@ -925,6 +971,8 @@ EXTERN(void) jpeg_set_quality JPP((j_compress_ptr cinfo, int quality,
|
|||||||
EXTERN(void) jpeg_set_linear_quality JPP((j_compress_ptr cinfo,
|
EXTERN(void) jpeg_set_linear_quality JPP((j_compress_ptr cinfo,
|
||||||
int scale_factor,
|
int scale_factor,
|
||||||
boolean force_baseline));
|
boolean force_baseline));
|
||||||
|
EXTERN(void) jpeg_default_qtables JPP((j_compress_ptr cinfo,
|
||||||
|
boolean force_baseline));
|
||||||
EXTERN(void) jpeg_add_quant_table JPP((j_compress_ptr cinfo, int which_tbl,
|
EXTERN(void) jpeg_add_quant_table JPP((j_compress_ptr cinfo, int which_tbl,
|
||||||
const unsigned int *basic_table,
|
const unsigned int *basic_table,
|
||||||
int scale_factor,
|
int scale_factor,
|
||||||
@@ -944,12 +992,15 @@ EXTERN(JDIMENSION) jpeg_write_scanlines JPP((j_compress_ptr cinfo,
|
|||||||
JDIMENSION num_lines));
|
JDIMENSION num_lines));
|
||||||
EXTERN(void) jpeg_finish_compress JPP((j_compress_ptr cinfo));
|
EXTERN(void) jpeg_finish_compress JPP((j_compress_ptr cinfo));
|
||||||
|
|
||||||
|
/* Precalculate JPEG dimensions for current compression parameters. */
|
||||||
|
EXTERN(void) jpeg_calc_jpeg_dimensions JPP((j_compress_ptr cinfo));
|
||||||
|
|
||||||
/* Replaces jpeg_write_scanlines when writing raw downsampled data. */
|
/* Replaces jpeg_write_scanlines when writing raw downsampled data. */
|
||||||
EXTERN(JDIMENSION) jpeg_write_raw_data JPP((j_compress_ptr cinfo,
|
EXTERN(JDIMENSION) jpeg_write_raw_data JPP((j_compress_ptr cinfo,
|
||||||
JSAMPIMAGE data,
|
JSAMPIMAGE data,
|
||||||
JDIMENSION num_lines));
|
JDIMENSION num_lines));
|
||||||
|
|
||||||
/* Write a special marker. See libjpeg.doc concerning safe usage. */
|
/* Write a special marker. See libjpeg.txt concerning safe usage. */
|
||||||
EXTERN(void) jpeg_write_marker
|
EXTERN(void) jpeg_write_marker
|
||||||
JPP((j_compress_ptr cinfo, int marker,
|
JPP((j_compress_ptr cinfo, int marker,
|
||||||
const JOCTET * dataptr, unsigned int datalen));
|
const JOCTET * dataptr, unsigned int datalen));
|
||||||
@@ -1003,6 +1054,7 @@ EXTERN(int) jpeg_consume_input JPP((j_decompress_ptr cinfo));
|
|||||||
#define JPEG_SCAN_COMPLETED 4 /* Completed last iMCU row of a scan */
|
#define JPEG_SCAN_COMPLETED 4 /* Completed last iMCU row of a scan */
|
||||||
|
|
||||||
/* Precalculate output dimensions for current decompression parameters. */
|
/* Precalculate output dimensions for current decompression parameters. */
|
||||||
|
EXTERN(void) jpeg_core_output_dimensions JPP((j_decompress_ptr cinfo));
|
||||||
EXTERN(void) jpeg_calc_output_dimensions JPP((j_decompress_ptr cinfo));
|
EXTERN(void) jpeg_calc_output_dimensions JPP((j_decompress_ptr cinfo));
|
||||||
|
|
||||||
/* Control saving of COM and APPn markers into marker_list. */
|
/* Control saving of COM and APPn markers into marker_list. */
|
||||||
@@ -1098,7 +1150,9 @@ struct jpeg_color_quantizer { long dummy; };
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
#ifndef DONT_USE_EXTERN_C
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* JPEGLIB_H */
|
#endif /* JPEGLIB_H */
|
||||||
|
|||||||
Reference in New Issue
Block a user