| Index: core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/t1.c
|
| diff --git a/core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/t1.c b/core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/t1.c
|
| index 11b72a33ffeb73c7e3ad55b4bb8726cb8bf5e2f9..8cb230f48edaeb9c0de3ae8c3b07c2896cc56862 100644
|
| --- a/core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/t1.c
|
| +++ b/core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/t1.c
|
| @@ -265,7 +265,8 @@ static OPJ_FLOAT64 opj_t1_getwmsedec(
|
| OPJ_UINT32 qmfbid,
|
| OPJ_FLOAT64 stepsize,
|
| OPJ_UINT32 numcomps,
|
| - const OPJ_FLOAT64 * mct_norms);
|
| + const OPJ_FLOAT64 * mct_norms,
|
| + OPJ_UINT32 mct_numcomps);
|
|
|
| static void opj_t1_encode_cblk( opj_t1_t *t1,
|
| opj_tcd_cblk_enc_t* cblk,
|
| @@ -277,7 +278,8 @@ static void opj_t1_encode_cblk( opj_t1_t *t1,
|
| OPJ_UINT32 cblksty,
|
| OPJ_UINT32 numcomps,
|
| opj_tcd_tile_t * tile,
|
| - const OPJ_FLOAT64 * mct_norms);
|
| + const OPJ_FLOAT64 * mct_norms,
|
| + OPJ_UINT32 mct_numcomps);
|
|
|
| /**
|
| Decode 1 code-block
|
| @@ -1137,12 +1139,13 @@ static OPJ_FLOAT64 opj_t1_getwmsedec(
|
| OPJ_UINT32 qmfbid,
|
| OPJ_FLOAT64 stepsize,
|
| OPJ_UINT32 numcomps,
|
| - const OPJ_FLOAT64 * mct_norms)
|
| + const OPJ_FLOAT64 * mct_norms,
|
| + OPJ_UINT32 mct_numcomps)
|
| {
|
| OPJ_FLOAT64 w1 = 1, w2, wmsedec;
|
| - OPJ_ARG_NOT_USED(numcomps);
|
| + OPJ_ARG_NOT_USED(numcomps);
|
|
|
| - if (mct_norms) {
|
| + if (mct_norms && (compno < mct_numcomps)) {
|
| w1 = mct_norms[compno];
|
| }
|
|
|
| @@ -1462,7 +1465,8 @@ OPJ_BOOL opj_t1_decode_cblk(opj_t1_t *t1,
|
| OPJ_BOOL opj_t1_encode_cblks( opj_t1_t *t1,
|
| opj_tcd_tile_t *tile,
|
| opj_tcp_t *tcp,
|
| - const OPJ_FLOAT64 * mct_norms
|
| + const OPJ_FLOAT64 * mct_norms,
|
| + OPJ_UINT32 mct_numcomps
|
| )
|
| {
|
| OPJ_UINT32 compno, resno, bandno, precno, cblkno;
|
| @@ -1530,9 +1534,9 @@ OPJ_BOOL opj_t1_encode_cblks( opj_t1_t *t1,
|
| for (i = 0; i < cblk_w; ++i) {
|
| OPJ_INT32 tmp = tiledp[tileIndex];
|
| tiledp[tileIndex] =
|
| - opj_int_fix_mul(
|
| + opj_int_fix_mul_t1(
|
| tmp,
|
| - bandconst) >> (11 - T1_NMSEDEC_FRACBITS);
|
| + bandconst);
|
| tileIndex++;
|
| }
|
| tileIndex += tileLineAdvance;
|
| @@ -1550,7 +1554,8 @@ OPJ_BOOL opj_t1_encode_cblks( opj_t1_t *t1,
|
| tccp->cblksty,
|
| tile->numcomps,
|
| tile,
|
| - mct_norms);
|
| + mct_norms,
|
| + mct_numcomps);
|
|
|
| } /* cblkno */
|
| } /* precno */
|
| @@ -1571,7 +1576,8 @@ void opj_t1_encode_cblk(opj_t1_t *t1,
|
| OPJ_UINT32 cblksty,
|
| OPJ_UINT32 numcomps,
|
| opj_tcd_tile_t * tile,
|
| - const OPJ_FLOAT64 * mct_norms)
|
| + const OPJ_FLOAT64 * mct_norms,
|
| + OPJ_UINT32 mct_numcomps)
|
| {
|
| OPJ_FLOAT64 cumwmsedec = 0.0;
|
|
|
| @@ -1626,7 +1632,7 @@ void opj_t1_encode_cblk(opj_t1_t *t1,
|
| }
|
|
|
| /* fixed_quality */
|
| - tempwmsedec = opj_t1_getwmsedec(nmsedec, compno, level, orient, bpno, qmfbid, stepsize, numcomps,mct_norms) ;
|
| + tempwmsedec = opj_t1_getwmsedec(nmsedec, compno, level, orient, bpno, qmfbid, stepsize, numcomps,mct_norms, mct_numcomps) ;
|
| cumwmsedec += tempwmsedec;
|
| tile->distotile += tempwmsedec;
|
|
|
|
|