}/* opj_jp2_decode() */
-opj_bool opj_jp2_decode_v2( opj_jp2_v2_t *jp2,
- struct opj_stream_private *cio,
- opj_image_t* p_image,
- struct opj_event_mgr * p_manager)
+opj_bool jp2_decode_v2( opj_jp2_v2_t *jp2,
+ struct opj_stream_private *cio,
+ opj_image_t* p_image,
+ struct opj_event_mgr * p_manager)
{
+ if (!p_image)
+ return OPJ_FALSE;
+
/* J2K decoding */
- if( j2k_decode_v2(jp2->j2k, cio, p_image, p_manager) ) {
- opj_event_msg_v2(p_manager, EVT_ERROR, "Failed to decode J2K image\n");
+ if( ! j2k_decode_v2(jp2->j2k, cio, p_image, p_manager) ) {
+ opj_event_msg_v2(p_manager, EVT_ERROR, "Failed to decode the codestream in the JP2 file\n");
return OPJ_FALSE;
}
if(jp2->color.icc_profile_buf) {
p_image->icc_profile_buf = jp2->color.icc_profile_buf;
p_image->icc_profile_len = jp2->color.icc_profile_len;
+ jp2->color.icc_profile_buf = NULL;
}
return OPJ_TRUE;
*/
opj_bool jp2_read_header( struct opj_stream_private *p_stream,
opj_jp2_v2_t *jp2,
- opj_image_t* p_image,
+ opj_image_t** p_image,
struct opj_event_mgr * p_manager
)
{
- // preconditions
+ /* preconditions */
assert(jp2 != 00);
assert(p_stream != 00);
assert(p_manager != 00);
* @param p_stream the stream to write data to.
* @param p_manager the user event manager.
*/
-opj_bool opj_jp2_decode_tile (
+opj_bool jp2_decode_tile (
opj_jp2_v2_t * p_jp2,
OPJ_UINT32 p_tile_index,
OPJ_BYTE * p_data,
return 00;
}
+ /* Color structure */
+ jp2->color.icc_profile_buf = NULL;
+ jp2->color.icc_profile_len = 0;
+ jp2->color.jp2_cdef = NULL;
+ jp2->color.jp2_pclr = NULL;
+ jp2->color.jp2_has_colr = 0;
+
// validation list creation
jp2->m_validation_list = opj_procedure_list_create();
if (! jp2->m_validation_list) {
return jp2;
}
+
+void jp2_dump(opj_jp2_v2_t* p_jp2, OPJ_INT32 flag, FILE* out_stream)
+{
+ /* preconditions */
+ assert(p_jp2 != 00);
+
+ j2k_dump(p_jp2->j2k,
+ flag,
+ out_stream);
+}
+
+opj_codestream_index_t* jp2_get_cstr_index(opj_jp2_v2_t* p_jp2)
+{
+ return j2k_get_cstr_index(p_jp2->j2k);
+}
+
+opj_codestream_info_v2_t* jp2_get_cstr_info(opj_jp2_v2_t* p_jp2)
+{
+ return j2k_get_cstr_info(p_jp2->j2k);
+}
+