X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fopenjp2%2Fmqc.h;h=9850fed03161701cb2abee0d130b14186b94dd66;hb=1b72e85dc9a2b55c9142a74fb5b93338d59f92f0;hp=06815ab1dd7b89128cde70618e544f8f3ef104db;hpb=36dd87cea80ad56e0e3178221aa579a28f02a549;p=openjpeg.git diff --git a/src/lib/openjp2/mqc.h b/src/lib/openjp2/mqc.h index 06815ab1..9850fed0 100644 --- a/src/lib/openjp2/mqc.h +++ b/src/lib/openjp2/mqc.h @@ -36,8 +36,8 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#ifndef __MQC_H -#define __MQC_H +#ifndef OPJ_MQC_H +#define OPJ_MQC_H #include "opj_common.h" @@ -61,9 +61,9 @@ typedef struct opj_mqc_state { /** the Most Probable Symbol (0 or 1) */ OPJ_UINT32 mps; /** next state if the next encoded symbol is the MPS */ - struct opj_mqc_state *nmps; + const struct opj_mqc_state *nmps; /** next state if the next encoded symbol is the LPS */ - struct opj_mqc_state *nlps; + const struct opj_mqc_state *nlps; } opj_mqc_state_t; #define MQC_NUMCTXS 19 @@ -78,6 +78,8 @@ typedef struct opj_mqc { OPJ_UINT32 a; /** number of bits already read or free to write */ OPJ_UINT32 ct; + /* only used by decoder, to count the number of times a terminating 0xFF >0x8F marker is read */ + OPJ_UINT32 end_of_byte_stream_counter; /** pointer to the current position in the buffer */ OPJ_BYTE *bp; /** pointer to the start of the buffer */ @@ -85,15 +87,17 @@ typedef struct opj_mqc { /** pointer to the end of the buffer */ OPJ_BYTE *end; /** Array of contexts */ - opj_mqc_state_t *ctxs[MQC_NUMCTXS]; + const opj_mqc_state_t *ctxs[MQC_NUMCTXS]; /** Active context */ - opj_mqc_state_t **curctx; + const opj_mqc_state_t **curctx; /* lut_ctxno_zc shifted by (1 << 9) * bandno */ const OPJ_BYTE* lut_ctxno_zc_orient; /** Original value of the 2 bytes at end[0] and end[1] */ OPJ_BYTE backup[OPJ_COMMON_CBLK_DATA_EXTRA]; } opj_mqc_t; +#define BYPASS_CT_INIT 0xDEADBEEF + #include "mqc_inl.h" /** @name Exported functions */ @@ -133,12 +137,7 @@ Set the current context used for coding/decoding @param ctxno Number that identifies the context */ #define opj_mqc_setcurctx(mqc, ctxno) (mqc)->curctx = &(mqc)->ctxs[(OPJ_UINT32)(ctxno)] -/** -Encode a symbol using the MQ-coder -@param mqc MQC handle -@param d The symbol to be encoded (0 or 1) -*/ -void opj_mqc_encode(opj_mqc_t *mqc, OPJ_UINT32 d); + /** Flush the encoder, so that all remaining data is written @param mqc MQC handle @@ -266,4 +265,4 @@ Decode a symbol /*@}*/ -#endif /* __MQC_H */ +#endif /* OPJ_MQC_H */