diff options
| author | Francois-Olivier Devaux <fodevaux@users.noreply.github.com> | 2007-09-07 15:01:55 +0000 |
|---|---|---|
| committer | Francois-Olivier Devaux <fodevaux@users.noreply.github.com> | 2007-09-07 15:01:55 +0000 |
| commit | 3816e0edf40b766ab78cdbf3ba5634b684630d0f (patch) | |
| tree | af0ef564292e21011947790793b59f79a16940d3 /libopenjpeg/openjpeg.h | |
| parent | e7149e0c567d38e61b69db44ecda7f228310291d (diff) | |
Indexes can now be generated when decoding J2K codestreams.
Diffstat (limited to 'libopenjpeg/openjpeg.h')
| -rw-r--r-- | libopenjpeg/openjpeg.h | 70 |
1 files changed, 37 insertions, 33 deletions
diff --git a/libopenjpeg/openjpeg.h b/libopenjpeg/openjpeg.h index bf92199a..7021bb54 100644 --- a/libopenjpeg/openjpeg.h +++ b/libopenjpeg/openjpeg.h @@ -303,10 +303,6 @@ typedef struct opj_cparameters { char infile[OPJ_PATH_LEN]; /** output file name */ char outfile[OPJ_PATH_LEN]; - /** creation of an index file, default to 0 (false) */ - int index_on; - /** index file name */ - char index[OPJ_PATH_LEN]; /** subimage encoding: origin image offset in x direction */ int image_offset_x0; /** subimage encoding: origin image offset in y direction */ @@ -490,7 +486,7 @@ typedef struct opj_cio { /** pointer to the start of the buffer */ unsigned char *buffer; /** buffer size in bytes */ - int length; + unsigned int length; /** pointer to the start of the stream */ unsigned char *start; @@ -601,13 +597,27 @@ typedef struct opj_packet_info { } opj_packet_info_t; /** -Index structure : information regarding tiles inside image +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; + /** 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 num_tile; + int tileno; /** start position */ int start_pos; /** end position of the header */ @@ -625,33 +635,23 @@ typedef struct opj_tile_info { /** information concerning packets inside tile */ opj_packet_info_t *packet; /** add fixed_quality */ - int nbpix; + int numpix; /** add fixed_quality */ double distotile; -/* UniPG>> */ - /** number of tile parts */ - int num_tps; - /** 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; - /** number of packets of tile part */ - int *tp_num; -/* << UniPG */ + /** number of tile parts */ + int num_tps; + /** information concerning tile parts */ + opj_tp_info_t *tp; } opj_tile_info_t; /** Index structure of the codestream */ typedef struct opj_codestream_info { - /** 0 = no index || 1 = index */ - int index_on; /** maximum distortion reduction on the whole image (add for Marcela) */ double D_max; /** packet number */ - int num; + int packno; /** writing the packet in the index with t2_encode_packets */ int index_write; /** image width */ @@ -673,15 +673,13 @@ typedef struct opj_codestream_info { /** number of tiles in Y */ int th; /** component numbers */ - int comp; + int numcomps; /** number of layer */ - int layer; - /** number of decomposition */ - int decomposition; -/* UniPG>> */ - /** main header position */ - int main_head_start; -/* <<UniPG */ + int numlayers; + /** number of decomposition of first component */ + int numdecompos; + /** main header position */ + int main_head_start; /** main header position */ int main_head_end; /** codestream's size */ @@ -802,9 +800,10 @@ OPJ_API void OPJ_CALLCONV opj_setup_decoder(opj_dinfo_t *dinfo, opj_dparameters_ Decode an image from a JPEG-2000 codestream @param dinfo decompressor handle @param cio Input buffer stream +@param cstr_info Codestream information structure if needed afterwards, 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, opj_codestream_info_t *cstr_info); /** Creates a J2K/JP2 compression structure @param format Coder to select @@ -850,10 +849,15 @@ Encode an image into a JPEG-2000 codestream @param cinfo compressor handle @param cio Output buffer stream @param image Image to encode -@param cstr_info Codestream information structure if required, NULL otherwise +@param cstr_info Codestream information structure if needed afterwards, NULL otherwise @return Returns true if successful, returns false otherwise */ OPJ_API bool OPJ_CALLCONV opj_encode(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 } |
