51#define INPUT_VARS(cinfo) \
52 struct jpeg_source_mgr * datasrc = (cinfo)->src; \
53 const JOCTET * next_input_byte = datasrc->next_input_byte; \
54 size_t bytes_in_buffer = datasrc->bytes_in_buffer
57#define INPUT_SYNC(cinfo) \
58 ( datasrc->next_input_byte = next_input_byte, \
59 datasrc->bytes_in_buffer = bytes_in_buffer )
62#define INPUT_RELOAD(cinfo) \
63 ( next_input_byte = datasrc->next_input_byte, \
64 bytes_in_buffer = datasrc->bytes_in_buffer )
70#define MAKE_BYTE_AVAIL(cinfo,action) \
71 if (bytes_in_buffer == 0) { \
72 if (! (*datasrc->fill_input_buffer) (cinfo)) \
74 INPUT_RELOAD(cinfo); \
80#define INPUT_BYTE(cinfo,V,action) \
81 MAKESTMT( MAKE_BYTE_AVAIL(cinfo,action); \
83 V = GETJOCTET(*next_input_byte++); )
88#define INPUT_2BYTES(cinfo,V,action) \
89 MAKESTMT( MAKE_BYTE_AVAIL(cinfo,action); \
91 V = ((unsigned int) GETJOCTET(*next_input_byte++)) << 8; \
92 MAKE_BYTE_AVAIL(cinfo,action); \
94 V += GETJOCTET(*next_input_byte++); )
136 if (cinfo->marker->saw_SOI)
137 ERREXIT(cinfo, JERR_SOI_DUPLICATE);
142 cinfo->arith_dc_L[
i] = 0;
143 cinfo->arith_dc_U[
i] = 1;
144 cinfo->arith_ac_K[
i] = 5;
146 cinfo->restart_interval = 0;
151 cinfo->CCIR601_sampling =
FALSE;
153 cinfo->saw_JFIF_marker =
FALSE;
154 cinfo->JFIF_major_version = 1;
155 cinfo->JFIF_minor_version = 1;
156 cinfo->density_unit = 0;
157 cinfo->X_density = 1;
158 cinfo->Y_density = 1;
159 cinfo->saw_Adobe_marker =
FALSE;
160 cinfo->Adobe_transform = 0;
162 cinfo->marker->saw_SOI =
TRUE;
177 cinfo->progressive_mode = is_prog;
178 cinfo->arith_code = is_arith;
189 TRACEMS4(cinfo, 1, JTRC_SOF, cinfo->unread_marker,
190 (
int) cinfo->image_width, (
int) cinfo->image_height,
191 cinfo->num_components);
193 if (cinfo->marker->saw_SOF)
194 ERREXIT(cinfo, JERR_SOF_DUPLICATE);
199 if (cinfo->image_height <= 0 || cinfo->image_width <= 0
200 || cinfo->num_components <= 0)
201 ERREXIT(cinfo, JERR_EMPTY_IMAGE);
203 if (
length != (cinfo->num_components * 3))
204 ERREXIT(cinfo, JERR_BAD_LENGTH);
206 if (cinfo->comp_info ==
NULL)
211 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
216 compptr->h_samp_factor = (
c >> 4) & 15;
220 TRACEMS4(cinfo, 1, JTRC_SOF_COMPONENT,
225 cinfo->marker->saw_SOF =
TRUE;
241 if (! cinfo->marker->saw_SOF)
242 ERREXIT(cinfo, JERR_SOS_NO_SOF);
251 ERREXIT(cinfo, JERR_BAD_LENGTH);
253 cinfo->comps_in_scan =
n;
257 for (
i = 0;
i <
n;
i++) {
261 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
263 if (cc ==
compptr->component_id)
267 ERREXIT1(cinfo, JERR_BAD_COMPONENT_ID, cc);
275 TRACEMS3(cinfo, 1, JTRC_SOS_COMPONENT, cc,
285 cinfo->Ah = (
c >> 4) & 15;
286 cinfo->Al = (
c ) & 15;
288 TRACEMS4(cinfo, 1, JTRC_SOS_PARAMS, cinfo->Ss, cinfo->Se,
289 cinfo->Ah, cinfo->Al);
292 cinfo->marker->next_restart_num = 0;
295 cinfo->input_scan_number++;
302#ifdef D_ARITH_CODING_SUPPORTED
324 ERREXIT1(cinfo, JERR_DAC_INDEX, index);
337 ERREXIT(cinfo, JERR_BAD_LENGTH);
345#define get_dac(cinfo) skip_variable(cinfo)
367 TRACEMS1(cinfo, 1, JTRC_DHT, index);
371 for (
i = 1;
i <= 16;
i++) {
379 bits[1], bits[2], bits[3], bits[4],
380 bits[5], bits[6], bits[7], bits[8]);
382 bits[9], bits[10], bits[11], bits[12],
383 bits[13], bits[14], bits[15], bits[16]);
389 ERREXIT(cinfo, JERR_BAD_HUFF_TABLE);
398 htblptr = &cinfo->ac_huff_tbl_ptrs[index];
400 htblptr = &cinfo->dc_huff_tbl_ptrs[index];
404 ERREXIT1(cinfo, JERR_DHT_INDEX, index);
406 if (*htblptr ==
NULL)
410 MEMCOPY((*htblptr)->huffval, huffval,
SIZEOF((*htblptr)->huffval));
414 ERREXIT(cinfo, JERR_BAD_LENGTH);
444 if (cinfo->quant_tbl_ptrs[
n] ==
NULL)
446 quant_ptr = cinfo->quant_tbl_ptrs[
n];
457 if (cinfo->err->trace_level >= 2) {
472 ERREXIT(cinfo, JERR_BAD_LENGTH);
490 ERREXIT(cinfo, JERR_BAD_LENGTH);
496 cinfo->restart_interval = tmp;
510#define APP0_DATA_LEN 14
511#define APP14_DATA_LEN 12
512#define APPN_DATA_LEN 14
532 cinfo->saw_JFIF_marker =
TRUE;
544 if (cinfo->JFIF_major_version != 1)
545 WARNMS2(cinfo, JWRN_JFIF_MAJOR,
546 cinfo->JFIF_major_version, cinfo->JFIF_minor_version);
549 cinfo->JFIF_major_version, cinfo->JFIF_minor_version,
550 cinfo->X_density, cinfo->Y_density, cinfo->density_unit);
553 TRACEMS2(cinfo, 1, JTRC_JFIF_THUMBNAIL,
558 TRACEMS1(cinfo, 1, JTRC_JFIF_BADTHUMBNAILSIZE, (
int) totallen);
571 TRACEMS1(cinfo, 1, JTRC_THUMB_JPEG, (
int) totallen);
574 TRACEMS1(cinfo, 1, JTRC_THUMB_PALETTE, (
int) totallen);
577 TRACEMS1(cinfo, 1, JTRC_THUMB_RGB, (
int) totallen);
580 TRACEMS2(cinfo, 1, JTRC_JFIF_EXTENSION,
586 TRACEMS1(cinfo, 1, JTRC_APP0, (
int) totallen);
599 unsigned int version, flags0, flags1, transform;
613 cinfo->saw_Adobe_marker =
TRUE;
614 cinfo->Adobe_transform = (
UINT8) transform;
628 unsigned int i, numtoread;
641 for (
i = 0;
i < numtoread;
i++)
646 switch (cinfo->unread_marker) {
655 ERREXIT1(cinfo, JERR_UNKNOWN_MARKER, cinfo->unread_marker);
662 (*cinfo->src->skip_input_data) (cinfo, (
long)
length);
668#ifdef SAVE_MARKERS_SUPPORTED
676 unsigned int bytes_read, data_length;
681 if (cur_marker ==
NULL) {
688 if (cinfo->unread_marker == (
int)
M_COM)
698 cur_marker->next =
NULL;
699 cur_marker->marker = (
UINT8) cinfo->unread_marker;
700 cur_marker->original_length = (
unsigned int)
length;
701 cur_marker->data_length =
limit;
704 marker->cur_marker = cur_marker;
710 bytes_read = data_length = 0;
715 bytes_read =
marker->bytes_read;
716 data_length = cur_marker->data_length;
717 data = cur_marker->data + bytes_read;
720 while (bytes_read < data_length) {
722 marker->bytes_read = bytes_read;
726 while (bytes_read < data_length && bytes_in_buffer > 0) {
727 *
data++ = *next_input_byte++;
734 if (cur_marker !=
NULL) {
736 if (cinfo->marker_list ==
NULL) {
737 cinfo->marker_list = cur_marker;
740 while (prev->next !=
NULL)
742 prev->next = cur_marker;
745 data = cur_marker->data;
746 length = cur_marker->original_length - data_length;
752 switch (cinfo->unread_marker) {
760 TRACEMS2(cinfo, 1, JTRC_MISC_MARKER, cinfo->unread_marker,
761 (
int) (data_length +
length));
768 (*cinfo->src->skip_input_data) (cinfo, (
long)
length);
786 TRACEMS2(cinfo, 1, JTRC_MISC_MARKER, cinfo->unread_marker, (
int)
length);
790 (*cinfo->src->skip_input_data) (cinfo, (
long)
length);
819 cinfo->marker->discarded_bytes++;
836 cinfo->marker->discarded_bytes += 2;
840 if (cinfo->marker->discarded_bytes != 0) {
841 WARNMS2(cinfo, JWRN_EXTRANEOUS_DATA, cinfo->marker->discarded_bytes,
c);
842 cinfo->marker->discarded_bytes = 0;
845 cinfo->unread_marker =
c;
869 cinfo->unread_marker =
c2;
890 if (cinfo->unread_marker == 0) {
891 if (! cinfo->marker->saw_SOI) {
903 switch (cinfo->unread_marker) {
940 ERREXIT1(cinfo, JERR_SOF_UNSUPPORTED, cinfo->unread_marker);
946 cinfo->unread_marker = 0;
951 cinfo->unread_marker = 0;
991 cinfo->unread_marker - (
int)
M_APP0]) (cinfo))
1009 TRACEMS1(cinfo, 1, JTRC_PARMLESS_MARKER, cinfo->unread_marker);
1023 ERREXIT1(cinfo, JERR_UNKNOWN_MARKER, cinfo->unread_marker);
1027 cinfo->unread_marker = 0;
1049 if (cinfo->unread_marker == 0) {
1050 if (! next_marker(cinfo))
1054 if (cinfo->unread_marker ==
1055 ((
int)
M_RST0 + cinfo->marker->next_restart_num)) {
1057 TRACEMS1(cinfo, 3, JTRC_RST, cinfo->marker->next_restart_num);
1058 cinfo->unread_marker = 0;
1062 if (! (*cinfo->src->resync_to_restart) (cinfo,
1063 cinfo->marker->next_restart_num))
1068 cinfo->marker->next_restart_num = (cinfo->marker->next_restart_num + 1) & 7;
1126 int marker = cinfo->unread_marker;
1152 cinfo->unread_marker = 0;
1158 marker = cinfo->unread_marker;
1178 cinfo->comp_info =
NULL;
1179 cinfo->input_scan_number = 0;
1180 cinfo->unread_marker = 0;
1183 marker->pub.discarded_bytes = 0;
1213 marker->length_limit_COM = 0;
1214 for (
i = 0;
i < 16;
i++) {
1216 marker->length_limit_APPn[
i] = 0;
1229#ifdef SAVE_MARKERS_SUPPORTED
1237 jpeg_marker_parser_method processor;
1264 marker->process_COM = processor;
1282 jpeg_marker_parser_method
routine)
T limit(T val, T min, T max)
Definition Util.h:78
register unsigned i
Definition inflate.c:1575
static void c2(register WDL_FFT_COMPLEX *a)
Definition fft.c:270
jpeg_alloc_quant_table(j_common_ptr cinfo)
Definition jcomapi.c:86
jpeg_alloc_huff_table(j_common_ptr cinfo)
Definition jcomapi.c:98
jpeg_component_info * compptr
Definition jdct.h:105
jpeg_resync_to_restart(j_decompress_ptr cinfo, int desired)
Definition jdmarker.c:1124
#define APP0_DATA_LEN
Definition jdmarker.c:510
#define INPUT_BYTE(cinfo, V, action)
Definition jdmarker.c:80
first_marker(j_decompress_ptr cinfo)
Definition jdmarker.c:853
reset_marker_reader(j_decompress_ptr cinfo)
Definition jdmarker.c:1174
skip_variable(j_decompress_ptr cinfo)
Definition jdmarker.c:777
read_restart_marker(j_decompress_ptr cinfo)
Definition jdmarker.c:1045
jpeg_save_markers(j_decompress_ptr cinfo, int marker_code, unsigned int length_limit)
Definition jdmarker.c:1232
#define INPUT_2BYTES(cinfo, V, action)
Definition jdmarker.c:88
#define INPUT_VARS(cinfo)
Definition jdmarker.c:51
jinit_marker_reader(j_decompress_ptr cinfo)
Definition jdmarker.c:1194
read_markers(j_decompress_ptr cinfo)
Definition jdmarker.c:884
examine_app0(j_decompress_ptr cinfo, JOCTET FAR *data, unsigned int datalen, INT32 remaining)
Definition jdmarker.c:516
jpeg_set_marker_processor(j_decompress_ptr cinfo, int marker_code, jpeg_marker_parser_method routine)
Definition jdmarker.c:1281
#define INPUT_SYNC(cinfo)
Definition jdmarker.c:57
get_dri(j_decompress_ptr cinfo)
Definition jdmarker.c:480
my_marker_reader * my_marker_ptr2
Definition jdmarker.c:39
next_marker(j_decompress_ptr cinfo)
Definition jdmarker.c:806
save_marker(j_decompress_ptr cinfo)
Definition jdmarker.c:671
get_dht(j_decompress_ptr cinfo)
Definition jdmarker.c:351
#define APP14_DATA_LEN
Definition jdmarker.c:511
#define APPN_DATA_LEN
Definition jdmarker.c:512
get_interesting_appn(j_decompress_ptr cinfo)
Definition jdmarker.c:623
examine_app14(j_decompress_ptr cinfo, JOCTET FAR *data, unsigned int datalen, INT32 remaining)
Definition jdmarker.c:592
get_sof(j_decompress_ptr cinfo, boolean is_prog, boolean is_arith)
Definition jdmarker.c:169
get_dqt(j_decompress_ptr cinfo)
Definition jdmarker.c:422
get_sos(j_decompress_ptr cinfo)
Definition jdmarker.c:233
#define MAKE_BYTE_AVAIL(cinfo, action)
Definition jdmarker.c:70
#define get_dac(cinfo)
Definition jdmarker.c:345
get_soi(j_decompress_ptr cinfo)
Definition jdmarker.c:129
#define TRACEMS8(cinfo, lvl, code, p1, p2, p3, p4, p5, p6, p7, p8)
Definition jerror.h:280
#define WARNMS2(cinfo, code, p1, p2)
Definition jerror.h:245
#define ERREXIT(cinfo, code)
Definition jerror.h:205
#define TRACEMS1(cinfo, lvl, code, p1)
Definition jerror.h:255
#define TRACEMS(cinfo, lvl, code)
Definition jerror.h:252
#define TRACEMS5(cinfo, lvl, code, p1, p2, p3, p4, p5)
Definition jerror.h:274
#define TRACEMS2(cinfo, lvl, code, p1, p2)
Definition jerror.h:259
#define TRACEMS4(cinfo, lvl, code, p1, p2, p3, p4)
Definition jerror.h:269
#define ERREXIT1(cinfo, code, p1)
Definition jerror.h:208
#define ERREXIT2(cinfo, code, p1, p2)
Definition jerror.h:212
#define TRACEMS3(cinfo, lvl, code, p1, p2, p3)
Definition jerror.h:264
#define MEMCOPY(dest, src, size)
Definition jinclude.h:71
#define SIZEOF(object)
Definition jinclude.h:83
@ M_RST4
Definition jinclude.h:125
@ M_COM
Definition jinclude.h:158
@ M_RST5
Definition jinclude.h:126
@ M_DNL
Definition jinclude.h:134
@ M_SOF14
Definition jinclude.h:114
@ M_APP3
Definition jinclude.h:142
@ M_SOF7
Definition jinclude.h:106
@ M_EOI
Definition jinclude.h:131
@ M_APP11
Definition jinclude.h:150
@ M_APP1
Definition jinclude.h:140
@ M_APP12
Definition jinclude.h:151
@ M_APP2
Definition jinclude.h:141
@ M_APP13
Definition jinclude.h:152
@ M_RST3
Definition jinclude.h:124
@ M_APP9
Definition jinclude.h:148
@ M_DQT
Definition jinclude.h:133
@ M_DHT
Definition jinclude.h:117
@ M_SOF3
Definition jinclude.h:102
@ M_SOF2
Definition jinclude.h:101
@ M_APP14
Definition jinclude.h:153
@ M_DAC
Definition jinclude.h:119
@ M_SOF6
Definition jinclude.h:105
@ M_APP6
Definition jinclude.h:145
@ M_RST0
Definition jinclude.h:121
@ M_APP8
Definition jinclude.h:147
@ M_SOF15
Definition jinclude.h:115
@ M_SOI
Definition jinclude.h:130
@ M_RST7
Definition jinclude.h:128
@ M_DRI
Definition jinclude.h:135
@ M_SOF9
Definition jinclude.h:109
@ M_JPG
Definition jinclude.h:108
@ M_APP10
Definition jinclude.h:149
@ M_SOF10
Definition jinclude.h:110
@ M_SOF11
Definition jinclude.h:111
@ M_TEM
Definition jinclude.h:160
@ M_SOF13
Definition jinclude.h:113
@ M_RST6
Definition jinclude.h:127
@ M_APP4
Definition jinclude.h:143
@ M_APP5
Definition jinclude.h:144
@ M_SOF1
Definition jinclude.h:100
@ M_SOS
Definition jinclude.h:132
@ M_APP7
Definition jinclude.h:146
@ M_SOF0
Definition jinclude.h:99
@ M_APP0
Definition jinclude.h:139
@ M_APP15
Definition jinclude.h:154
@ M_RST2
Definition jinclude.h:123
@ M_SOF5
Definition jinclude.h:104
@ M_RST1
Definition jinclude.h:122
long INT32
Definition jmorecfg.h:161
char JOCTET
Definition jmorecfg.h:115
unsigned int UINT16
Definition jmorecfg.h:149
#define LOCAL(type)
Definition jmorecfg.h:186
#define METHODDEF(type)
Definition jmorecfg.h:184
#define GETJOCTET(value)
Definition jmorecfg.h:119
short UINT8
Definition jmorecfg.h:140
const int jpeg_natural_order[]
Definition jutils.c:53
struct jpeg_decompress_struct * j_decompress_ptr
Definition jpeglib.h:263
struct jpeg_common_struct * j_common_ptr
Definition jpeglib.h:261
struct jpeg_marker_struct FAR * jpeg_saved_marker_ptr
Definition jpeglib.h:193
int desired
Definition jpeglib.h:1038
int const JOCTET unsigned int datalen
Definition jpeglib.h:951
int marker_code
Definition jpeglib.h:1006
#define NUM_ARITH_TBLS
Definition jpeglib.h:45
int unsigned int length_limit
Definition jpeglib.h:1007
int marker
Definition jpeglib.h:950
#define JPEG_REACHED_SOS
Definition jpeglib.h:996
#define NUM_HUFF_TBLS
Definition jpeglib.h:44
@ JCS_UNKNOWN
Definition jpeglib.h:207
int jpeg_marker_parser_method routine
Definition jpeglib.h:1012
int val
Definition jpeglib.h:956
JSAMPIMAGE data
Definition jpeglib.h:945
#define JPEG_REACHED_EOI
Definition jpeglib.h:997
int version
Definition jpeglib.h:901
#define NUM_QUANT_TBLS
Definition jpeglib.h:43
#define JPOOL_PERMANENT
Definition jpeglib.h:748
#define JPOOL_IMAGE
Definition jpeglib.h:749
#define MAX_COMPS_IN_SCAN
Definition jpeglib.h:46
#define JPEG_SUSPENDED
Definition jpeglib.h:965
#define DCTSIZE2
Definition jpeglib.h:42
png_uint_32 length
Definition png.c:2247
UINT16 quantval[DCTSIZE2]
Definition jpeglib.h:88
UINT8 arith_dc_L[NUM_ARITH_TBLS]
Definition jpeglib.h:541
UINT8 arith_ac_K[NUM_ARITH_TBLS]
Definition jpeglib.h:543
UINT8 arith_dc_U[NUM_ARITH_TBLS]
Definition jpeglib.h:542
unsigned int length_limit_APPn[16]
Definition jdmarker.c:31
jpeg_marker_parser_method process_APPn[16]
Definition jdmarker.c:27
jpeg_marker_parser_method process_COM
Definition jdmarker.c:26
jpeg_saved_marker_ptr cur_marker
Definition jdmarker.c:34
unsigned int length_limit_COM
Definition jdmarker.c:30
struct jpeg_marker_reader pub
Definition jdmarker.c:23
unsigned int bytes_read
Definition jdmarker.c:35
int n
Definition crypt.c:458
#define GLOBAL(g)
Definition crypt.c:87
return c
Definition crypt.c:175
if(GLOBAL(newzip))
Definition crypt.c:475
typedef int(UZ_EXP MsgFn)()
#define TRUE
Definition unzpriv.h:1295
#define FALSE
Definition unzpriv.h:1298
_WDL_CSTRING_PREFIX void INT_PTR count
Definition wdlcstring.h:263
#define FAR
Definition zconf.h:270