* POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef __MQC_H
-#define __MQC_H
+#ifndef OPJ_MQC_H
+#define OPJ_MQC_H
#include "opj_common.h"
/** 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
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 */
/** 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] */
/**
BYPASS mode switch, initialization operation.
JPEG 2000 p 505.
-<h2>Not fully implemented and tested !!</h2>
@param mqc MQC handle
*/
void opj_mqc_bypass_init_enc(opj_mqc_t *mqc);
+
+/** Return number of extra bytes to add to opj_mqc_numbytes() for theĀ²
+ size of a non-terminating BYPASS pass
+@param mqc MQC handle
+@param erterm 1 if ERTERM is enabled, 0 otherwise
+*/
+OPJ_UINT32 opj_mqc_bypass_get_extra_bytes(opj_mqc_t *mqc, OPJ_BOOL erterm);
+
/**
BYPASS mode switch, coding operation.
JPEG 2000 p 505.
-<h2>Not fully implemented and tested !!</h2>
@param mqc MQC handle
@param d The symbol to be encoded (0 or 1)
*/
void opj_mqc_bypass_enc(opj_mqc_t *mqc, OPJ_UINT32 d);
/**
BYPASS mode switch, flush operation
-<h2>Not fully implemented and tested !!</h2>
@param mqc MQC handle
-@return Returns 1 (always)
+@param erterm 1 if ERTERM is enabled, 0 otherwise
*/
-OPJ_UINT32 opj_mqc_bypass_flush_enc(opj_mqc_t *mqc);
+void opj_mqc_bypass_flush_enc(opj_mqc_t *mqc, OPJ_BOOL erterm);
/**
RESET mode switch
@param mqc MQC handle
*/
void opj_mqc_reset_enc(opj_mqc_t *mqc);
+
+#ifdef notdef
/**
RESTART mode switch (TERMALL)
@param mqc MQC handle
@return Returns 1 (always)
*/
OPJ_UINT32 opj_mqc_restart_enc(opj_mqc_t *mqc);
+#endif
+
/**
RESTART mode switch (TERMALL) reinitialisation
@param mqc MQC handle
/*@}*/
-#endif /* __MQC_H */
+#endif /* OPJ_MQC_H */