[trunk] WIP: add a read CBD marker function (JPEG2000 part 2)
[openjpeg.git] / libopenjpeg / cio.h
index ed95d5cd746b805629a9525ba577d34bdef74bd5..55df189f73f5bae039d36b7dac84b788bda2d234 100644 (file)
@@ -89,27 +89,19 @@ void cio_skip(opj_cio_t *cio, int n);
 /* ----------------------------------------------------------------------- */
 
 #if defined(OPJ_BIG_ENDIAN)
-       #if !defined(OPJ_LITTLE_ENDIAN)
-                       #define opj_write_bytes         opj_write_bytes_BE
-                       #define opj_read_bytes          opj_read_bytes_BE
-                       #define opj_write_double        opj_write_double_BE
-                       #define opj_read_double         opj_read_double_BE
-                       #define opj_write_float         opj_write_float_BE
-                       #define opj_read_float          opj_read_float_BE
-       #else
-                       #error "Either BIG_ENDIAN or LITTLE_ENDIAN must be #defined, but not both."
-       #endif
+       #define opj_write_bytes         opj_write_bytes_BE
+       #define opj_read_bytes          opj_read_bytes_BE
+       #define opj_write_double        opj_write_double_BE
+       #define opj_read_double         opj_read_double_BE
+       #define opj_write_float         opj_write_float_BE
+       #define opj_read_float          opj_read_float_BE
 #else
-       #if defined(OPJ_LITTLE_ENDIAN)
-                       #define opj_write_bytes         opj_write_bytes_LE
-                       #define opj_read_bytes          opj_read_bytes_LE
-                       #define opj_write_double        opj_write_double_LE
-                       #define opj_read_double         opj_read_double_LE
-                       #define opj_write_float         opj_write_float_LE
-                       #define opj_read_float          opj_read_float_LE
-       #else
-               #error "Either BIG_ENDIAN or LITTLE_ENDIAN must be #defined, but not none."
-       #endif
+       #define opj_write_bytes         opj_write_bytes_LE
+       #define opj_read_bytes          opj_read_bytes_LE
+       #define opj_write_double        opj_write_double_LE
+       #define opj_read_double         opj_read_double_LE
+       #define opj_write_float         opj_write_float_LE
+       #define opj_read_float          opj_read_float_LE
 #endif
 
 
@@ -133,6 +125,11 @@ typedef struct opj_stream_private
         */
        void *                                  m_user_data;
 
+       /**
+        * User data length
+        */
+       OPJ_UINT32                              m_user_data_length;
+
        /**
         * Pointer to actual read function (NULL at the initialization of the cio.
         */
@@ -334,6 +331,16 @@ OPJ_SIZE_T opj_stream_skip (opj_stream_private_t * p_stream,OPJ_SIZE_T p_size, s
  */
 OPJ_SIZE_T opj_stream_tell (const opj_stream_private_t * p_stream);
 
+
+/**
+ * Get the number of bytes left before the end of the stream (similar to cio_numbytesleft).
+ *
+ * @param              p_stream        the stream to get the information from.
+ *
+ * @return             Number of bytes left before the end of the stream.
+ */
+OPJ_SIZE_T opj_stream_get_number_byte_left (const opj_stream_private_t * p_stream);
+
 /**
  * Skips a number of bytes from the stream.
  * @param              p_stream        the stream to skip data from.