X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libopenjpeg%2Fj2k.h;h=51907004bc416d15ccbe81dc920e3fa3b10b7be8;hb=a600d8f4e2c21ea0532d4af3dc6374b60b93c583;hp=e2d8429bbb572b6f7098e2b581f82b94fe53074a;hpb=d44375aece5dea2af83ffb8c9de4ade2ad35c593;p=openjpeg.git diff --git a/libopenjpeg/j2k.h b/libopenjpeg/j2k.h index e2d8429b..51907004 100644 --- a/libopenjpeg/j2k.h +++ b/libopenjpeg/j2k.h @@ -80,7 +80,7 @@ The functions in J2K.C have for goal to read/write the several parts of the code #define J2K_MS_UNK 0 /**< UNKNOWN marker value */ -#ifdef TODO_MS +#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 */ @@ -117,7 +117,9 @@ typedef enum J2K_STATUS { J2K_STATE_TPH = 0x0010, /**< the decoding process is in a tile part header */ J2K_STATE_MT = 0x0020, /**< the EOC marker has just been read */ J2K_STATE_NEOC = 0x0040, /**< the decoding process must not expect a EOC marker because the codestream is truncated */ - J2K_STATE_ERR = 0x0080 /**< the decoding process has encountered an error */ + + J2K_STATE_EOC = 0x0100, /**< the decoding process has encountered the EOC marker */ + J2K_STATE_ERR = 0x8000 /**< the decoding process has encountered an error (FIXME warning V1 = 0x0080)*/ } J2K_STATUS; /* ----------------------------------------------------------------------- */ @@ -562,15 +564,15 @@ typedef struct opj_cp_v2 /* UniPG>> */ #ifdef USE_JPWL /** enables writing of EPC in MH, thus activating JPWL */ - bool epc_on; + opj_bool epc_on; /** enables writing of EPB, in case of activated JPWL */ - bool epb_on; + opj_bool epb_on; /** enables writing of ESD, in case of activated JPWL */ - bool esd_on; + opj_bool esd_on; /** enables writing of informative techniques of ESD, in case of activated JPWL */ - bool info_on; + opj_bool info_on; /** enables writing of RED, in case of activated JPWL */ - bool red_on; + opj_bool red_on; /** error protection method for MH (0,1,16,32,37-128) */ int hprot_MH; /** tile number of header protection specification (>=0) */ @@ -596,7 +598,7 @@ typedef struct opj_cp_v2 /** sensitivity methods for TPHs (-1,0-7) */ int sens_TPH[JPWL_MAX_NO_TILESPECS]; /** enables JPWL correction at the decoder */ - bool correct; + opj_bool correct; /** expected number of components at the decoder */ int exp_comps; /** maximum number of tiles at the decoder */ @@ -743,6 +745,10 @@ JPEG-2000 codestream reader/writer */ typedef struct opj_j2k_v2 { + /* J2K codestream is decoded*/ + opj_bool m_is_decoder; + + /* FIXME DOC*/ union { opj_j2k_dec_t m_decoder; @@ -767,13 +773,13 @@ typedef struct opj_j2k_v2 struct opj_procedure_list * m_validation_list; /** helper used to write the index file */ - opj_codestream_info_v2_t *cstr_info; + opj_codestream_index_t *cstr_index; /** the current tile coder/decoder **/ struct opj_tcd_v2 * m_tcd; //opj_tcd_v2_t * m_tcd; - OPJ_UINT32 m_is_decoder : 1; + } opj_j2k_v2_t; @@ -884,7 +890,7 @@ opj_bool j2k_end_decompress(opj_j2k_v2_t *j2k, struct opj_stream_private *cio, s */ opj_bool j2k_read_header( struct opj_stream_private *p_stream, opj_j2k_v2_t* p_j2k, - opj_file_info_t * p_file_info, + opj_image_header_t* p_img_header, struct opj_event_mgr* p_manager ); @@ -943,21 +949,67 @@ opj_bool j2k_read_tile_header ( * * @return true if the area could be set. */ -opj_bool j2k_set_decode_area( - opj_j2k_v2_t *p_j2k, - OPJ_INT32 p_start_x, - OPJ_INT32 p_start_y, - OPJ_INT32 p_end_x, - OPJ_INT32 p_end_y, - struct opj_event_mgr * p_manager - ); +opj_bool j2k_set_decode_area( opj_j2k_v2_t *p_j2k, + OPJ_INT32 p_start_x, OPJ_INT32 p_start_y, + OPJ_INT32 p_end_x, OPJ_INT32 p_end_y, + struct opj_event_mgr * p_manager ); /** * Creates a J2K decompression structure. * * @return a handle to a J2K decompressor if successful, NULL otherwise. -*/ + */ opj_j2k_v2_t* j2k_create_decompress_v2(); +/** + * Dump some elements from the J2K decompression structure . + * + *@param p_j2k the jpeg2000 codec. + *@param flag flag to describe what elments are dump. + *@param out_stream output stream where dump the elements. + * +*/ +void j2k_dump (opj_j2k_v2_t* p_j2k, OPJ_INT32 flag, FILE* out_stream); + + + +/** + * Dump an image header structure. + * + *@param img_header the image header to dump. + *@param dev_dump_flag flag to describe if we are in the case of this function is use outside j2k_dump function + *@param out_stream output stream where dump the elements. + */ +void j2k_dump_image_header(opj_image_header_t* img_header, opj_bool dev_dump_flag, FILE* out_stream); + +/** + * Dump a component image header structure. + * + *@param comp_header the component image header to dump. + *@param dev_dump_flag flag to describe if we are in the case of this function is use outside j2k_dump function + *@param out_stream output stream where dump the elements. + */ +void j2k_dump_image_comp_header(opj_image_comp_header_t* comp_header, opj_bool dev_dump_flag, FILE* out_stream); + +/** + * Get the codestream info from a JPEG2000 codec. + * + *@param p_j2k the component image header to dump. + * + *@return the codestream information extract from the jpg2000 codec + */ +opj_codestream_info_v2_t* j2k_get_cstr_info(opj_j2k_v2_t* p_j2k); + +/** + * Get the codestream index from a JPEG2000 codec. + * + *@param p_j2k the component image header to dump. + * + *@return the codestream index extract from the jpg2000 codec + */ +opj_codestream_index_t* j2k_get_cstr_index(opj_j2k_v2_t* p_j2k); + + + #endif /* __J2K_H */