ABI
Tracker

(OpenJPEG)




Headers diff: 1.2 vs 1.4



 openjpeg.h (1.2)   openjpeg.h (1.4) 
skipping to change at line 35 skipping to change at line 35
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF T HE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF T HE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef OPENJPEG_H #ifndef OPENJPEG_H
#define OPENJPEG_H #define OPENJPEG_H
#define OPENJPEG_VERSION "1.2.0"
/* /*
========================================================== ==========================================================
Compiler directives Compiler directives
========================================================== ==========================================================
*/ */
#if defined(OPJ_STATIC) || !(defined(WIN32) || defined(__WIN32__)) #if defined(OPJ_STATIC) || !defined(_WIN32)
#define OPJ_API #define OPJ_API
#define OPJ_CALLCONV #define OPJ_CALLCONV
#else #else
#define OPJ_CALLCONV __stdcall #define OPJ_CALLCONV __stdcall
/* /*
The following ifdef block is the standard way of creating macros which make exporting The following ifdef block is the standard way of creating macros which make exporting
from a DLL simpler. All files within this DLL are compiled with the OPJ_EXP ORTS from a DLL simpler. All files within this DLL are compiled with the OPJ_EXP ORTS
symbol defined on the command line. this symbol should not be defined on an y project symbol defined on the command line. this symbol should not be defined on an y project
that uses this DLL. This way any other project whose source files include t his file see that uses this DLL. This way any other project whose source files include t his file see
OPJ_API functions as being imported from a DLL, wheras this DLL sees symbol s OPJ_API functions as being imported from a DLL, wheras this DLL sees symbol s
defined with this macro as being exported. defined with this macro as being exported.
*/ */
#ifdef OPJ_EXPORTS #if defined(OPJ_EXPORTS) || defined(DLL_EXPORT)
#define OPJ_API __declspec(dllexport) #define OPJ_API __declspec(dllexport)
#else #else
#define OPJ_API __declspec(dllimport) #define OPJ_API __declspec(dllimport)
#endif /* OPJ_EXPORTS */ #endif /* OPJ_EXPORTS */
#endif /* !OPJ_STATIC || !WIN32 */ #endif /* !OPJ_STATIC || !_WIN32 */
#ifndef __cplusplus #ifndef __cplusplus
#if defined(HAVE_STDBOOL_H) #if defined(HAVE_STDBOOL_H)
/* /*
The C language implementation does correctly provide the standard header The C language implementation does correctly provide the standard header
file "stdbool.h". file "stdbool.h".
*/ */
#include <stdbool.h> #include <stdbool.h>
#else #else
/* /*
skipping to change at line 107 skipping to change at line 105
#define J2K_MAXBANDS (3*J2K_MAXRLVLS-2) /**< Number of maximum sub-b and linked to number of resolution level */ #define J2K_MAXBANDS (3*J2K_MAXRLVLS-2) /**< Number of maximum sub-b and linked to number of resolution level */
/* UniPG>> */ /* UniPG>> */
#define JPWL_MAX_NO_TILESPECS 16 /**< Maximum number of tile parts expecte d by JPWL: increase at your will */ #define JPWL_MAX_NO_TILESPECS 16 /**< Maximum number of tile parts expecte d by JPWL: increase at your will */
#define JPWL_MAX_NO_PACKSPECS 16 /**< Maximum number of packet parts expec ted by JPWL: increase at your will */ #define JPWL_MAX_NO_PACKSPECS 16 /**< Maximum number of packet parts expec ted by JPWL: increase at your will */
#define JPWL_MAX_NO_MARKERS 512 /**< Maximum number of JPWL markers: inc rease at your will */ #define JPWL_MAX_NO_MARKERS 512 /**< Maximum number of JPWL markers: inc rease at your will */
#define JPWL_PRIVATEINDEX_NAME "jpwl_index_privatefilename" /**< index file name used when JPWL is on */ #define JPWL_PRIVATEINDEX_NAME "jpwl_index_privatefilename" /**< index file name used when JPWL is on */
#define JPWL_EXPECTED_COMPONENTS 3 /**< Expect this number of components, s o you'll find better the first EPB */ #define JPWL_EXPECTED_COMPONENTS 3 /**< Expect this number of components, s o you'll find better the first EPB */
#define JPWL_MAXIMUM_TILES 8192 /**< Expect this maximum number of tiles, t o avoid some crashes */ #define JPWL_MAXIMUM_TILES 8192 /**< Expect this maximum number of tiles, t o avoid some crashes */
#define JPWL_MAXIMUM_HAMMING 2 /**< Expect this maximum number of bit error s in marker id's */ #define JPWL_MAXIMUM_HAMMING 2 /**< Expect this maximum number of bit error s in marker id's */
#define JPWL_MAXIMUM_EPB_ROOM 65450 /**< Expect this maximum number of byte s for composition of EPBs */
/* <<UniPG */ /* <<UniPG */
/* /*
========================================================== ==========================================================
enum definitions enum definitions
========================================================== ==========================================================
*/ */
/** /**
Rsiz Capabilities Rsiz Capabilities
*/ */
skipping to change at line 149 skipping to change at line 148
RLCP = 1, /**< resolution-layer-component-precinct ord er */ RLCP = 1, /**< resolution-layer-component-precinct ord er */
RPCL = 2, /**< resolution-precinct-component-layer ord er */ RPCL = 2, /**< resolution-precinct-component-layer ord er */
PCRL = 3, /**< precinct-component-resolution-layer ord er */ PCRL = 3, /**< precinct-component-resolution-layer ord er */
CPRL = 4 /**< component-precinct-resolution-layer ord er */ CPRL = 4 /**< component-precinct-resolution-layer ord er */
} OPJ_PROG_ORDER; } OPJ_PROG_ORDER;
/** /**
Supported image color spaces Supported image color spaces
*/ */
typedef enum COLOR_SPACE { typedef enum COLOR_SPACE {
CLRSPC_UNKNOWN = -1, /**< place-holder */ CLRSPC_UNKNOWN = -1, /**< not supported by the library */
CLRSPC_UNSPECIFIED = 0, /**< not specified in the codestream */
CLRSPC_SRGB = 1, /**< sRGB */ CLRSPC_SRGB = 1, /**< sRGB */
CLRSPC_GRAY = 2, /**< grayscale */ CLRSPC_GRAY = 2, /**< grayscale */
CLRSPC_SYCC = 3 /**< YUV */ CLRSPC_SYCC = 3 /**< YUV */
} OPJ_COLOR_SPACE; } OPJ_COLOR_SPACE;
/** /**
Supported codec Supported codec
*/ */
typedef enum CODEC_FORMAT { typedef enum CODEC_FORMAT {
CODEC_UNKNOWN = -1, /**< place-holder */ CODEC_UNKNOWN = -1, /**< place-holder */
skipping to change at line 304 skipping to change at line 304
int prcw_init[J2K_MAXRLVLS]; int prcw_init[J2K_MAXRLVLS];
/** initial precinct height */ /** initial precinct height */
int prch_init[J2K_MAXRLVLS]; int prch_init[J2K_MAXRLVLS];
/**@name command line encoder parameters (not used inside the librar y) */ /**@name command line encoder parameters (not used inside the librar y) */
/*@{*/ /*@{*/
/** input file name */ /** input file name */
char infile[OPJ_PATH_LEN]; char infile[OPJ_PATH_LEN];
/** output file name */ /** output file name */
char outfile[OPJ_PATH_LEN]; char outfile[OPJ_PATH_LEN];
/** creation of an index file, default to 0 (false) */ /** DEPRECATED. Index generation is now handeld with the opj_encode_ with_info() function. Set to NULL */
int index_on; int index_on;
/** index file name */ /** DEPRECATED. Index generation is now handeld with the opj_encode_ with_info() function. Set to NULL */
char index[OPJ_PATH_LEN]; char index[OPJ_PATH_LEN];
/** subimage encoding: origin image offset in x direction */ /** subimage encoding: origin image offset in x direction */
int image_offset_x0; int image_offset_x0;
/** subimage encoding: origin image offset in y direction */ /** subimage encoding: origin image offset in y direction */
int image_offset_y0; int image_offset_y0;
/** subsampling value for dx */ /** subsampling value for dx */
int subsampling_dx; int subsampling_dx;
/** subsampling value for dy */ /** subsampling value for dy */
int subsampling_dy; int subsampling_dy;
/** input file format 0: PGX, 1: PxM, 2: BMP 3:TIF*/ /** input file format 0: PGX, 1: PxM, 2: BMP 3:TIF*/
skipping to change at line 555 skipping to change at line 555
/** Xsiz: width of the reference grid */ /** Xsiz: width of the reference grid */
int x1; int x1;
/** Ysiz: height of the reference grid */ /** Ysiz: height of the reference grid */
int y1; int y1;
/** number of components in the image */ /** number of components in the image */
int numcomps; int numcomps;
/** color space: sRGB, Greyscale or YUV */ /** color space: sRGB, Greyscale or YUV */
OPJ_COLOR_SPACE color_space; OPJ_COLOR_SPACE color_space;
/** image components */ /** image components */
opj_image_comp_t *comps; opj_image_comp_t *comps;
/** 'restricted' ICC profile */
unsigned char *icc_profile_buf;
/** size of ICC profile */
int icc_profile_len;
} opj_image_t; } opj_image_t;
/** /**
Component parameters structure used by the opj_image_create function Component parameters structure used by the opj_image_create function
*/ */
typedef struct opj_image_comptparm { typedef struct opj_image_comptparm {
/** XRsiz: horizontal separation of a sample of ith component with r espect to the reference grid */ /** XRsiz: horizontal separation of a sample of ith component with r espect to the reference grid */
int dx; int dx;
/** YRsiz: vertical separation of a sample of ith component with res pect to the reference grid */ /** YRsiz: vertical separation of a sample of ith component with res pect to the reference grid */
int dy; int dy;
skipping to change at line 581 skipping to change at line 585
/** y component offset compared to the whole image */ /** y component offset compared to the whole image */
int y0; int y0;
/** precision */ /** precision */
int prec; int prec;
/** image depth in bits */ /** image depth in bits */
int bpp; int bpp;
/** signed (1) / unsigned (0) */ /** signed (1) / unsigned (0) */
int sgnd; int sgnd;
} opj_image_cmptparm_t; } opj_image_cmptparm_t;
/*
==========================================================
Information on the JPEG 2000 codestream
==========================================================
*/
/**
Index structure : Information concerning a packet inside tile
*/
typedef struct opj_packet_info {
/** packet start position (including SOP marker if it exists) */
int start_pos;
/** end of packet header position (including EPH marker if it exists
)*/
int end_ph_pos;
/** packet end position */
int end_pos;
/** packet distorsion */
double disto;
} opj_packet_info_t;
/**
Index structure : Information concerning tile-parts
*/
typedef struct opj_tp_info {
/** start position of tile part */
int tp_start_pos;
/** end position of tile part header */
int tp_end_header;
/** end position of tile part */
int tp_end_pos;
/** start packet of tile part */
int tp_start_pack;
/** number of packets of tile part */
int tp_numpacks;
} opj_tp_info_t;
/**
Index structure : information regarding tiles
*/
typedef struct opj_tile_info {
/** value of thresh for each layer by tile cfr. Marcela */
double *thresh;
/** number of tile */
int tileno;
/** start position */
int start_pos;
/** end position of the header */
int end_header;
/** end position */
int end_pos;
/** precinct number for each resolution level (width) */
int pw[33];
/** precinct number for each resolution level (height) */
int ph[33];
/** precinct size (in power of 2), in X for each resolution level */
int pdx[33];
/** precinct size (in power of 2), in Y for each resolution level */
int pdy[33];
/** information concerning packets inside tile */
opj_packet_info_t *packet;
/** add fixed_quality */
int numpix;
/** add fixed_quality */
double distotile;
/** number of tile parts */
int num_tps;
/** information concerning tile parts */
opj_tp_info_t *tp;
} opj_tile_info_t;
/* UniPG>> */
/**
Marker structure
*/
typedef struct opj_marker_info_t {
/** marker type */
unsigned short int type;
/** position in codestream */
int pos;
/** length, marker val included */
int len;
} opj_marker_info_t;
/* <<UniPG */
/**
Index structure of the codestream
*/
typedef struct opj_codestream_info {
/** maximum distortion reduction on the whole image (add for Marcela
) */
double D_max;
/** packet number */
int packno;
/** writing the packet in the index with t2_encode_packets */
int index_write;
/** image width */
int image_w;
/** image height */
int image_h;
/** progression order */
OPJ_PROG_ORDER prog;
/** tile size in x */
int tile_x;
/** tile size in y */
int tile_y;
/** */
int tile_Ox;
/** */
int tile_Oy;
/** number of tiles in X */
int tw;
/** number of tiles in Y */
int th;
/** component numbers */
int numcomps;
/** number of layer */
int numlayers;
/** number of decomposition for each component */
int *numdecompos;
/* UniPG>> */
/** number of markers */
int marknum;
/** list of markers */
opj_marker_info_t *marker;
/** actual size of markers array */
int maxmarknum;
/* <<UniPG */
/** main header position */
int main_head_start;
/** main header position */
int main_head_end;
/** codestream's size */
int codestream_size;
/** information regarding tiles inside image */
opj_tile_info_t *tile;
} opj_codestream_info_t;
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/* /*
========================================================== ==========================================================
openjpeg version openjpeg version
========================================================== ==========================================================
*/ */
OPJ_API const char * OPJ_CALLCONV opj_version(); OPJ_API const char * OPJ_CALLCONV opj_version(void);
/* /*
========================================================== ==========================================================
image functions definitions image functions definitions
========================================================== ==========================================================
*/ */
/** /**
Create an image Create an image
@param numcmpts number of components @param numcmpts number of components
skipping to change at line 695 skipping to change at line 835
@param parameters decompression parameters @param parameters decompression parameters
*/ */
OPJ_API void OPJ_CALLCONV opj_setup_decoder(opj_dinfo_t *dinfo, opj_dparame ters_t *parameters); OPJ_API void OPJ_CALLCONV opj_setup_decoder(opj_dinfo_t *dinfo, opj_dparame ters_t *parameters);
/** /**
Decode an image from a JPEG-2000 codestream Decode an image from a JPEG-2000 codestream
@param dinfo decompressor handle @param dinfo decompressor handle
@param cio Input buffer stream @param cio Input buffer stream
@return Returns a decoded image if successful, returns NULL otherwise @return Returns a decoded image if successful, returns NULL otherwise
*/ */
OPJ_API opj_image_t* OPJ_CALLCONV opj_decode(opj_dinfo_t *dinfo, opj_cio_t *cio); OPJ_API opj_image_t* OPJ_CALLCONV opj_decode(opj_dinfo_t *dinfo, opj_cio_t *cio);
/**
Decode an image from a JPEG-2000 codestream and extract the codestream info
rmation
@param dinfo decompressor handle
@param cio Input buffer stream
@param cstr_info Codestream information structure if needed afterwards, NUL
L otherwise
@return Returns a decoded image if successful, returns NULL otherwise
*/
OPJ_API opj_image_t* OPJ_CALLCONV opj_decode_with_info(opj_dinfo_t *dinfo,
opj_cio_t *cio, opj_codestream_info_t *cstr_info);
/** /**
Creates a J2K/JP2 compression structure Creates a J2K/JP2 compression structure
@param format Coder to select @param format Coder to select
@return Returns a handle to a compressor if successful, returns NULL otherw ise @return Returns a handle to a compressor if successful, returns NULL otherw ise
*/ */
OPJ_API opj_cinfo_t* OPJ_CALLCONV opj_create_compress(OPJ_CODEC_FORMAT form at); OPJ_API opj_cinfo_t* OPJ_CALLCONV opj_create_compress(OPJ_CODEC_FORMAT form at);
/** /**
Destroy a compressor handle Destroy a compressor handle
@param cinfo compressor handle to destroy @param cinfo compressor handle to destroy
*/ */
skipping to change at line 730 skipping to change at line 879
<li>No ROI upshifted <li>No ROI upshifted
<li>No offset of the origin of the image <li>No offset of the origin of the image
<li>No offset of the origin of the tiles <li>No offset of the origin of the tiles
<li>Reversible DWT 5-3 <li>Reversible DWT 5-3
</ul> </ul>
@param parameters Compression parameters @param parameters Compression parameters
*/ */
OPJ_API void OPJ_CALLCONV opj_set_default_encoder_parameters(opj_cparameter s_t *parameters); OPJ_API void OPJ_CALLCONV opj_set_default_encoder_parameters(opj_cparameter s_t *parameters);
/** /**
Setup the encoder parameters using the current image and using user paramet ers. Setup the encoder parameters using the current image and using user paramet ers.
@param cinfo compressor handle @param cinfo Compressor handle
@param parameters compression parameters @param parameters Compression parameters
@param image input filled image @param image Input filled image
*/ */
OPJ_API void OPJ_CALLCONV opj_setup_encoder(opj_cinfo_t *cinfo, opj_cparame ters_t *parameters, opj_image_t *image); OPJ_API void OPJ_CALLCONV opj_setup_encoder(opj_cinfo_t *cinfo, opj_cparame ters_t *parameters, opj_image_t *image);
/** /**
Encode an image into a JPEG-2000 codestream Encode an image into a JPEG-2000 codestream
@param cinfo compressor handle @param cinfo compressor handle
@param cio Output buffer stream @param cio Output buffer stream
@param image Image to encode @param image Image to encode
@param index Name of the index file if required, NULL otherwise @param index Depreacted -> Set to NULL. To extract index, used opj_encode_w ci()
@return Returns true if successful, returns false otherwise @return Returns true if successful, returns false otherwise
*/ */
OPJ_API bool OPJ_CALLCONV opj_encode(opj_cinfo_t *cinfo, opj_cio_t *cio, op j_image_t *image, char *index); OPJ_API bool OPJ_CALLCONV opj_encode(opj_cinfo_t *cinfo, opj_cio_t *cio, op j_image_t *image, char *index);
/**
Encode an image into a JPEG-2000 codestream and extract the codestream info
rmation
@param cinfo compressor handle
@param cio Output buffer stream
@param image Image to encode
@param cstr_info Codestream information structure if needed afterwards, NUL
L otherwise
@return Returns true if successful, returns false otherwise
*/
OPJ_API bool OPJ_CALLCONV opj_encode_with_info(opj_cinfo_t *cinfo, opj_cio_
t *cio, opj_image_t *image, opj_codestream_info_t *cstr_info);
/**
Destroy Codestream information after compression or decompression
@param cstr_info Codestream information structure
*/
OPJ_API void OPJ_CALLCONV opj_destroy_cstr_info(opj_codestream_info_t *cstr
_info);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* OPENJPEG_H */ #endif /* OPENJPEG_H */
 End of changes. 15 change blocks. 
13 lines changed or deleted 185 lines changed or added

This html diff was produced by rfcdiff 1.41.The latest version is available from http://tools.ietf.org/tools/rfcdiff/