[trunk] WIP: add a read CBD marker function (JPEG2000 part 2)
[openjpeg.git] / libopenjpeg / j2k.h
index 6b63222fe2d2a9132b3c87227851fdf9d2f658e8..c4b098084e92ae1260ff1b37e7d1a416f8df8317 100644 (file)
@@ -77,15 +77,12 @@ The functions in J2K.C have for goal to read/write the several parts of the code
 #define J2K_MS_EPH 0xff92      /**< EPH marker value */
 #define J2K_MS_CRG 0xff63      /**< CRG marker value */
 #define J2K_MS_COM 0xff64      /**< COM marker value */
-
-#define J2K_MS_UNK 0           /**< UNKNOWN marker value */
-
-#ifdef TODO_MS /* FIXME */
 #define J2K_MS_CBD 0xff78      /**< CBD marker value */
 #define J2K_MS_MCC 0xff75      /**< MCC marker value */
 #define J2K_MS_MCT 0xff74      /**< MCT marker value */
 #define J2K_MS_MCO 0xff77      /**< MCO marker value */
-#endif
+
+#define J2K_MS_UNK 0           /**< UNKNOWN marker value */
 
 /* UniPG>> */
 #ifdef USE_JPWL
@@ -122,6 +119,27 @@ typedef enum J2K_STATUS {
        J2K_STATE_ERR    = 0x8000 /**< the decoding process has encountered an error (FIXME warning V1 = 0x0080)*/
 } J2K_STATUS;
 
+/**
+ * Type of elements storing in the MCT data
+ */
+typedef enum MCT_ELEMENT_TYPE
+{
+       MCT_TYPE_INT16 = 0,             /** MCT data is stored as signed shorts*/
+       MCT_TYPE_INT32 = 1,             /** MCT data is stored as signed integers*/
+       MCT_TYPE_FLOAT = 2,             /** MCT data is stored as floats*/
+       MCT_TYPE_DOUBLE = 3             /** MCT data is stored as doubles*/
+} J2K_MCT_ELEMENT_TYPE;
+
+/**
+ * Type of MCT array
+ */
+typedef enum MCT_ARRAY_TYPE
+{
+       MCT_TYPE_DEPENDENCY = 0,
+       MCT_TYPE_DECORRELATION = 1,
+       MCT_TYPE_OFFSET = 2
+} J2K_MCT_ARRAY_TYPE;
+
 /* ----------------------------------------------------------------------- */
 
 /** 
@@ -247,28 +265,9 @@ typedef struct opj_tcp {
        opj_tccp_t *tccps;
 } opj_tcp_t;
 
-
-/**
- * Type of data for storing the MCT data
- */
-typedef enum MCT_ELEMENT_TYPE
-{
-       MCT_TYPE_INT16 = 0,             /** MCT data is stored as signed shorts*/
-       MCT_TYPE_INT32 = 1,             /** MCT data is stored as signed integers*/
-       MCT_TYPE_FLOAT = 2,             /** MCT data is stored as floats*/
-       MCT_TYPE_DOUBLE = 3             /** MCT data is stored as doubles*/
-} J2K_MCT_ELEMENT_TYPE;
-
 /**
- * Type of data for storing the MCT data
+ * FIXME DOC
  */
-typedef enum MCT_ARRAY_TYPE
-{
-       MCT_TYPE_DEPENDENCY = 0,
-       MCT_TYPE_DECORRELATION = 1,
-       MCT_TYPE_OFFSET = 2
-} J2K_MCT_ARRAY_TYPE;
-
 typedef struct opj_mct_data
 {
        J2K_MCT_ELEMENT_TYPE m_element_type;
@@ -279,6 +278,9 @@ typedef struct opj_mct_data
 }
 opj_mct_data_t;
 
+/**
+ * FIXME DOC
+ */
 typedef struct opj_simple_mcc_decorrelation_data
 {
        OPJ_UINT32                       m_index;
@@ -632,6 +634,12 @@ typedef struct opj_j2k_dec
        OPJ_UINT32 m_start_tile_y;
        OPJ_UINT32 m_end_tile_x;
        OPJ_UINT32 m_end_tile_y;
+       /**
+        * Indicate that the current tile-part is assume as the last tile part of the codestream.
+        * It is useful in the case of PSot is equal to zero. The sot length will be compute in the
+        * SOD reader function. FIXME NOT USED for the moment
+        */
+       opj_bool   m_last_tile_part;
        /** to tell that a tile can be decoded. */
        OPJ_UINT32 m_can_decode                 : 1;
        OPJ_UINT32 m_discard_tiles              : 1;