18#ifdef NEED_SHORT_EXTERNAL_NAMES
19#define jpeg_make_d_derived_tbl jMkDDerived
20#define jpeg_fill_bit_buffer jFilBitBuf
21#define jpeg_huff_decode jHufDecode
27#define HUFF_LOOKAHEAD 8
76#define BIT_BUF_SIZE 32
105#define BITREAD_STATE_VARS \
106 bit_buf_type get_buffer; \
108 bitread_working_state br_state
110#define BITREAD_LOAD_STATE(cinfop,permstate) \
111 br_state.cinfo = cinfop; \
112 br_state.next_input_byte = cinfop->src->next_input_byte; \
113 br_state.bytes_in_buffer = cinfop->src->bytes_in_buffer; \
114 get_buffer = permstate.get_buffer; \
115 bits_left = permstate.bits_left;
117#define BITREAD_SAVE_STATE(cinfop,permstate) \
118 cinfop->src->next_input_byte = br_state.next_input_byte; \
119 cinfop->src->bytes_in_buffer = br_state.bytes_in_buffer; \
120 permstate.get_buffer = get_buffer; \
121 permstate.bits_left = bits_left
141#define CHECK_BIT_BUFFER(state,nbits,action) \
142 { if (bits_left < (nbits)) { \
143 if (! jpeg_fill_bit_buffer(&(state),get_buffer,bits_left,nbits)) \
145 get_buffer = (state).get_buffer; bits_left = (state).bits_left; } }
147#define GET_BITS(nbits) \
148 (((int) (get_buffer >> (bits_left -= (nbits)))) & ((1<<(nbits))-1))
150#define PEEK_BITS(nbits) \
151 (((int) (get_buffer >> (bits_left - (nbits)))) & ((1<<(nbits))-1))
153#define DROP_BITS(nbits) \
154 (bits_left -= (nbits))
179#define HUFF_DECODE(result,state,htbl,failaction,slowlabel) \
181 if (bits_left < HUFF_LOOKAHEAD) { \
182 if (! jpeg_fill_bit_buffer(&state,get_buffer,bits_left, 0)) {failaction;} \
183 get_buffer = state.get_buffer; bits_left = state.bits_left; \
184 if (bits_left < HUFF_LOOKAHEAD) { \
185 nb = 1; goto slowlabel; \
188 look = PEEK_BITS(HUFF_LOOKAHEAD); \
189 if ((nb = htbl->look_nbits[look]) != 0) { \
191 result = htbl->look_sym[look]; \
193 nb = HUFF_LOOKAHEAD+1; \
195 if ((result=jpeg_huff_decode(&state,get_buffer,bits_left,htbl,nb)) < 0) \
197 get_buffer = state.get_buffer; bits_left = state.bits_left; \
boolean int c_derived_tbl ** pdtbl
Definition jchuff.h:46
boolean isDC
Definition jchuff.h:45
boolean int tblno
Definition jchuff.h:45
JHUFF_TBL * htbl
Definition jchuff.h:50
jpeg_huff_decode(bitread_working_state *state, bit_buf_type get_buffer, int bits_left, d_derived_tbl *htbl, int min_bits)
Definition jdhuff.c:398
jpeg_fill_bit_buffer(bitread_working_state *state, bit_buf_type get_buffer, int bits_left, int nbits)
Definition jdhuff.c:292
jpeg_make_d_derived_tbl(j_decompress_ptr cinfo, boolean isDC, int tblno, d_derived_tbl **pdtbl)
Definition jdhuff.c:149
EXTERN(void) jpeg_make_d_derived_tbl JPP((j_decompress_ptr cinfo
bit_buf_type int d_derived_tbl int min_bits
Definition jdhuff.h:204
#define HUFF_LOOKAHEAD
Definition jdhuff.h:27
bit_buf_type int bits_left
Definition jdhuff.h:159
bit_buf_type int int nbits
Definition jdhuff.h:159
bit_buf_type get_buffer
Definition jdhuff.h:158
INT32 bit_buf_type
Definition jdhuff.h:75
long INT32
Definition jmorecfg.h:161
char JOCTET
Definition jmorecfg.h:115
short UINT8
Definition jmorecfg.h:140
struct jpeg_decompress_struct * j_decompress_ptr
Definition jpeglib.h:263
#define JPP(arglist)
Definition jpeglib.h:818
bit_buf_type get_buffer
Definition jdhuff.h:86
int bits_left
Definition jdhuff.h:87
bit_buf_type get_buffer
Definition jdhuff.h:98
int bits_left
Definition jdhuff.h:99
const JOCTET * next_input_byte
Definition jdhuff.h:93
size_t bytes_in_buffer
Definition jdhuff.h:94
j_decompress_ptr cinfo
Definition jdhuff.h:101
INT32 maxcode[18]
Definition jdhuff.h:31
UINT8 look_sym[1<< HUFF_LOOKAHEAD]
Definition jdhuff.h:48
INT32 valoffset[17]
Definition jdhuff.h:33
int look_nbits[1<< HUFF_LOOKAHEAD]
Definition jdhuff.h:47
JHUFF_TBL * pub
Definition jdhuff.h:40