77 #include "jasper/jas_types.h"    78 #include "jasper/jas_stream.h"    80 #include "jpc_mqcod.h"   100         jpc_mqstate_t **curctx;
   103         jpc_mqstate_t **ctxs;
   124 jpc_mqdec_t *jpc_mqdec_create(
int maxctxs, jas_stream_t *in);
   127 void jpc_mqdec_destroy(jpc_mqdec_t *dec);
   134 void jpc_mqdec_setinput(jpc_mqdec_t *dec, jas_stream_t *in);
   137 void jpc_mqdec_init(jpc_mqdec_t *dec);
   144 #define jpc_mqdec_setcurctx(dec, ctxno) \   145         ((mqdec)->curctx = &(mqdec)->ctxs[ctxno]);   148 void jpc_mqdec_setctx(jpc_mqdec_t *dec, 
int ctxno, jpc_mqctx_t *ctx);
   151 void jpc_mqdec_setctxs(jpc_mqdec_t *dec, 
int numctxs, jpc_mqctx_t *ctxs);
   159 #define jpc_mqdec_getbit(dec) \   160         jpc_mqdec_getbit_macro(dec)   162 #define jpc_mqdec_getbit(dec) \   163         jpc_mqdec_getbit_func(dec)   168 #define jpc_mqdec_getbitnoskew(dec) \   169         jpc_mqdec_getbit_macro(dec)   171 #define jpc_mqdec_getbitnoskew(dec) \   172         jpc_mqdec_getbit_func(dec)   180 void jpc_mqdec_dump(jpc_mqdec_t *dec, FILE *out);
   188 #define jpc_mqdec_getbit_macro(dec) \   189         ((((dec)->areg -= (*(dec)->curctx)->qeval), \   190           (dec)->creg >> 16 >= (*(dec)->curctx)->qeval) ? \   191           ((((dec)->creg -= (*(dec)->curctx)->qeval << 16), \   192           (dec)->areg & 0x8000) ?  (*(dec)->curctx)->mps : \   193           jpc_mqdec_mpsexchrenormd(dec)) : \   194           jpc_mqdec_lpsexchrenormd(dec))   196 #define jpc_mqdec_mpsexchange(areg, delta, curctx, bit) \   198         if ((areg) < (delta)) { \   199                 register jpc_mqstate_t *state = *(curctx); \   201                 (bit) = state->mps ^ 1; \   202                 *(curctx) = state->nlps; \   204                 register jpc_mqstate_t *state = *(curctx); \   206                 (bit) = state->mps; \   207                 *(curctx) = state->nmps; \   211 #define jpc_mqdec_lpsexchange(areg, delta, curctx, bit) \   213         if ((areg) >= (delta)) { \   214                 register jpc_mqstate_t *state = *(curctx); \   216                 (bit) = state->mps ^ 1; \   217                 *(curctx) = state->nlps; \   219                 register jpc_mqstate_t *state = *(curctx); \   221                 (bit) = state->mps; \   222                 *(curctx) = state->nmps; \   226 #define jpc_mqdec_renormd(areg, creg, ctreg, in, eof, inbuf) \   230                         jpc_mqdec_bytein2(creg, ctreg, in, eof, inbuf); \   235         } while (!((areg) & 0x8000)); \   238 #define jpc_mqdec_bytein2(creg, ctreg, in, eof, inbuf) \   241         unsigned char prevbuf; \   243                 if ((c = jas_stream_getc(in)) == EOF) { \   249                 if (prevbuf == 0xff) { \   267 int jpc_mqdec_getbit_func(jpc_mqdec_t *dec);
   268 int jpc_mqdec_mpsexchrenormd(jpc_mqdec_t *dec);
   269 int jpc_mqdec_lpsexchrenormd(jpc_mqdec_t *dec);