opj_jp2_t* jp2_create_decompress(opj_common_ptr cinfo) { opj_jp2_t *jp2 = (opj_jp2_t*) opj_calloc(1, sizeof(opj_jp2_t)); if(jp2) { jp2->cinfo = cinfo; /* create the J2K codec */ jp2->j2k = j2k_create_decompress(cinfo); if(jp2->j2k == NULL) { jp2_destroy_decompress(jp2); return NULL; } } return jp2; }
void OPJ_CALLCONV opj_destroy_decompress(opj_dinfo_t *dinfo) { if(dinfo) { /* destroy the codec */ switch(dinfo->codec_format) { case CODEC_J2K: case CODEC_JPT: j2k_destroy_decompress((opj_j2k_t*)dinfo->j2k_handle); break; case CODEC_JP2: jp2_destroy_decompress((opj_jp2_t*)dinfo->jp2_handle); break; case CODEC_UNKNOWN: default: break; } /* destroy the decompressor */ opj_free(dinfo); } }