dcmjpeg/libijg16/jerror16.h

00001 /*
00002  * jerror.h
00003  *
00004  * Copyright (C) 1994-1998, Thomas G. Lane.
00005  * This file is part of the Independent JPEG Group's software.
00006  * For conditions of distribution and use, see the accompanying README file.
00007  *
00008  * This file defines the error and message codes for the JPEG library.
00009  * Edit this file to add new codes, or to translate the message strings to
00010  * some other language.
00011  * A set of error-reporting macros are defined too.  Some applications using
00012  * the JPEG library may wish to include this file to get the error codes
00013  * and/or the macros.
00014  */
00015 
00016 /*
00017  * To define the enum list of message codes, include this file without
00018  * defining macro JMESSAGE.  To create a message string table, include it
00019  * again with a suitable JMESSAGE definition (see jerror.c for an example).
00020  */
00021 #ifndef JMESSAGE
00022 #ifndef JERROR_H
00023 /* First time through, define the enum list */
00024 #define JMAKE_ENUM_LIST
00025 #else
00026 /* Repeated inclusions of this file are no-ops unless JMESSAGE is defined */
00027 #define JMESSAGE(code,string)
00028 #endif /* JERROR_H */
00029 #endif /* JMESSAGE */
00030 
00031 #ifdef JMAKE_ENUM_LIST
00032 
00033 typedef enum {
00034 
00035 #define JMESSAGE(code,string)   code ,
00036 
00037 #endif /* JMAKE_ENUM_LIST */
00038 
00039 JMESSAGE(JMSG_NOMESSAGE, "Bogus message code 0") /* Must be first entry! */
00040 
00041 /* For maintenance convenience, list is alphabetical by message code name */
00042 JMESSAGE(JERR_ARITH_NOTIMPL,
00043      "Sorry, there are legal restrictions on arithmetic coding")
00044 JMESSAGE(JERR_BAD_ALIGN_TYPE, "ALIGN_TYPE is wrong, please fix")
00045 JMESSAGE(JERR_BAD_ALLOC_CHUNK, "MAX_ALLOC_CHUNK is wrong, please fix")
00046 JMESSAGE(JERR_BAD_BUFFER_MODE, "Bogus buffer control mode")
00047 JMESSAGE(JERR_BAD_COMPONENT_ID, "Invalid component ID 0 in SOS")
00048 JMESSAGE(JERR_BAD_DCT_COEF, "DCT coefficient out of range")
00049 JMESSAGE(JERR_BAD_DCTSIZE, "IDCT output block size 0 not supported")
00050 JMESSAGE(JERR_BAD_DIFF, "spatial difference out of range")
00051 JMESSAGE(JERR_BAD_HUFF_TABLE, "Bogus Huffman table definition")
00052 JMESSAGE(JERR_BAD_IN_COLORSPACE, "Bogus input colorspace")
00053 JMESSAGE(JERR_BAD_J_COLORSPACE, "Bogus JPEG colorspace")
00054 JMESSAGE(JERR_BAD_LENGTH, "Bogus marker length")
00055 JMESSAGE(JERR_BAD_LIB_VERSION,
00056      "Wrong JPEG library version: library is 0, caller expects 0")
00057 JMESSAGE(JERR_BAD_LOSSLESS,
00058      "Invalid lossless parameters Ss=0 Se=0 Ah=0 Al=0")
00059 JMESSAGE(JERR_BAD_LOSSLESS_SCRIPT,
00060      "Invalid lossless parameters at scan script entry 0")
00061 JMESSAGE(JERR_BAD_MCU_SIZE, "Sampling factors too large for interleaved scan")
00062 JMESSAGE(JERR_BAD_POOL_ID, "Invalid memory pool code 0")
00063 JMESSAGE(JERR_BAD_PRECISION, "Unsupported JPEG data precision 0")
00064 JMESSAGE(JERR_BAD_PROGRESSION,
00065      "Invalid progressive parameters Ss=0 Se=0 Ah=0 Al=0")
00066 JMESSAGE(JERR_BAD_PROG_SCRIPT,
00067      "Invalid progressive parameters at scan script entry 0")
00068 JMESSAGE(JERR_BAD_RESTART, "Invalid restart interval: 0, must be an integer multiple of the number of MCUs in an MCU_row (0)")
00069 JMESSAGE(JERR_BAD_SAMPLING, "Bogus sampling factors")
00070 JMESSAGE(JERR_BAD_SCAN_SCRIPT, "Invalid scan script at entry 0")
00071 JMESSAGE(JERR_BAD_STATE, "Improper call to JPEG library in state 0")
00072 JMESSAGE(JERR_BAD_STRUCT_SIZE,
00073      "JPEG parameter struct mismatch: library thinks size is 0, caller expects 0")
00074 JMESSAGE(JERR_BAD_VIRTUAL_ACCESS, "Bogus virtual array access")
00075 JMESSAGE(JERR_BUFFER_SIZE, "Buffer passed to JPEG library is too small")
00076 JMESSAGE(JERR_CANT_SUSPEND, "Suspension not allowed here")
00077 JMESSAGE(JERR_CANT_TRANSCODE,
00078      "Cannot transcode to/from lossless JPEG datastreams")
00079 JMESSAGE(JERR_CCIR601_NOTIMPL, "CCIR601 sampling not implemented yet")
00080 JMESSAGE(JERR_COMPONENT_COUNT, "Too many color components: 0, max 0")
00081 JMESSAGE(JERR_CONVERSION_NOTIMPL, "Unsupported color conversion request")
00082 JMESSAGE(JERR_DAC_INDEX, "Bogus DAC index 0")
00083 JMESSAGE(JERR_DAC_VALUE, "Bogus DAC value 0x0")
00084 JMESSAGE(JERR_DHT_INDEX, "Bogus DHT index 0")
00085 JMESSAGE(JERR_DQT_INDEX, "Bogus DQT index 0")
00086 JMESSAGE(JERR_EMPTY_IMAGE, "Empty JPEG image (DNL not supported)")
00087 JMESSAGE(JERR_EMS_READ, "Read from EMS failed")
00088 JMESSAGE(JERR_EMS_WRITE, "Write to EMS failed")
00089 JMESSAGE(JERR_EOI_EXPECTED, "Didn't expect more than one scan")
00090 JMESSAGE(JERR_FILE_READ, "Input file read error")
00091 JMESSAGE(JERR_FILE_WRITE, "Output file write error --- out of disk space?")
00092 JMESSAGE(JERR_FRACT_SAMPLE_NOTIMPL, "Fractional sampling not implemented yet")
00093 JMESSAGE(JERR_HUFF_CLEN_OVERFLOW, "Huffman code size table overflow")
00094 JMESSAGE(JERR_HUFF_MISSING_CODE, "Missing Huffman code table entry")
00095 JMESSAGE(JERR_IMAGE_TOO_BIG, "Maximum supported image dimension is 0 pixels")
00096 JMESSAGE(JERR_INPUT_EMPTY, "Empty input file")
00097 JMESSAGE(JERR_INPUT_EOF, "Premature end of input file")
00098 JMESSAGE(JERR_MISMATCHED_QUANT_TABLE,
00099      "Cannot transcode due to multiple use of quantization table 0")
00100 JMESSAGE(JERR_MISSING_DATA, "Scan script does not transmit all data")
00101 JMESSAGE(JERR_MODE_CHANGE, "Invalid color quantization mode change")
00102 JMESSAGE(JERR_NOTIMPL, "Not implemented yet")
00103 JMESSAGE(JERR_NOT_COMPILED, "Requested feature was omitted at compile time")
00104 #ifdef WITH_ARITHMETIC_PATCH
00105 JMESSAGE(JERR_NO_ARITH_TABLE, "Arithmetic table 0x00 was not defined")
00106 #endif
00107 JMESSAGE(JERR_NO_BACKING_STORE, "Backing store not supported")
00108 JMESSAGE(JERR_NO_HUFF_TABLE, "Huffman table 0x00 was not defined")
00109 JMESSAGE(JERR_NO_IMAGE, "JPEG datastream contains no image")
00110 JMESSAGE(JERR_NO_LOSSLESS_SCRIPT, "Lossless encoding was requested but no scan script was supplied")
00111 JMESSAGE(JERR_NO_QUANT_TABLE, "Quantization table 0x00 was not defined")
00112 JMESSAGE(JERR_NO_SOI, "Not a JPEG file: starts with 0x00 0x00")
00113 JMESSAGE(JERR_OUT_OF_MEMORY, "Insufficient memory (case 0)")
00114 JMESSAGE(JERR_QUANT_COMPONENTS,
00115      "Cannot quantize more than 0 color components")
00116 JMESSAGE(JERR_QUANT_FEW_COLORS, "Cannot quantize to fewer than 0 colors")
00117 JMESSAGE(JERR_QUANT_MANY_COLORS, "Cannot quantize to more than 0 colors")
00118 JMESSAGE(JERR_SOF_DUPLICATE, "Invalid JPEG file structure: two SOF markers")
00119 JMESSAGE(JERR_SOF_NO_SOS, "Invalid JPEG file structure: missing SOS marker")
00120 JMESSAGE(JERR_SOF_UNSUPPORTED, "Unsupported JPEG process: SOF type 0x00")
00121 JMESSAGE(JERR_SOI_DUPLICATE, "Invalid JPEG file structure: two SOI markers")
00122 JMESSAGE(JERR_SOS_NO_SOF, "Invalid JPEG file structure: SOS before SOF")
00123 JMESSAGE(JERR_TFILE_CREATE, "Failed to create temporary file ")
00124 JMESSAGE(JERR_TFILE_READ, "Read failed on temporary file")
00125 JMESSAGE(JERR_TFILE_SEEK, "Seek failed on temporary file")
00126 JMESSAGE(JERR_TFILE_WRITE,
00127      "Write failed on temporary file --- out of disk space?")
00128 JMESSAGE(JERR_TOO_LITTLE_DATA, "Application transferred too few scanlines")
00129 JMESSAGE(JERR_UNKNOWN_MARKER, "Unsupported marker type 0x00")
00130 JMESSAGE(JERR_VIRTUAL_BUG, "Virtual array controller messed up")
00131 JMESSAGE(JERR_WIDTH_OVERFLOW, "Image too wide for this implementation")
00132 JMESSAGE(JERR_XMS_READ, "Read from XMS failed")
00133 JMESSAGE(JERR_XMS_WRITE, "Write to XMS failed")
00134 JMESSAGE(JMSG_COPYRIGHT, JCOPYRIGHT)
00135 JMESSAGE(JMSG_VERSION, JVERSION)
00136 JMESSAGE(JTRC_16BIT_TABLES,
00137      "Caution: quantization tables are too coarse for baseline JPEG")
00138 JMESSAGE(JTRC_ADOBE,
00139      "Adobe APP14 marker: version 0, flags 0x0000 0x0000, transform 0")
00140 JMESSAGE(JTRC_APP0, "Unknown APP0 marker (not JFIF), length 0")
00141 JMESSAGE(JTRC_APP14, "Unknown APP14 marker (not Adobe), length 0")
00142 JMESSAGE(JTRC_DAC, "Define Arithmetic Table 0x00: 0x00")
00143 JMESSAGE(JTRC_DHT, "Define Huffman Table 0x00")
00144 JMESSAGE(JTRC_DQT, "Define Quantization Table 0  precision 0")
00145 JMESSAGE(JTRC_DRI, "Define Restart Interval 0")
00146 JMESSAGE(JTRC_EMS_CLOSE, "Freed EMS handle 0")
00147 JMESSAGE(JTRC_EMS_OPEN, "Obtained EMS handle 0")
00148 JMESSAGE(JTRC_EOI, "End Of Image")
00149 JMESSAGE(JTRC_HUFFBITS, "          0   0   0   0   0   0   0   0")
00150 JMESSAGE(JTRC_JFIF, "JFIF APP0 marker: version 0.00, density 0x0  0")
00151 JMESSAGE(JTRC_JFIF_BADTHUMBNAILSIZE,
00152      "Warning: thumbnail image size does not match data length 0")
00153 JMESSAGE(JTRC_JFIF_EXTENSION,
00154      "JFIF extension marker: type 0x00, length 0")
00155 JMESSAGE(JTRC_JFIF_THUMBNAIL, "    with 0 x 0 thumbnail image")
00156 JMESSAGE(JTRC_MISC_MARKER, "Miscellaneous marker 0x00, length 0")
00157 JMESSAGE(JTRC_PARMLESS_MARKER, "Unexpected marker 0x00")
00158 JMESSAGE(JTRC_QUANTVALS, "           0    0    0    0    0    0    0    0")
00159 JMESSAGE(JTRC_QUANT_3_NCOLORS, "Quantizing to 0 = 0*0*0 colors")
00160 JMESSAGE(JTRC_QUANT_NCOLORS, "Quantizing to 0 colors")
00161 JMESSAGE(JTRC_QUANT_SELECTED, "Selected 0 colors for quantization")
00162 JMESSAGE(JTRC_RECOVERY_ACTION, "At marker 0x00, recovery action 0")
00163 JMESSAGE(JTRC_RST, "RST0")
00164 JMESSAGE(JTRC_SMOOTH_NOTIMPL,
00165      "Smoothing not supported with nonstandard sampling ratios")
00166 JMESSAGE(JTRC_SOF, "Start Of Frame 0x00: width=0, height=0, components=0")
00167 JMESSAGE(JTRC_SOF_COMPONENT, "    Component 0: 0hx0v q=0")
00168 JMESSAGE(JTRC_SOI, "Start of Image")
00169 JMESSAGE(JTRC_SOS, "Start Of Scan: 0 components")
00170 JMESSAGE(JTRC_SOS_COMPONENT, "    Component 0: dc=0 ac=0")
00171 JMESSAGE(JTRC_SOS_PARAMS, "  Ss=0, Se=0, Ah=0, Al=0")
00172 JMESSAGE(JTRC_TFILE_CLOSE, "Closed temporary file ")
00173 JMESSAGE(JTRC_TFILE_OPEN, "Opened temporary file ")
00174 JMESSAGE(JTRC_THUMB_JPEG,
00175      "JFIF extension marker: JPEG-compressed thumbnail image, length 0")
00176 JMESSAGE(JTRC_THUMB_PALETTE,
00177      "JFIF extension marker: palette thumbnail image, length 0")
00178 JMESSAGE(JTRC_THUMB_RGB,
00179      "JFIF extension marker: RGB thumbnail image, length 0")
00180 JMESSAGE(JTRC_UNKNOWN_LOSSLESS_IDS,
00181      "Unrecognized component IDs 0 0 0, assuming RGB")
00182 JMESSAGE(JTRC_UNKNOWN_LOSSY_IDS,
00183      "Unrecognized component IDs 0 0 0, assuming YCbCr")
00184 JMESSAGE(JTRC_XMS_CLOSE, "Freed XMS handle 0")
00185 JMESSAGE(JTRC_XMS_OPEN, "Obtained XMS handle 0")
00186 JMESSAGE(JWRN_ADOBE_XFORM, "Unknown Adobe color transform code 0")
00187 #ifdef WITH_ARITHMETIC_PATCH
00188 JMESSAGE(JWRN_ARITH_BAD_CODE, "Corrupt JPEG data: bad arithmetic code")
00189 #endif
00190 JMESSAGE(JWRN_BOGUS_PROGRESSION,
00191      "Inconsistent progression sequence for component 0 coefficient 0")
00192 JMESSAGE(JWRN_EXTRANEOUS_DATA,
00193      "Corrupt JPEG data: 0 extraneous bytes before marker 0x00")
00194 JMESSAGE(JWRN_HIT_MARKER, "Corrupt JPEG data: premature end of data segment")
00195 JMESSAGE(JWRN_HUFF_BAD_CODE, "Corrupt JPEG data: bad Huffman code")
00196 JMESSAGE(JWRN_JFIF_MAJOR, "Warning: unknown JFIF revision number 0.00")
00197 JMESSAGE(JWRN_JPEG_EOF, "Premature end of JPEG file")
00198 JMESSAGE(JWRN_MUST_DOWNSCALE,
00199      "Must downscale data from 0 bits to 0")
00200 JMESSAGE(JWRN_MUST_RESYNC,
00201      "Corrupt JPEG data: found marker 0x00 instead of RST0")
00202 JMESSAGE(JWRN_NOT_SEQUENTIAL, "Invalid SOS parameters for sequential JPEG")
00203 JMESSAGE(JWRN_TOO_MUCH_DATA, "Application transferred too many scanlines")
00204 
00205 #ifdef JMAKE_ENUM_LIST
00206 
00207   JMSG_LASTMSGCODE
00208 } J_MESSAGE_CODE;
00209 
00210 #undef JMAKE_ENUM_LIST
00211 #endif /* JMAKE_ENUM_LIST */
00212 
00213 /* Zap JMESSAGE macro so that future re-inclusions do nothing by default */
00214 #undef JMESSAGE
00215 
00216 
00217 #ifndef JERROR_H
00218 #define JERROR_H
00219 
00220 /* Macros to simplify using the error and trace message stuff */
00221 /* The first parameter is either type of cinfo pointer */
00222 
00223 /* Fatal errors (print message and exit) */
00224 #define ERREXIT(cinfo,code)  \
00225   ((cinfo)->err->msg_code = (code), \
00226    (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
00227 #define ERREXIT1(cinfo,code,p1)  \
00228   ((cinfo)->err->msg_code = (code), \
00229    (cinfo)->err->msg_parm.i[0] = (p1), \
00230    (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
00231 #define ERREXIT2(cinfo,code,p1,p2)  \
00232   ((cinfo)->err->msg_code = (code), \
00233    (cinfo)->err->msg_parm.i[0] = (p1), \
00234    (cinfo)->err->msg_parm.i[1] = (p2), \
00235    (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
00236 #define ERREXIT3(cinfo,code,p1,p2,p3)  \
00237   ((cinfo)->err->msg_code = (code), \
00238    (cinfo)->err->msg_parm.i[0] = (p1), \
00239    (cinfo)->err->msg_parm.i[1] = (p2), \
00240    (cinfo)->err->msg_parm.i[2] = (p3), \
00241    (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
00242 #define ERREXIT4(cinfo,code,p1,p2,p3,p4)  \
00243   ((cinfo)->err->msg_code = (code), \
00244    (cinfo)->err->msg_parm.i[0] = (p1), \
00245    (cinfo)->err->msg_parm.i[1] = (p2), \
00246    (cinfo)->err->msg_parm.i[2] = (p3), \
00247    (cinfo)->err->msg_parm.i[3] = (p4), \
00248    (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
00249 #define ERREXITS(cinfo,code,str)  \
00250   ((cinfo)->err->msg_code = (code), \
00251    strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \
00252    (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
00253 
00254 #define MAKESTMT(stuff)     do { stuff } while (0)
00255 
00256 /* Nonfatal errors (we can keep going, but the data is probably corrupt) */
00257 #define WARNMS(cinfo,code)  \
00258   ((cinfo)->err->msg_code = (code), \
00259    (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1))
00260 #define WARNMS1(cinfo,code,p1)  \
00261   ((cinfo)->err->msg_code = (code), \
00262    (cinfo)->err->msg_parm.i[0] = (p1), \
00263    (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1))
00264 #define WARNMS2(cinfo,code,p1,p2)  \
00265   ((cinfo)->err->msg_code = (code), \
00266    (cinfo)->err->msg_parm.i[0] = (p1), \
00267    (cinfo)->err->msg_parm.i[1] = (p2), \
00268    (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1))
00269 
00270 /* Informational/debugging messages */
00271 #define TRACEMS(cinfo,lvl,code)  \
00272   ((cinfo)->err->msg_code = (code), \
00273    (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
00274 #define TRACEMS1(cinfo,lvl,code,p1)  \
00275   ((cinfo)->err->msg_code = (code), \
00276    (cinfo)->err->msg_parm.i[0] = (p1), \
00277    (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
00278 #define TRACEMS2(cinfo,lvl,code,p1,p2)  \
00279   ((cinfo)->err->msg_code = (code), \
00280    (cinfo)->err->msg_parm.i[0] = (p1), \
00281    (cinfo)->err->msg_parm.i[1] = (p2), \
00282    (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
00283 #define TRACEMS3(cinfo,lvl,code,p1,p2,p3)  \
00284   MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
00285        _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); \
00286        (cinfo)->err->msg_code = (code); \
00287        (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
00288 #define TRACEMS4(cinfo,lvl,code,p1,p2,p3,p4)  \
00289   MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
00290        _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \
00291        (cinfo)->err->msg_code = (code); \
00292        (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
00293 #define TRACEMS5(cinfo,lvl,code,p1,p2,p3,p4,p5)  \
00294   MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
00295        _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \
00296        _mp[4] = (p5); \
00297        (cinfo)->err->msg_code = (code); \
00298        (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
00299 #define TRACEMS8(cinfo,lvl,code,p1,p2,p3,p4,p5,p6,p7,p8)  \
00300   MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
00301        _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \
00302        _mp[4] = (p5); _mp[5] = (p6); _mp[6] = (p7); _mp[7] = (p8); \
00303        (cinfo)->err->msg_code = (code); \
00304        (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
00305 #define TRACEMSS(cinfo,lvl,code,str)  \
00306   ((cinfo)->err->msg_code = (code), \
00307    strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \
00308    (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
00309 
00310 #endif /* JERROR_H */


Generated on 6 Jan 2011 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.5.1