bool opj_tile_buf_alloc_component_data_encode(opj_tile_buf_component_t* buf) { if (!buf) return false; if ((buf->data == 00) || ((buf->data_size_needed > buf->data_size) && (buf->owns_data == false))) { buf->data = (int32_t *)opj_aligned_malloc(buf->data_size_needed); if (!buf->data) { return false; } buf->data_size = buf->data_size_needed; buf->owns_data = true; } else if (buf->data_size_needed > buf->data_size) { /* We don't need to keep old data */ opj_aligned_free(buf->data); buf->data = (int32_t *)opj_aligned_malloc(buf->data_size_needed); if (!buf->data) { buf->data_size = 0; buf->data_size_needed = 0; buf->owns_data = false; return false; } buf->data_size = buf->data_size_needed; buf->owns_data = true; } return true; }
void OPJ_CALLCONV opj_image_single_component_data_free(opj_image_comp_t* comp) { if (!comp) return; if (comp->data) { opj_aligned_free(comp->data); comp->data = NULL; } }
/** * Destroys a previously created T1 handle * * @param p_t1 Tier 1 handle to destroy */ void opj_t1_opt_destroy(opj_t1_opt_t *p_t1) { if (!p_t1) { return; } /* destroy MQC handles */ opj_mqc_destroy(p_t1->mqc); p_t1->mqc = 00; /* encoder uses tile buffer, so no need to free */ if (p_t1->data) { opj_aligned_free(p_t1->data); p_t1->data = 00; } if (p_t1->flags) { opj_aligned_free(p_t1->flags); p_t1->flags = 00; } opj_free(p_t1); }
void opj_tile_buf_destroy_component(opj_tile_buf_component_t* comp) { if (!comp) return; if (comp->data && comp->owns_data) opj_aligned_free(comp->data); comp->data = NULL; comp->data_size = 0; comp->data_size_needed = 0; for (auto& res : comp->resolutions) { opj_free(res); } comp->resolutions.clear(); delete comp; }
void OPJ_CALLCONV opj_image_data_free(void* ptr) { /* printf("opj_image_data_free %p\n", ptr); */ opj_aligned_free(ptr); }