| Index: core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/pi.c
|
| diff --git a/core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/pi.c b/core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/pi.c
|
| index 65ff6263e0db17fc39ae53a9fab2d4ca47c968c5..393a1e5540715d6d9b12a1148d66189935ea3cd0 100644
|
| --- a/core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/pi.c
|
| +++ b/core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/pi.c
|
| @@ -693,6 +693,9 @@ void opj_get_all_encoding_parameters( const opj_image_t *p_image,
|
| /* position in x and y of tile*/
|
| OPJ_UINT32 p, q;
|
|
|
| + /* non-corrected (in regard to image offset) tile offset */
|
| + OPJ_UINT32 l_tx0, l_ty0;
|
| +
|
| /* preconditions in debug*/
|
| assert(p_cp != 00);
|
| assert(p_image != 00);
|
| @@ -708,10 +711,12 @@ void opj_get_all_encoding_parameters( const opj_image_t *p_image,
|
| q = tileno / p_cp->tw;
|
|
|
| /* here calculation of tx0, tx1, ty0, ty1, maxprec, l_dx and l_dy */
|
| - *p_tx0 = opj_int_max((OPJ_INT32)(p_cp->tx0 + p * p_cp->tdx), (OPJ_INT32)p_image->x0);
|
| - *p_tx1 = opj_int_min((OPJ_INT32)(p_cp->tx0 + (p + 1) * p_cp->tdx), (OPJ_INT32)p_image->x1);
|
| - *p_ty0 = opj_int_max((OPJ_INT32)(p_cp->ty0 + q * p_cp->tdy), (OPJ_INT32)p_image->y0);
|
| - *p_ty1 = opj_int_min((OPJ_INT32)(p_cp->ty0 + (q + 1) * p_cp->tdy), (OPJ_INT32)p_image->y1);
|
| + l_tx0 = p_cp->tx0 + p * p_cp->tdx; /* can't be greater than p_image->x1 so won't overflow */
|
| + *p_tx0 = (OPJ_INT32)opj_uint_max(l_tx0, p_image->x0);
|
| + *p_tx1 = (OPJ_INT32)opj_uint_min(opj_uint_adds(l_tx0, p_cp->tdx), p_image->x1);
|
| + l_ty0 = p_cp->ty0 + q * p_cp->tdy; /* can't be greater than p_image->y1 so won't overflow */
|
| + *p_ty0 = (OPJ_INT32)opj_uint_max(l_ty0, p_image->y0);
|
| + *p_ty1 = (OPJ_INT32)opj_uint_min(opj_uint_adds(l_ty0, p_cp->tdy), p_image->y1);
|
|
|
| /* max precision and resolution is 0 (can only grow)*/
|
| *p_max_prec = 0;
|
|
|