diff --git a/src/lib/openmj2/openjpeg.c b/src/lib/openmj2/openjpeg.c index ae4bf1e4..a0cce5da 100644 --- a/src/lib/openmj2/openjpeg.c +++ b/src/lib/openmj2/openjpeg.c @@ -372,3 +372,18 @@ void OPJ_CALLCONV opj_destroy_cstr_info(opj_codestream_info_t *cstr_info) opj_free(cstr_info->numdecompos); } } + +void* OPJ_CALLCONV opj_image_data_alloc(size_t size) +{ + /* NOTE: this defers from libopenjp2 where we use opj_aligned_malloc */ + void* ret = opj_malloc(size); + /* printf("opj_image_data_alloc %p\n", ret); */ + return ret; +} + +void OPJ_CALLCONV opj_image_data_free(void* ptr) +{ + /* NOTE: this defers from libopenjp2 where we use opj_aligned_free */ + /* printf("opj_image_data_free %p\n", ptr); */ + opj_free(ptr); +} diff --git a/src/lib/openmj2/openjpeg.h b/src/lib/openmj2/openjpeg.h index 7861edb5..10fccf1e 100644 --- a/src/lib/openmj2/openjpeg.h +++ b/src/lib/openmj2/openjpeg.h @@ -763,6 +763,27 @@ Deallocate any resources associated with an image */ OPJ_API void OPJ_CALLCONV opj_image_destroy(opj_image_t *image); +/** + * Allocator for opj_image_t->comps[].data + * To be paired with opj_image_data_free. + * + * @param size number of bytes to allocate + * + * @return a new pointer if successful, NULL otherwise. + * @since 2.2.0 +*/ +OPJ_API void* OPJ_CALLCONV opj_image_data_alloc(size_t size); + +/** + * Destructor for opj_image_t->comps[].data + * To be paired with opj_image_data_alloc. + * + * @param ptr Pointer to free + * + * @since 2.2.0 +*/ +OPJ_API void OPJ_CALLCONV opj_image_data_free(void* ptr); + /* ========================================================== stream functions definitions