/* ----------------------------------------------------------------------- */
#define T1_NMSEDEC_BITS 7
-#define T1_MAXCBLKW 1024 /**< Maximum size of code-block (width) */
-#define T1_MAXCBLKH 1024 /**< Maximum size of code-block (heigth) */
-
#define T1_SIG_NE 0x0001 /**< Context orientation : North-East direction */
#define T1_SIG_SE 0x0002 /**< Context orientation : South-East direction */
#define T1_SIG_SW 0x0004 /**< Context orientation : South-West direction */
/** RAW component */
opj_raw_t *raw;
- int data[T1_MAXCBLKH][T1_MAXCBLKW];
- flag_t flags[T1_MAXCBLKH + 2][T1_MAXCBLKW + 2];
-
+ int *data;
+ flag_t *flags;
+ int w;
+ int h;
+ int datasize;
+ int flagssize;
+ int flags_stride;
} opj_t1_t;
+#define MACRO_t1_flags(x,y) t1->flags[((x)*(t1->flags_stride))+(y)]
+
/** @name Exported functions */
/*@{*/
/* ----------------------------------------------------------------------- */
/**
Decode the code-blocks of a tile
@param t1 T1 handle
-@param tile The tile to decode
-@param tcp Tile coding parameters
+@param tilec The tile to decode
+@param tccp Tile coding parameters
+*/
+void t1_decode_cblks(opj_t1_t* t1, opj_tcd_tilecomp_t* tilec, opj_tccp_t* tccp);
+
+
+void t1_decode_cblks_v2(
+ opj_t1_t* t1,
+ opj_tcd_tilecomp_v2_t* tilec,
+ opj_tccp_t* tccp);
+
+
+
+/**
+ * Creates a new Tier 1 handle
+ * and initializes the look-up tables of the Tier-1 coder/decoder
+ * @return a new T1 handle if successful, returns NULL otherwise
+*/
+opj_t1_t* t1_create_v2();
+
+/**
+ * Destroys a previously created T1 handle
+ *
+ * @param p_t1 Tier 1 handle to destroy
*/
-void t1_decode_cblks(opj_t1_t *t1, opj_tcd_tile_t *tile, opj_tcp_t *tcp);
+void t1_destroy_v2(opj_t1_t *p_t1);
/* ----------------------------------------------------------------------- */
/*@}*/