[trunk] Import patch from sumatrapdf team. This handle some Part-2 compliant file...
[openjpeg.git] / src / lib / openjp2 / openjpeg.h
index e2657ae42daf749b15ed0b6994cfeb63e051db30..338a771dee05ac4c25951e3fd54c34950171d685 100644 (file)
 
 /* deprecated attribute */
 #ifdef __GNUC__
-       #define DEPRECATED(func) func __attribute__ ((deprecated))
+       #define OPJ_DEPRECATED(func) func __attribute__ ((deprecated))
 #elif defined(_MSC_VER)
-       #define DEPRECATED(func) __declspec(deprecated) func
+       #define OPJ_DEPRECATED(func) __declspec(deprecated) func
 #else
        #pragma message("WARNING: You need to implement DEPRECATED for this compiler")
-       #define DEPRECATED(func) func
+       #define OPJ_DEPRECATED(func) func
 #endif
 
 #if defined(OPJ_STATIC) || !defined(_WIN32)
@@ -193,10 +193,11 @@ typedef enum PROG_ORDER {
 */
 typedef enum COLOR_SPACE {
        OPJ_CLRSPC_UNKNOWN = -1,        /**< not supported by the library */
-       OPJ_CLRSPC_UNSPECIFIED = 0, /**< not specified in the codestream */ 
+       OPJ_CLRSPC_UNSPECIFIED = 0,     /**< not specified in the codestream */ 
        OPJ_CLRSPC_SRGB = 1,            /**< sRGB */
        OPJ_CLRSPC_GRAY = 2,            /**< grayscale */
-       OPJ_CLRSPC_SYCC = 3                     /**< YUV */
+       OPJ_CLRSPC_SYCC = 3,            /**< YUV */
+  OPJ_CLRSPC_EYCC = 4          /**< e-YCC */
 } OPJ_COLOR_SPACE;
 
 /**
@@ -538,6 +539,8 @@ typedef struct opj_image_comp {
        OPJ_UINT32 factor;
        /** image component data */
        OPJ_INT32 *data;
+  /** alpha channel */
+  OPJ_UINT16 alpha;
 } opj_image_comp_t;
 
 /** 
@@ -1004,7 +1007,14 @@ OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_create(OPJ_SIZE_T p_buffer_size, O
  *
  * @param      p_stream        the stream to destroy.
  */
-OPJ_API void OPJ_CALLCONV opj_stream_destroy(opj_stream_t* p_stream);
+OPJ_DEPRECATED(OPJ_API void OPJ_CALLCONV opj_stream_destroy(opj_stream_t* p_stream));
+
+/**
+ * Destroys a stream created by opj_create_stream. This function does NOT close the abstract stream. 
+ * If needed the user must close its own implementation of the stream.
+ *
+ * @param      p_stream        the stream to destroy.
+ */
 OPJ_API void OPJ_CALLCONV opj_stream_destroy_v3(opj_stream_t* p_stream);
  
 /**
@@ -1056,7 +1066,13 @@ OPJ_API void OPJ_CALLCONV opj_stream_set_user_data_length(opj_stream_t* p_stream
  * @param p_file            the file stream to operate on
  * @param p_is_read_stream  whether the stream is a read stream (true) or not (false)
 */
-OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_create_default_file_stream (FILE * p_file, OPJ_BOOL p_is_read_stream);
+OPJ_DEPRECATED(OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_create_default_file_stream (FILE * p_file, OPJ_BOOL p_is_read_stream));
+
+/**
+ * Create a stream from a file identified with its filename with default parameters (helper function)
+ * @param fname             the filename of the file to stream
+ * @param p_is_read_stream  whether the stream is a read stream (true) or not (false)
+*/
 OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_create_default_file_stream_v3 (const char *fname, OPJ_BOOL p_is_read_stream);
  
 /**
@@ -1065,9 +1081,15 @@ OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_create_default_file_stream_v3 (con
  * @param p_buffer_size     size of the chunk used to stream
  * @param p_is_read_stream  whether the stream is a read stream (true) or not (false)
 */
-OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_create_file_stream (FILE * p_file, 
+OPJ_DEPRECATED(OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_create_file_stream (FILE * p_file, 
                                                                   OPJ_SIZE_T p_buffer_size,
-                                                                  OPJ_BOOL p_is_read_stream);
+                                                                  OPJ_BOOL p_is_read_stream));
+
+/** Create a stream from a file identified with its filename with a specific buffer size
+ * @param fname             the filename of the file to stream
+ * @param p_buffer_size     size of the chunk used to stream
+ * @param p_is_read_stream  whether the stream is a read stream (true) or not (false)
+*/
 OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_create_file_stream_v3 (const char *fname, 
                                                                      OPJ_SIZE_T p_buffer_size,
                                                                      OPJ_BOOL p_is_read_stream);