unchanged: --- a/gdal/frmts/jpeg2000/jpeg2000dataset.cpp +++ b/gdal/frmts/jpeg2000/jpeg2000dataset.cpp @@ -484,7 +484,7 @@ int JPEG2000Dataset::DecodeImage() /* the JP2 boxes match the ones of the code stream */ if (nBands != 0) { - if (nBands != jas_image_numcmpts( psImage )) + if (nBands != static_cast(jas_image_numcmpts( psImage ))) { CPLError(CE_Failure, CPLE_AppDefined, "The number of components indicated in the IHDR box (%d) mismatch " @@ -595,7 +595,7 @@ GDALDataset *JPEG2000Dataset::Open( GDALOpenInfo * poOpenInfo ) { int iFormat; - char *pszFormatName = nullptr; + const char *pszFormatName = nullptr; if (!Identify(poOpenInfo)) return nullptr; only in patch2: unchanged: --- a/gdal/frmts/jpeg2000/jpeg2000_vsil_io.cpp +++ b/gdal/frmts/jpeg2000/jpeg2000_vsil_io.cpp @@ -94,13 +94,23 @@ typedef struct { * File stream object. \******************************************************************************/ +// PRIjas_seqent macro is defined since Jasper 2.0.17 + +#ifndef PRIjas_seqent static int JPEG2000_VSIL_read(jas_stream_obj_t *obj, char *buf, int cnt) +#else +static int JPEG2000_VSIL_read(jas_stream_obj_t *obj, char *buf, unsigned cnt) +#endif { jas_stream_VSIFL_t *fileobj = JAS_CAST(jas_stream_VSIFL_t *, obj); return static_cast(VSIFReadL(buf, 1, cnt, fileobj->fp)); } +#ifndef PRIjas_seqent -static int JPEG2000_VSIL_write(jas_stream_obj_t *obj, char *buf, int cnt) +static int JPEG2000_VSIL_write(jas_stream_obj_t *obj, const char *buf, int cnt) +#else +static int JPEG2000_VSIL_write(jas_stream_obj_t *obj, const char *buf, unsigned int cnt) +#endif { jas_stream_VSIFL_t *fileobj = JAS_CAST(jas_stream_VSIFL_t *, obj); return static_cast(VSIFWriteL(buf, 1, cnt, fileobj->fp));