Fix JP2 coder linking. The new function was added to the API in revision r2293 on 2013-02-03 and is not present in openjpeg-2.0.0 (released in 2012-11). Use the older API instead. --- coders/jp2.c 2014-01-21 23:10:20 +0100 +++ coders/jp2.c 2014-03-07 00:47:36 +0100 @@ -369,7 +369,7 @@ static Image *ReadJP2Image(const ImageIn if (opj_read_header(jp2_stream,jp2_codec,&jp2_image) == 0) { opj_stream_set_user_data(jp2_stream,NULL); - opj_stream_destroy_v3(jp2_stream); + opj_stream_destroy(jp2_stream); opj_destroy_codec(jp2_codec); ThrowReaderException(DelegateError,"UnableToDecodeImageFile"); } @@ -384,7 +384,7 @@ static Image *ReadJP2Image(const ImageIn if (jp2_status == 0) { opj_stream_set_user_data(jp2_stream,NULL); - opj_stream_destroy_v3(jp2_stream); + opj_stream_destroy(jp2_stream); opj_destroy_codec(jp2_codec); opj_image_destroy(jp2_image); ThrowReaderException(DelegateError,"UnableToDecodeImageFile"); @@ -402,13 +402,13 @@ static Image *ReadJP2Image(const ImageIn if (jp2_status == 0) { opj_stream_set_user_data(jp2_stream,NULL); - opj_stream_destroy_v3(jp2_stream); + opj_stream_destroy(jp2_stream); opj_destroy_codec(jp2_codec); opj_image_destroy(jp2_image); ThrowReaderException(DelegateError,"UnableToDecodeImageFile"); } opj_stream_set_user_data(jp2_stream,NULL); - opj_stream_destroy_v3(jp2_stream); + opj_stream_destroy(jp2_stream); for (i=0; i < (ssize_t) jp2_image->numcomps; i++) { if ((jp2_image->comps[i].dx == 0) || (jp2_image->comps[i].dy == 0)) @@ -1057,7 +1057,7 @@ static MagickBooleanType WriteJP2Image(c (opj_end_compress(jp2_codec,jp2_stream) == 0)) { opj_stream_set_user_data(jp2_stream,NULL); - opj_stream_destroy_v3(jp2_stream); + opj_stream_destroy(jp2_stream); opj_destroy_codec(jp2_codec); opj_image_destroy(jp2_image); ThrowWriterException(DelegateError,"UnableToEncodeImageFile"); @@ -1066,7 +1066,7 @@ static MagickBooleanType WriteJP2Image(c Free resources. */ opj_stream_set_user_data(jp2_stream,NULL); - opj_stream_destroy_v3(jp2_stream); + opj_stream_destroy(jp2_stream); opj_destroy_codec(jp2_codec); opj_image_destroy(jp2_image); (void) CloseBlob(image);