87#define JPC_MAXRLVLS 33
90#define JPC_MAXBANDS (3 * JPC_MAXRLVLS + 1)
93#define JPC_MAXLYRS 16384
112#define JPC_CS_TDATA 4
129 uint_fast16_t numcomps;
140 uint_fast16_t tileno;
150 uint_fast8_t numparts;
189 uint_fast32_t height;
200 uint_fast32_t tilewidth;
203 uint_fast32_t tileheight;
207 uint_fast32_t tilexoff;
211 uint_fast32_t tileyoff;
214 uint_fast16_t numcomps;
217 jpc_sizcomp_t *comps;
230#define JPC_COX_PRT 0x01
232#define JPC_COD_SOP 0x02
234#define JPC_COD_EPH 0x04
242#define JPC_COD_LRCPPRG 0
245#define JPC_COD_RLCPPRG 1
247#define JPC_COD_RPCLPRG 2
249#define JPC_COD_PCRLPRG 3
251#define JPC_COD_CPRLPRG 4
257#define JPC_COX_LAZY 0x01
258#define JPC_COX_RESET 0x02
259#define JPC_COX_TERMALL 0x04
260#define JPC_COX_VSC 0x08
261#define JPC_COX_PTERM 0x10
262#define JPC_COX_SEGSYM 0x20
265#define JPC_COX_INS 0x00
266#define JPC_COX_RFT 0x01
269#define JPC_COD_NOMCT 0x00
270#define JPC_COD_MCT 0x01
274static inline unsigned JPC_COX_CBLKSIZEEXPN(
unsigned x)
281static inline unsigned JPC_COX_GETCBLKSIZEEXPN(
unsigned x)
291 uint_fast8_t parwidthval;
294 uint_fast8_t parheightval;
306 uint_fast8_t numdlvls;
309 uint_fast8_t cblkwidthval;
312 uint_fast8_t cblkheightval;
315 uint_fast8_t cblksty;
324 jpc_coxrlvl_t rlvls[JPC_MAXRLVLS];
339 uint_fast16_t numlyrs;
342 uint_fast8_t mctrans;
345 jpc_coxcp_t compparms;
354 uint_fast16_t compno;
357 jpc_coxcp_t compparms;
366#define JPC_RGN_MAXSHIFT 0x00
371 uint_fast16_t compno;
377 uint_fast8_t roishift;
389#define JPC_QCX_NOQNT 0
390#define JPC_QCX_SIQNT 1
391#define JPC_QCX_SEQNT 2
398static inline unsigned JPC_QCX_GETEXPN(
unsigned x)
404static inline unsigned JPC_QCX_GETMANT(
unsigned x)
410static inline uint_fast16_t JPC_QCX_EXPN(
unsigned x)
412 assert(!(x & (~0x1f)));
414 return (x & 0x1f) << 11;
418static inline uint_fast16_t JPC_QCX_MANT(
unsigned x)
420 assert(!(x & (~0x7ff)));
436 uint_fast16_t *stepsizes;
439 uint_fast8_t numguard;
448 uint_fast16_t compno;
451 jpc_qcxcp_t compparms;
460 jpc_qcxcp_t compparms;
475 uint_fast8_t rlvlnostart;
479 uint_fast8_t rlvlnoend;
483 uint_fast16_t compnostart;
487 uint_fast16_t compnoend;
491 uint_fast16_t lyrnoend;
496typedef jpc_pocpchg_t jpc_pchg_t;
506 jpc_pocpchg_t *pchgs;
552#define JPC_COM_BIN 0x00
553#define JPC_COM_LATIN 0x01
601 jpc_crgcomp_t *comps;
653#define JPC_MS_MIN 0xff00
656#define JPC_MS_MAX 0xffff
659#define JPC_MS_INMIN 0xff80
661#define JPC_MS_INMAX 0xffff
664#define JPC_MS_SOC 0xff4f
665#define JPC_MS_SOT 0xff90
666#define JPC_MS_SOD 0xff93
667#define JPC_MS_EOC 0xffd9
670#define JPC_MS_SIZ 0xff51
673#define JPC_MS_COD 0xff52
674#define JPC_MS_COC 0xff53
675#define JPC_MS_RGN 0xff5e
676#define JPC_MS_QCD 0xff5c
677#define JPC_MS_QCC 0xff5d
678#define JPC_MS_POC 0xff5f
681#define JPC_MS_TLM 0xff55
682#define JPC_MS_PLM 0xff57
683#define JPC_MS_PLT 0xff58
684#define JPC_MS_PPM 0xff60
685#define JPC_MS_PPT 0xff61
688#define JPC_MS_SOP 0xff91
689#define JPC_MS_EPH 0xff92
692#define JPC_MS_CRG 0xff63
693#define JPC_MS_COM 0xff64
715 const struct jpc_msops_s *ops;
721typedef struct jpc_msops_s {
724 void (*destroyparms)(jpc_ms_t *ms);
727 int (*getparms)(jpc_ms_t *ms, jpc_cstate_t *cstate,
jas_stream_t *in);
730 int (*putparms)(jpc_ms_t *ms, jpc_cstate_t *cstate,
jas_stream_t *out);
733 int (*dumpparms)(jpc_ms_t *ms);
742jpc_cstate_t *jpc_cstate_create(
void);
745void jpc_cstate_destroy(jpc_cstate_t *cstate);
748jpc_ms_t *jpc_ms_create(
int type);
751void jpc_ms_destroy(jpc_ms_t *ms);
755static inline bool JPC_MS_HASPARMS(
unsigned x)
757 return !(x == JPC_MS_SOC || x == JPC_MS_SOD || x == JPC_MS_EOC ||
758 x == JPC_MS_EPH || (x >= 0xff30 && x <= 0xff3f));
763static inline unsigned jpc_ms_gettype(
const jpc_ms_t *ms)
769jpc_ms_t *jpc_getms(
jas_stream_t *in, jpc_cstate_t *cstate);
772int jpc_putms(
jas_stream_t *out, jpc_cstate_t *cstate, jpc_ms_t *ms);
781void jpc_ms_dump(jpc_ms_t *ms);
I/O stream object.
Definition jas_stream.h:206