* These values may be combined with a | operator.
* */
typedef enum J2K_STATUS {
+ J2K_STATE_NONE = 0x0000, /**< a SOC marker is expected */
J2K_STATE_MHSOC = 0x0001, /**< a SOC marker is expected */
J2K_STATE_MHSIZ = 0x0002, /**< a SIZ marker is expected */
J2K_STATE_MH = 0x0004, /**< the decoding process is in the main header */
/** Rsiz*/
OPJ_RSIZ_CAPABILITIES rsiz;
/** XTOsiz */
- OPJ_UINT32 tx0; // MSD see norm
+ OPJ_UINT32 tx0; /* MSD see norm */
/** YTOsiz */
- OPJ_UINT32 ty0; // MSD see norm
+ OPJ_UINT32 ty0; /* MSD see norm */
/** XTsiz */
OPJ_UINT32 tdx;
/** YTsiz */
/** Index of the tile to decode (used in get_tile) */
OPJ_INT32 m_tile_ind_to_dec;
/** Position of the last SOT marker read */
- OPJ_UINT32 m_last_sot_read_pos;
+ OPJ_OFF_T m_last_sot_read_pos;
/**
* Indicate that the current tile-part is assume as the last tile part of the codestream.
typedef struct opj_j2k_enc
{
/** Tile part number, regardless of poc, for each new poc, tp is reset to 1*/
- OPJ_UINT32 m_current_poc_tile_part_number; // tp_num
+ OPJ_UINT32 m_current_poc_tile_part_number; /* tp_num */
/** Tile part number currently coding, taking into account POC. m_current_tile_part_number holds the total number of tile parts while encoding the last tile part.*/
- OPJ_UINT32 m_current_tile_part_number; //cur_tp_num
+ OPJ_UINT32 m_current_tile_part_number; /*cur_tp_num */
/**
locate the start position of the TLM marker
/** Total num of tile parts in whole image = num tiles* num tileparts in each tile*/
/** used in TLMmarker*/
- OPJ_UINT32 m_total_tile_parts; // totnum_tp
+ OPJ_UINT32 m_total_tile_parts; /* totnum_tp */
/* encoded data for a tile */
OPJ_BYTE * m_encoded_tile_data;
/** @name Exported functions */
/*@{*/
/* ----------------------------------------------------------------------- */
-/**
-Creates a J2K decompression structure
-@param cinfo Codec context info
-@return Returns a handle to a J2K decompressor if successful, returns NULL otherwise
-*/
-opj_j2k_t* j2k_create_decompress(opj_common_ptr cinfo);
+
/**
Destroy a J2K decompressor handle
@param j2k J2K decompressor handle to destroy
@param cinfo Codec context info
@return Returns a handle to a J2K compressor if successful, returns NULL otherwise
*/
-opj_j2k_v2_t* j2k_create_compress_v2();
+opj_j2k_v2_t* j2k_create_compress_v2(void);
/**
Destroy a J2K compressor handle
@param image input filled image
*/
void j2k_setup_encoder(opj_j2k_t *j2k, opj_cparameters_t *parameters, opj_image_t *image);
+
+void j2k_setup_encoder_v2( opj_j2k_v2_t *p_j2k,
+ opj_cparameters_t *parameters,
+ opj_image_t *image,
+ struct opj_event_mgr * p_manager);
+
/**
Converts an enum type progression order to string type
*/
*
* @return a handle to a J2K decompressor if successful, NULL otherwise.
*/
-opj_j2k_v2_t* j2k_create_decompress_v2();
+opj_j2k_v2_t* j2k_create_decompress_v2(void);
/**
struct opj_event_mgr * p_manager,
OPJ_UINT32 tile_index );
+opj_bool j2k_set_decoded_resolution_factor(opj_j2k_v2_t *p_j2k, OPJ_UINT32 res_factor, opj_event_mgr_t * p_manager);
+
+
+/**
+ * Writes a tile.
+ * @param p_j2k the jpeg2000 codec.
+ * @param p_stream the stream to write data to.
+ * @param p_manager the user event manager.
+ */
+opj_bool j2k_write_tile ( opj_j2k_v2_t * p_j2k,
+ OPJ_UINT32 p_tile_index,
+ OPJ_BYTE * p_data,
+ OPJ_UINT32 p_data_size,
+ struct opj_stream_private *p_stream,
+ struct opj_event_mgr * p_manager );
+
+/**
+ * Encodes an image into a JPEG-2000 codestream
+ */
+opj_bool j2k_encode_v2( opj_j2k_v2_t * p_j2k,
+ opj_stream_private_t *cio,
+ struct opj_event_mgr * p_manager );
+
+/**
+ * Starts a compression scheme, i.e. validates the codec parameters, writes the header.
+ *
+ * @param p_j2k the jpeg2000 codec.
+ * @param cio the stream object.
+ * @param p_manager the user event manager.
+ *
+ * @return true if the codec is valid.
+ */
+opj_bool j2k_start_compress(opj_j2k_v2_t *p_j2k,
+ struct opj_stream_private *cio,
+ struct opj_image * p_image,
+ struct opj_event_mgr * p_manager );
+
+/**
+ * Ends the compression procedures and possibiliy add data to be read after the
+ * codestream.
+ */
+opj_bool j2k_end_compress( opj_j2k_v2_t *p_j2k,
+ opj_stream_private_t *cio,
+ struct opj_event_mgr * p_manager);
+
+opj_bool j2k_setup_mct_encoding (opj_tcp_v2_t * p_tcp, opj_image_t * p_image);
+
#endif /* __J2K_H */