| Index: core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/opj_intmath.h
|
| diff --git a/core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/opj_intmath.h b/core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/opj_intmath.h
|
| index dc89895301f8a63e585d3504fdb681c25e2b9074..4e299469dee73420b473bc56d5523c62dbe6fbf3 100644
|
| --- a/core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/opj_intmath.h
|
| +++ b/core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/opj_intmath.h
|
| @@ -82,6 +82,15 @@ static INLINE OPJ_UINT32 opj_uint_max(OPJ_UINT32 a, OPJ_UINT32 b) {
|
| }
|
|
|
| /**
|
| + Get the saturated sum of two unsigned integers
|
| + @return Returns saturated sum of a+b
|
| + */
|
| +static INLINE OPJ_UINT32 opj_uint_adds(OPJ_UINT32 a, OPJ_UINT32 b) {
|
| + OPJ_UINT64 sum = (OPJ_UINT64)a + (OPJ_UINT64)b;
|
| + return -(OPJ_UINT32)(sum >> 32) | (OPJ_UINT32)sum;
|
| +}
|
| +
|
| +/**
|
| Clamp an integer inside an interval
|
| @return
|
| <ul>
|
| @@ -108,7 +117,7 @@ Divide an integer and round upwards
|
| @return Returns a divided by b
|
| */
|
| static INLINE OPJ_INT32 opj_int_ceildiv(OPJ_INT32 a, OPJ_INT32 b) {
|
| - assert(b);
|
| + assert(b);
|
| return (a + b - 1) / b;
|
| }
|
|
|
| @@ -117,6 +126,7 @@ Divide an integer and round upwards
|
| @return Returns a divided by b
|
| */
|
| static INLINE OPJ_UINT32 opj_uint_ceildiv(OPJ_UINT32 a, OPJ_UINT32 b) {
|
| + assert(b);
|
| return (a + b - 1) / b;
|
| }
|
|
|
| @@ -165,9 +175,19 @@ Multiply two fixed-precision rational numbers.
|
| @return Returns a * b
|
| */
|
| static INLINE OPJ_INT32 opj_int_fix_mul(OPJ_INT32 a, OPJ_INT32 b) {
|
| - OPJ_INT64 temp = (OPJ_INT64) a * (OPJ_INT64) b ;
|
| - temp += temp & 4096;
|
| - return (OPJ_INT32) (temp >> 13) ;
|
| + OPJ_INT64 temp = (OPJ_INT64) a * (OPJ_INT64) b ;
|
| + temp += 4096;
|
| + assert((temp >> 13) <= (OPJ_INT64)0x7FFFFFFF);
|
| + assert((temp >> 13) >= (-(OPJ_INT64)0x7FFFFFFF - (OPJ_INT64)1));
|
| + return (OPJ_INT32) (temp >> 13);
|
| +}
|
| +
|
| +static INLINE OPJ_INT32 opj_int_fix_mul_t1(OPJ_INT32 a, OPJ_INT32 b) {
|
| + OPJ_INT64 temp = (OPJ_INT64) a * (OPJ_INT64) b ;
|
| + temp += 4096;
|
| + assert((temp >> (13 + 11 - T1_NMSEDEC_FRACBITS)) <= (OPJ_INT64)0x7FFFFFFF);
|
| + assert((temp >> (13 + 11 - T1_NMSEDEC_FRACBITS)) >= (-(OPJ_INT64)0x7FFFFFFF - (OPJ_INT64)1));
|
| + return (OPJ_INT32) (temp >> (13 + 11 - T1_NMSEDEC_FRACBITS)) ;
|
| }
|
|
|
| /* ----------------------------------------------------------------------- */
|
|
|