OPJ_UINT32 res_factor,
struct opj_event_mgr * p_manager)) opj_j2k_set_decoded_resolution_factor;
+ l_codec->m_codec_data.m_decompression.opj_set_decoded_components =
+ (OPJ_BOOL(*)(void * p_codec,
+ OPJ_UINT32 numcomps,
+ const OPJ_UINT32 * comps_indices,
+ struct opj_event_mgr * p_manager)) opj_j2k_set_decoded_components;
+
l_codec->opj_set_threads =
(OPJ_BOOL(*)(void * p_codec, OPJ_UINT32 num_threads)) opj_j2k_set_threads;
OPJ_UINT32 res_factor,
opj_event_mgr_t * p_manager)) opj_jp2_set_decoded_resolution_factor;
+ l_codec->m_codec_data.m_decompression.opj_set_decoded_components =
+ (OPJ_BOOL(*)(void * p_codec,
+ OPJ_UINT32 numcomps,
+ const OPJ_UINT32 * comps_indices,
+ struct opj_event_mgr * p_manager)) opj_jp2_set_decoded_components;
+
l_codec->opj_set_threads =
(OPJ_BOOL(*)(void * p_codec, OPJ_UINT32 num_threads)) opj_jp2_set_threads;
return OPJ_FALSE;
}
+
+OPJ_BOOL OPJ_CALLCONV opj_set_decoded_components(opj_codec_t *p_codec,
+ OPJ_UINT32 numcomps,
+ const OPJ_UINT32* comps_indices,
+ OPJ_BOOL apply_color_transforms)
+{
+ if (p_codec) {
+ opj_codec_private_t * l_codec = (opj_codec_private_t *) p_codec;
+
+ if (! l_codec->is_decompressor) {
+ opj_event_msg(&(l_codec->m_event_mgr), EVT_ERROR,
+ "Codec provided to the opj_set_decoded_components function is not a decompressor handler.\n");
+ return OPJ_FALSE;
+ }
+
+ if (apply_color_transforms) {
+ opj_event_msg(&(l_codec->m_event_mgr), EVT_ERROR,
+ "apply_color_transforms = OPJ_TRUE is not supported.\n");
+ return OPJ_FALSE;
+ }
+
+ return l_codec->m_codec_data.m_decompression.opj_set_decoded_components(
+ l_codec->m_codec,
+ numcomps,
+ comps_indices,
+ &(l_codec->m_event_mgr));
+ }
+ return OPJ_FALSE;
+}
+
OPJ_BOOL OPJ_CALLCONV opj_decode(opj_codec_t *p_codec,
opj_stream_t *p_stream,
opj_image_t* p_image)
parameters->cp_cinema = OPJ_OFF; /* DEPRECATED */
parameters->rsiz = OPJ_PROFILE_NONE;
parameters->max_comp_size = 0;
- parameters->numresolution = 6;
+ parameters->numresolution = OPJ_COMP_PARAM_DEFAULT_NUMRESOLUTION;
parameters->cp_rsiz = OPJ_STD_RSIZ; /* DEPRECATED */
- parameters->cblockw_init = 64;
- parameters->cblockh_init = 64;
- parameters->prog_order = OPJ_LRCP;
+ parameters->cblockw_init = OPJ_COMP_PARAM_DEFAULT_CBLOCKW;
+ parameters->cblockh_init = OPJ_COMP_PARAM_DEFAULT_CBLOCKH;
+ parameters->prog_order = OPJ_COMP_PARAM_DEFAULT_PROG_ORDER;
parameters->roi_compno = -1; /* no ROI */
parameters->subsampling_dx = 1;
parameters->subsampling_dy = 1;
void* OPJ_CALLCONV opj_image_data_alloc(OPJ_SIZE_T size)
{
- return opj_aligned_malloc(size);
+ void* ret = opj_aligned_malloc(size);
+ /* printf("opj_image_data_alloc %p\n", ret); */
+ return ret;
}
void OPJ_CALLCONV opj_image_data_free(void* ptr)
{
+ /* printf("opj_image_data_free %p\n", ptr); */
opj_aligned_free(ptr);
}