Replace uses of size_t by OPJ_SIZE_T
This commit is contained in:
parent
c1e0fba0c4
commit
579b8937ea
|
@ -279,7 +279,7 @@ static void opj_dwt_deinterleave_v(OPJ_INT32 *a, OPJ_INT32 *b, OPJ_INT32 dn,
|
||||||
l_src += 2;
|
l_src += 2;
|
||||||
} /* b[i*x]=a[2*i+cas]; */
|
} /* b[i*x]=a[2*i+cas]; */
|
||||||
|
|
||||||
l_dest = b + (size_t)sn * (size_t)x;
|
l_dest = b + (OPJ_SIZE_T)sn * (OPJ_SIZE_T)x;
|
||||||
l_src = a + 1 - cas;
|
l_src = a + 1 - cas;
|
||||||
|
|
||||||
i = dn;
|
i = dn;
|
||||||
|
@ -325,7 +325,7 @@ static void opj_dwt_interleave_v(const opj_dwt_t* v, OPJ_INT32 *a, OPJ_INT32 x)
|
||||||
bi += 2;
|
bi += 2;
|
||||||
ai += x;
|
ai += x;
|
||||||
}
|
}
|
||||||
ai = a + (v->sn * (size_t)x);
|
ai = a + (v->sn * (OPJ_SIZE_T)x);
|
||||||
bi = v->mem + 1 - v->cas;
|
bi = v->mem + 1 - v->cas;
|
||||||
i = v->dn ;
|
i = v->dn ;
|
||||||
while (i--) {
|
while (i--) {
|
||||||
|
@ -616,7 +616,7 @@ static
|
||||||
void opj_idwt53_v_final_memcpy(OPJ_INT32* tiledp_col,
|
void opj_idwt53_v_final_memcpy(OPJ_INT32* tiledp_col,
|
||||||
const OPJ_INT32* tmp,
|
const OPJ_INT32* tmp,
|
||||||
OPJ_INT32 len,
|
OPJ_INT32 len,
|
||||||
size_t stride)
|
OPJ_SIZE_T stride)
|
||||||
{
|
{
|
||||||
OPJ_INT32 i;
|
OPJ_INT32 i;
|
||||||
for (i = 0; i < len; ++i) {
|
for (i = 0; i < len; ++i) {
|
||||||
|
@ -625,9 +625,9 @@ void opj_idwt53_v_final_memcpy(OPJ_INT32* tiledp_col,
|
||||||
PARALLEL_COLS_53 * sizeof(OPJ_INT32))
|
PARALLEL_COLS_53 * sizeof(OPJ_INT32))
|
||||||
would do but would be a tiny bit slower.
|
would do but would be a tiny bit slower.
|
||||||
We can take here advantage of our knowledge of alignment */
|
We can take here advantage of our knowledge of alignment */
|
||||||
STOREU(&tiledp_col[(size_t)i * stride + 0],
|
STOREU(&tiledp_col[(OPJ_SIZE_T)i * stride + 0],
|
||||||
LOAD(&tmp[PARALLEL_COLS_53 * i + 0]));
|
LOAD(&tmp[PARALLEL_COLS_53 * i + 0]));
|
||||||
STOREU(&tiledp_col[(size_t)i * stride + VREG_INT_COUNT],
|
STOREU(&tiledp_col[(OPJ_SIZE_T)i * stride + VREG_INT_COUNT],
|
||||||
LOAD(&tmp[PARALLEL_COLS_53 * i + VREG_INT_COUNT]));
|
LOAD(&tmp[PARALLEL_COLS_53 * i + VREG_INT_COUNT]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -639,13 +639,13 @@ static void opj_idwt53_v_cas0_mcols_SSE2_OR_AVX2(
|
||||||
const OPJ_INT32 sn,
|
const OPJ_INT32 sn,
|
||||||
const OPJ_INT32 len,
|
const OPJ_INT32 len,
|
||||||
OPJ_INT32* tiledp_col,
|
OPJ_INT32* tiledp_col,
|
||||||
const size_t stride)
|
const OPJ_SIZE_T stride)
|
||||||
{
|
{
|
||||||
const OPJ_INT32* in_even = &tiledp_col[0];
|
const OPJ_INT32* in_even = &tiledp_col[0];
|
||||||
const OPJ_INT32* in_odd = &tiledp_col[(size_t)sn * stride];
|
const OPJ_INT32* in_odd = &tiledp_col[(OPJ_SIZE_T)sn * stride];
|
||||||
|
|
||||||
OPJ_INT32 i;
|
OPJ_INT32 i;
|
||||||
size_t j;
|
OPJ_SIZE_T j;
|
||||||
VREG d1c_0, d1n_0, s1n_0, s0c_0, s0n_0;
|
VREG d1c_0, d1n_0, s1n_0, s0c_0, s0n_0;
|
||||||
VREG d1c_1, d1n_1, s1n_1, s0c_1, s0n_1;
|
VREG d1c_1, d1n_1, s1n_1, s0c_1, s0n_1;
|
||||||
const VREG two = LOAD_CST(2);
|
const VREG two = LOAD_CST(2);
|
||||||
|
@ -662,7 +662,7 @@ static void opj_idwt53_v_cas0_mcols_SSE2_OR_AVX2(
|
||||||
/* Note: loads of input even/odd values must be done in a unaligned */
|
/* Note: loads of input even/odd values must be done in a unaligned */
|
||||||
/* fashion. But stores in tmp can be done with aligned store, since */
|
/* fashion. But stores in tmp can be done with aligned store, since */
|
||||||
/* the temporary buffer is properly aligned */
|
/* the temporary buffer is properly aligned */
|
||||||
assert((size_t)tmp % (sizeof(OPJ_INT32) * VREG_INT_COUNT) == 0);
|
assert((OPJ_SIZE_T)tmp % (sizeof(OPJ_INT32) * VREG_INT_COUNT) == 0);
|
||||||
|
|
||||||
s1n_0 = LOADU(in_even + 0);
|
s1n_0 = LOADU(in_even + 0);
|
||||||
s1n_1 = LOADU(in_even + VREG_INT_COUNT);
|
s1n_1 = LOADU(in_even + VREG_INT_COUNT);
|
||||||
|
@ -704,7 +704,7 @@ static void opj_idwt53_v_cas0_mcols_SSE2_OR_AVX2(
|
||||||
|
|
||||||
if (len & 1) {
|
if (len & 1) {
|
||||||
VREG tmp_len_minus_1;
|
VREG tmp_len_minus_1;
|
||||||
s1n_0 = LOADU(in_even + (size_t)((len - 1) / 2) * stride);
|
s1n_0 = LOADU(in_even + (OPJ_SIZE_T)((len - 1) / 2) * stride);
|
||||||
/* tmp_len_minus_1 = s1n - ((d1n + 1) >> 1); */
|
/* tmp_len_minus_1 = s1n - ((d1n + 1) >> 1); */
|
||||||
tmp_len_minus_1 = SUB(s1n_0, SAR(ADD3(d1n_0, d1n_0, two), 2));
|
tmp_len_minus_1 = SUB(s1n_0, SAR(ADD3(d1n_0, d1n_0, two), 2));
|
||||||
STORE(tmp + PARALLEL_COLS_53 * (len - 1), tmp_len_minus_1);
|
STORE(tmp + PARALLEL_COLS_53 * (len - 1), tmp_len_minus_1);
|
||||||
|
@ -712,7 +712,7 @@ static void opj_idwt53_v_cas0_mcols_SSE2_OR_AVX2(
|
||||||
STORE(tmp + PARALLEL_COLS_53 * (len - 2),
|
STORE(tmp + PARALLEL_COLS_53 * (len - 2),
|
||||||
ADD(d1n_0, SAR(ADD(s0n_0, tmp_len_minus_1), 1)));
|
ADD(d1n_0, SAR(ADD(s0n_0, tmp_len_minus_1), 1)));
|
||||||
|
|
||||||
s1n_1 = LOADU(in_even + (size_t)((len - 1) / 2) * stride + VREG_INT_COUNT);
|
s1n_1 = LOADU(in_even + (OPJ_SIZE_T)((len - 1) / 2) * stride + VREG_INT_COUNT);
|
||||||
/* tmp_len_minus_1 = s1n - ((d1n + 1) >> 1); */
|
/* tmp_len_minus_1 = s1n - ((d1n + 1) >> 1); */
|
||||||
tmp_len_minus_1 = SUB(s1n_1, SAR(ADD3(d1n_1, d1n_1, two), 2));
|
tmp_len_minus_1 = SUB(s1n_1, SAR(ADD3(d1n_1, d1n_1, two), 2));
|
||||||
STORE(tmp + PARALLEL_COLS_53 * (len - 1) + VREG_INT_COUNT,
|
STORE(tmp + PARALLEL_COLS_53 * (len - 1) + VREG_INT_COUNT,
|
||||||
|
@ -740,16 +740,16 @@ static void opj_idwt53_v_cas1_mcols_SSE2_OR_AVX2(
|
||||||
const OPJ_INT32 sn,
|
const OPJ_INT32 sn,
|
||||||
const OPJ_INT32 len,
|
const OPJ_INT32 len,
|
||||||
OPJ_INT32* tiledp_col,
|
OPJ_INT32* tiledp_col,
|
||||||
const size_t stride)
|
const OPJ_SIZE_T stride)
|
||||||
{
|
{
|
||||||
OPJ_INT32 i;
|
OPJ_INT32 i;
|
||||||
size_t j;
|
OPJ_SIZE_T j;
|
||||||
|
|
||||||
VREG s1_0, s2_0, dc_0, dn_0;
|
VREG s1_0, s2_0, dc_0, dn_0;
|
||||||
VREG s1_1, s2_1, dc_1, dn_1;
|
VREG s1_1, s2_1, dc_1, dn_1;
|
||||||
const VREG two = LOAD_CST(2);
|
const VREG two = LOAD_CST(2);
|
||||||
|
|
||||||
const OPJ_INT32* in_even = &tiledp_col[(size_t)sn * stride];
|
const OPJ_INT32* in_even = &tiledp_col[(OPJ_SIZE_T)sn * stride];
|
||||||
const OPJ_INT32* in_odd = &tiledp_col[0];
|
const OPJ_INT32* in_odd = &tiledp_col[0];
|
||||||
|
|
||||||
assert(len > 2);
|
assert(len > 2);
|
||||||
|
@ -764,7 +764,7 @@ static void opj_idwt53_v_cas1_mcols_SSE2_OR_AVX2(
|
||||||
/* Note: loads of input even/odd values must be done in a unaligned */
|
/* Note: loads of input even/odd values must be done in a unaligned */
|
||||||
/* fashion. But stores in tmp can be done with aligned store, since */
|
/* fashion. But stores in tmp can be done with aligned store, since */
|
||||||
/* the temporary buffer is properly aligned */
|
/* the temporary buffer is properly aligned */
|
||||||
assert((size_t)tmp % (sizeof(OPJ_INT32) * VREG_INT_COUNT) == 0);
|
assert((OPJ_SIZE_T)tmp % (sizeof(OPJ_INT32) * VREG_INT_COUNT) == 0);
|
||||||
|
|
||||||
s1_0 = LOADU(in_even + stride);
|
s1_0 = LOADU(in_even + stride);
|
||||||
/* in_odd[0] - ((in_even[0] + s1 + 2) >> 2); */
|
/* in_odd[0] - ((in_even[0] + s1 + 2) >> 2); */
|
||||||
|
@ -809,9 +809,9 @@ static void opj_idwt53_v_cas1_mcols_SSE2_OR_AVX2(
|
||||||
|
|
||||||
if (!(len & 1)) {
|
if (!(len & 1)) {
|
||||||
/*dn = in_odd[(len / 2 - 1) * stride] - ((s1 + 1) >> 1); */
|
/*dn = in_odd[(len / 2 - 1) * stride] - ((s1 + 1) >> 1); */
|
||||||
dn_0 = SUB(LOADU(in_odd + (size_t)(len / 2 - 1) * stride),
|
dn_0 = SUB(LOADU(in_odd + (OPJ_SIZE_T)(len / 2 - 1) * stride),
|
||||||
SAR(ADD3(s1_0, s1_0, two), 2));
|
SAR(ADD3(s1_0, s1_0, two), 2));
|
||||||
dn_1 = SUB(LOADU(in_odd + (size_t)(len / 2 - 1) * stride + VREG_INT_COUNT),
|
dn_1 = SUB(LOADU(in_odd + (OPJ_SIZE_T)(len / 2 - 1) * stride + VREG_INT_COUNT),
|
||||||
SAR(ADD3(s1_1, s1_1, two), 2));
|
SAR(ADD3(s1_1, s1_1, two), 2));
|
||||||
|
|
||||||
/* tmp[len - 2] = s1 + ((dn + dc) >> 1); */
|
/* tmp[len - 2] = s1 + ((dn + dc) >> 1); */
|
||||||
|
@ -851,7 +851,7 @@ static void opj_idwt3_v_cas0(OPJ_INT32* tmp,
|
||||||
const OPJ_INT32 sn,
|
const OPJ_INT32 sn,
|
||||||
const OPJ_INT32 len,
|
const OPJ_INT32 len,
|
||||||
OPJ_INT32* tiledp_col,
|
OPJ_INT32* tiledp_col,
|
||||||
const size_t stride)
|
const OPJ_SIZE_T stride)
|
||||||
{
|
{
|
||||||
OPJ_INT32 i, j;
|
OPJ_INT32 i, j;
|
||||||
OPJ_INT32 d1c, d1n, s1n, s0c, s0n;
|
OPJ_INT32 d1c, d1n, s1n, s0c, s0n;
|
||||||
|
@ -862,15 +862,15 @@ static void opj_idwt3_v_cas0(OPJ_INT32* tmp,
|
||||||
/* accesses and explicit interleaving. */
|
/* accesses and explicit interleaving. */
|
||||||
|
|
||||||
s1n = tiledp_col[0];
|
s1n = tiledp_col[0];
|
||||||
d1n = tiledp_col[(size_t)sn * stride];
|
d1n = tiledp_col[(OPJ_SIZE_T)sn * stride];
|
||||||
s0n = s1n - ((d1n + 1) >> 1);
|
s0n = s1n - ((d1n + 1) >> 1);
|
||||||
|
|
||||||
for (i = 0, j = 0; i < (len - 3); i += 2, j++) {
|
for (i = 0, j = 0; i < (len - 3); i += 2, j++) {
|
||||||
d1c = d1n;
|
d1c = d1n;
|
||||||
s0c = s0n;
|
s0c = s0n;
|
||||||
|
|
||||||
s1n = tiledp_col[(size_t)(j + 1) * stride];
|
s1n = tiledp_col[(OPJ_SIZE_T)(j + 1) * stride];
|
||||||
d1n = tiledp_col[(size_t)(sn + j + 1) * stride];
|
d1n = tiledp_col[(OPJ_SIZE_T)(sn + j + 1) * stride];
|
||||||
|
|
||||||
s0n = s1n - ((d1c + d1n + 2) >> 2);
|
s0n = s1n - ((d1c + d1n + 2) >> 2);
|
||||||
|
|
||||||
|
@ -882,7 +882,7 @@ static void opj_idwt3_v_cas0(OPJ_INT32* tmp,
|
||||||
|
|
||||||
if (len & 1) {
|
if (len & 1) {
|
||||||
tmp[len - 1] =
|
tmp[len - 1] =
|
||||||
tiledp_col[(size_t)((len - 1) / 2) * stride] -
|
tiledp_col[(OPJ_SIZE_T)((len - 1) / 2) * stride] -
|
||||||
((d1n + 1) >> 1);
|
((d1n + 1) >> 1);
|
||||||
tmp[len - 2] = d1n + ((s0n + tmp[len - 1]) >> 1);
|
tmp[len - 2] = d1n + ((s0n + tmp[len - 1]) >> 1);
|
||||||
} else {
|
} else {
|
||||||
|
@ -890,7 +890,7 @@ static void opj_idwt3_v_cas0(OPJ_INT32* tmp,
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < len; ++i) {
|
for (i = 0; i < len; ++i) {
|
||||||
tiledp_col[(size_t)i * stride] = tmp[i];
|
tiledp_col[(OPJ_SIZE_T)i * stride] = tmp[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -901,11 +901,11 @@ static void opj_idwt3_v_cas1(OPJ_INT32* tmp,
|
||||||
const OPJ_INT32 sn,
|
const OPJ_INT32 sn,
|
||||||
const OPJ_INT32 len,
|
const OPJ_INT32 len,
|
||||||
OPJ_INT32* tiledp_col,
|
OPJ_INT32* tiledp_col,
|
||||||
const size_t stride)
|
const OPJ_SIZE_T stride)
|
||||||
{
|
{
|
||||||
OPJ_INT32 i, j;
|
OPJ_INT32 i, j;
|
||||||
OPJ_INT32 s1, s2, dc, dn;
|
OPJ_INT32 s1, s2, dc, dn;
|
||||||
const OPJ_INT32* in_even = &tiledp_col[(size_t)sn * stride];
|
const OPJ_INT32* in_even = &tiledp_col[(OPJ_SIZE_T)sn * stride];
|
||||||
const OPJ_INT32* in_odd = &tiledp_col[0];
|
const OPJ_INT32* in_odd = &tiledp_col[0];
|
||||||
|
|
||||||
assert(len > 2);
|
assert(len > 2);
|
||||||
|
@ -918,9 +918,9 @@ static void opj_idwt3_v_cas1(OPJ_INT32* tmp,
|
||||||
tmp[0] = in_even[0] + dc;
|
tmp[0] = in_even[0] + dc;
|
||||||
for (i = 1, j = 1; i < (len - 2 - !(len & 1)); i += 2, j++) {
|
for (i = 1, j = 1; i < (len - 2 - !(len & 1)); i += 2, j++) {
|
||||||
|
|
||||||
s2 = in_even[(size_t)(j + 1) * stride];
|
s2 = in_even[(OPJ_SIZE_T)(j + 1) * stride];
|
||||||
|
|
||||||
dn = in_odd[(size_t)j * stride] - ((s1 + s2 + 2) >> 2);
|
dn = in_odd[(OPJ_SIZE_T)j * stride] - ((s1 + s2 + 2) >> 2);
|
||||||
tmp[i ] = dc;
|
tmp[i ] = dc;
|
||||||
tmp[i + 1] = s1 + ((dn + dc) >> 1);
|
tmp[i + 1] = s1 + ((dn + dc) >> 1);
|
||||||
|
|
||||||
|
@ -929,7 +929,7 @@ static void opj_idwt3_v_cas1(OPJ_INT32* tmp,
|
||||||
}
|
}
|
||||||
tmp[i] = dc;
|
tmp[i] = dc;
|
||||||
if (!(len & 1)) {
|
if (!(len & 1)) {
|
||||||
dn = in_odd[(size_t)(len / 2 - 1) * stride] - ((s1 + 1) >> 1);
|
dn = in_odd[(OPJ_SIZE_T)(len / 2 - 1) * stride] - ((s1 + 1) >> 1);
|
||||||
tmp[len - 2] = s1 + ((dn + dc) >> 1);
|
tmp[len - 2] = s1 + ((dn + dc) >> 1);
|
||||||
tmp[len - 1] = dn;
|
tmp[len - 1] = dn;
|
||||||
} else {
|
} else {
|
||||||
|
@ -937,7 +937,7 @@ static void opj_idwt3_v_cas1(OPJ_INT32* tmp,
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < len; ++i) {
|
for (i = 0; i < len; ++i) {
|
||||||
tiledp_col[(size_t)i * stride] = tmp[i];
|
tiledp_col[(OPJ_SIZE_T)i * stride] = tmp[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* !defined(STANDARD_SLOW_VERSION) */
|
#endif /* !defined(STANDARD_SLOW_VERSION) */
|
||||||
|
@ -948,7 +948,7 @@ static void opj_idwt3_v_cas1(OPJ_INT32* tmp,
|
||||||
/* Performs interleave, inverse wavelet transform and copy back to buffer */
|
/* Performs interleave, inverse wavelet transform and copy back to buffer */
|
||||||
static void opj_idwt53_v(const opj_dwt_t *dwt,
|
static void opj_idwt53_v(const opj_dwt_t *dwt,
|
||||||
OPJ_INT32* tiledp_col,
|
OPJ_INT32* tiledp_col,
|
||||||
size_t stride,
|
OPJ_SIZE_T stride,
|
||||||
OPJ_INT32 nb_cols)
|
OPJ_INT32 nb_cols)
|
||||||
{
|
{
|
||||||
#ifdef STANDARD_SLOW_VERSION
|
#ifdef STANDARD_SLOW_VERSION
|
||||||
|
@ -996,14 +996,14 @@ static void opj_idwt53_v(const opj_dwt_t *dwt,
|
||||||
OPJ_INT32* out = dwt->mem;
|
OPJ_INT32* out = dwt->mem;
|
||||||
for (c = 0; c < nb_cols; c++, tiledp_col++) {
|
for (c = 0; c < nb_cols; c++, tiledp_col++) {
|
||||||
OPJ_INT32 i;
|
OPJ_INT32 i;
|
||||||
const OPJ_INT32* in_even = &tiledp_col[(size_t)sn * stride];
|
const OPJ_INT32* in_even = &tiledp_col[(OPJ_SIZE_T)sn * stride];
|
||||||
const OPJ_INT32* in_odd = &tiledp_col[0];
|
const OPJ_INT32* in_odd = &tiledp_col[0];
|
||||||
|
|
||||||
out[1] = in_odd[0] - ((in_even[0] + 1) >> 1);
|
out[1] = in_odd[0] - ((in_even[0] + 1) >> 1);
|
||||||
out[0] = in_even[0] + out[1];
|
out[0] = in_even[0] + out[1];
|
||||||
|
|
||||||
for (i = 0; i < len; ++i) {
|
for (i = 0; i < len; ++i) {
|
||||||
tiledp_col[(size_t)i * stride] = out[i];
|
tiledp_col[(OPJ_SIZE_T)i * stride] = out[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1113,7 +1113,7 @@ static INLINE OPJ_BOOL opj_dwt_encode_procedure(opj_tcd_tilecomp_t * tilec,
|
||||||
|
|
||||||
OPJ_INT32 rw; /* width of the resolution level computed */
|
OPJ_INT32 rw; /* width of the resolution level computed */
|
||||||
OPJ_INT32 rh; /* height of the resolution level computed */
|
OPJ_INT32 rh; /* height of the resolution level computed */
|
||||||
size_t l_data_size;
|
OPJ_SIZE_T l_data_size;
|
||||||
|
|
||||||
opj_tcd_resolution_t * l_cur_res = 0;
|
opj_tcd_resolution_t * l_cur_res = 0;
|
||||||
opj_tcd_resolution_t * l_last_res = 0;
|
opj_tcd_resolution_t * l_last_res = 0;
|
||||||
|
@ -1343,11 +1343,11 @@ static void opj_dwt_decode_v_func(void* user_data, opj_tls_t* tls)
|
||||||
job = (opj_dwd_decode_v_job_t*)user_data;
|
job = (opj_dwd_decode_v_job_t*)user_data;
|
||||||
for (j = job->min_j; j + PARALLEL_COLS_53 <= job->max_j;
|
for (j = job->min_j; j + PARALLEL_COLS_53 <= job->max_j;
|
||||||
j += PARALLEL_COLS_53) {
|
j += PARALLEL_COLS_53) {
|
||||||
opj_idwt53_v(&job->v, &job->tiledp[j], (size_t)job->w,
|
opj_idwt53_v(&job->v, &job->tiledp[j], (OPJ_SIZE_T)job->w,
|
||||||
PARALLEL_COLS_53);
|
PARALLEL_COLS_53);
|
||||||
}
|
}
|
||||||
if (j < job->max_j)
|
if (j < job->max_j)
|
||||||
opj_idwt53_v(&job->v, &job->tiledp[j], (size_t)job->w,
|
opj_idwt53_v(&job->v, &job->tiledp[j], (OPJ_SIZE_T)job->w,
|
||||||
(OPJ_INT32)(job->max_j - j));
|
(OPJ_INT32)(job->max_j - j));
|
||||||
|
|
||||||
opj_aligned_free(job->v.mem);
|
opj_aligned_free(job->v.mem);
|
||||||
|
@ -1374,7 +1374,7 @@ static OPJ_BOOL opj_dwt_decode_tile(opj_thread_pool_t* tp,
|
||||||
OPJ_UINT32 w = (OPJ_UINT32)(tilec->resolutions[tilec->minimum_num_resolutions -
|
OPJ_UINT32 w = (OPJ_UINT32)(tilec->resolutions[tilec->minimum_num_resolutions -
|
||||||
1].x1 -
|
1].x1 -
|
||||||
tilec->resolutions[tilec->minimum_num_resolutions - 1].x0);
|
tilec->resolutions[tilec->minimum_num_resolutions - 1].x0);
|
||||||
size_t h_mem_size;
|
OPJ_SIZE_T h_mem_size;
|
||||||
int num_threads;
|
int num_threads;
|
||||||
|
|
||||||
if (numres == 1U) {
|
if (numres == 1U) {
|
||||||
|
@ -1415,7 +1415,7 @@ static OPJ_BOOL opj_dwt_decode_tile(opj_thread_pool_t* tp,
|
||||||
|
|
||||||
if (num_threads <= 1 || rh <= 1) {
|
if (num_threads <= 1 || rh <= 1) {
|
||||||
for (j = 0; j < rh; ++j) {
|
for (j = 0; j < rh; ++j) {
|
||||||
opj_idwt53_h(&h, &tiledp[(size_t)j * w]);
|
opj_idwt53_h(&h, &tiledp[(OPJ_SIZE_T)j * w]);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
OPJ_UINT32 num_jobs = (OPJ_UINT32)num_threads;
|
OPJ_UINT32 num_jobs = (OPJ_UINT32)num_threads;
|
||||||
|
@ -1467,10 +1467,10 @@ static OPJ_BOOL opj_dwt_decode_tile(opj_thread_pool_t* tp,
|
||||||
if (num_threads <= 1 || rw <= 1) {
|
if (num_threads <= 1 || rw <= 1) {
|
||||||
for (j = 0; j + PARALLEL_COLS_53 <= rw;
|
for (j = 0; j + PARALLEL_COLS_53 <= rw;
|
||||||
j += PARALLEL_COLS_53) {
|
j += PARALLEL_COLS_53) {
|
||||||
opj_idwt53_v(&v, &tiledp[j], (size_t)w, PARALLEL_COLS_53);
|
opj_idwt53_v(&v, &tiledp[j], (OPJ_SIZE_T)w, PARALLEL_COLS_53);
|
||||||
}
|
}
|
||||||
if (j < rw) {
|
if (j < rw) {
|
||||||
opj_idwt53_v(&v, &tiledp[j], (size_t)w, (OPJ_INT32)(rw - j));
|
opj_idwt53_v(&v, &tiledp[j], (OPJ_SIZE_T)w, (OPJ_INT32)(rw - j));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
OPJ_UINT32 num_jobs = (OPJ_UINT32)num_threads;
|
OPJ_UINT32 num_jobs = (OPJ_UINT32)num_threads;
|
||||||
|
@ -1922,7 +1922,7 @@ static OPJ_BOOL opj_dwt_decode_partial_tile(
|
||||||
OPJ_UINT32 rh = (OPJ_UINT32)(tr->y1 -
|
OPJ_UINT32 rh = (OPJ_UINT32)(tr->y1 -
|
||||||
tr->y0); /* height of the resolution level computed */
|
tr->y0); /* height of the resolution level computed */
|
||||||
|
|
||||||
size_t h_mem_size;
|
OPJ_SIZE_T h_mem_size;
|
||||||
|
|
||||||
/* Compute the intersection of the area of interest, expressed in tile coordinates */
|
/* Compute the intersection of the area of interest, expressed in tile coordinates */
|
||||||
/* with the tile coordinates */
|
/* with the tile coordinates */
|
||||||
|
@ -2152,8 +2152,8 @@ static void opj_v4dwt_interleave_h(opj_v4dwt_t* OPJ_RESTRICT dwt,
|
||||||
OPJ_UINT32 x1 = dwt->win_l_x1;
|
OPJ_UINT32 x1 = dwt->win_l_x1;
|
||||||
|
|
||||||
for (k = 0; k < 2; ++k) {
|
for (k = 0; k < 2; ++k) {
|
||||||
if (remaining_height >= 4 && ((size_t) a & 0x0f) == 0 &&
|
if (remaining_height >= 4 && ((OPJ_SIZE_T) a & 0x0f) == 0 &&
|
||||||
((size_t) bi & 0x0f) == 0 && (width & 0x0f) == 0) {
|
((OPJ_SIZE_T) bi & 0x0f) == 0 && (width & 0x0f) == 0) {
|
||||||
/* Fast code path */
|
/* Fast code path */
|
||||||
for (i = x0; i < x1; ++i) {
|
for (i = x0; i < x1; ++i) {
|
||||||
OPJ_UINT32 j = i;
|
OPJ_UINT32 j = i;
|
||||||
|
@ -2230,16 +2230,16 @@ static void opj_v4dwt_interleave_v(opj_v4dwt_t* OPJ_RESTRICT dwt,
|
||||||
OPJ_UINT32 i;
|
OPJ_UINT32 i;
|
||||||
|
|
||||||
for (i = dwt->win_l_x0; i < dwt->win_l_x1; ++i) {
|
for (i = dwt->win_l_x0; i < dwt->win_l_x1; ++i) {
|
||||||
memcpy(&bi[i * 2], &a[i * (size_t)width],
|
memcpy(&bi[i * 2], &a[i * (OPJ_SIZE_T)width],
|
||||||
(size_t)nb_elts_read * sizeof(OPJ_FLOAT32));
|
(OPJ_SIZE_T)nb_elts_read * sizeof(OPJ_FLOAT32));
|
||||||
}
|
}
|
||||||
|
|
||||||
a += (OPJ_UINT32)dwt->sn * (size_t)width;
|
a += (OPJ_UINT32)dwt->sn * (OPJ_SIZE_T)width;
|
||||||
bi = dwt->wavelet + 1 - dwt->cas;
|
bi = dwt->wavelet + 1 - dwt->cas;
|
||||||
|
|
||||||
for (i = dwt->win_h_x0; i < dwt->win_h_x1; ++i) {
|
for (i = dwt->win_h_x0; i < dwt->win_h_x1; ++i) {
|
||||||
memcpy(&bi[i * 2], &a[i * (size_t)width],
|
memcpy(&bi[i * 2], &a[i * (OPJ_SIZE_T)width],
|
||||||
(size_t)nb_elts_read * sizeof(OPJ_FLOAT32));
|
(OPJ_SIZE_T)nb_elts_read * sizeof(OPJ_FLOAT32));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2497,7 +2497,7 @@ OPJ_BOOL opj_dwt_decode_tile_97(opj_tcd_tilecomp_t* OPJ_RESTRICT tilec,
|
||||||
1].x1 -
|
1].x1 -
|
||||||
tilec->resolutions[tilec->minimum_num_resolutions - 1].x0);
|
tilec->resolutions[tilec->minimum_num_resolutions - 1].x0);
|
||||||
|
|
||||||
size_t l_data_size;
|
OPJ_SIZE_T l_data_size;
|
||||||
|
|
||||||
l_data_size = opj_dwt_max_resolution(res, numres);
|
l_data_size = opj_dwt_max_resolution(res, numres);
|
||||||
/* overflow check */
|
/* overflow check */
|
||||||
|
@ -2546,9 +2546,9 @@ OPJ_BOOL opj_dwt_decode_tile_97(opj_tcd_tilecomp_t* OPJ_RESTRICT tilec,
|
||||||
|
|
||||||
for (k = 0; k < rw; k++) {
|
for (k = 0; k < rw; k++) {
|
||||||
aj[k ] = h.wavelet[k].f[0];
|
aj[k ] = h.wavelet[k].f[0];
|
||||||
aj[k + (size_t)w ] = h.wavelet[k].f[1];
|
aj[k + (OPJ_SIZE_T)w ] = h.wavelet[k].f[1];
|
||||||
aj[k + (size_t)w * 2] = h.wavelet[k].f[2];
|
aj[k + (OPJ_SIZE_T)w * 2] = h.wavelet[k].f[2];
|
||||||
aj[k + (size_t)w * 3] = h.wavelet[k].f[3];
|
aj[k + (OPJ_SIZE_T)w * 3] = h.wavelet[k].f[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
aj += w * 4;
|
aj += w * 4;
|
||||||
|
@ -2561,10 +2561,10 @@ OPJ_BOOL opj_dwt_decode_tile_97(opj_tcd_tilecomp_t* OPJ_RESTRICT tilec,
|
||||||
for (k = 0; k < rw; k++) {
|
for (k = 0; k < rw; k++) {
|
||||||
switch (rh - j) {
|
switch (rh - j) {
|
||||||
case 3:
|
case 3:
|
||||||
aj[k + (size_t)w * 2] = h.wavelet[k].f[2];
|
aj[k + (OPJ_SIZE_T)w * 2] = h.wavelet[k].f[2];
|
||||||
/* FALLTHRU */
|
/* FALLTHRU */
|
||||||
case 2:
|
case 2:
|
||||||
aj[k + (size_t)w ] = h.wavelet[k].f[1];
|
aj[k + (OPJ_SIZE_T)w ] = h.wavelet[k].f[1];
|
||||||
/* FALLTHRU */
|
/* FALLTHRU */
|
||||||
case 1:
|
case 1:
|
||||||
aj[k] = h.wavelet[k].f[0];
|
aj[k] = h.wavelet[k].f[0];
|
||||||
|
@ -2587,7 +2587,7 @@ OPJ_BOOL opj_dwt_decode_tile_97(opj_tcd_tilecomp_t* OPJ_RESTRICT tilec,
|
||||||
opj_v4dwt_decode(&v);
|
opj_v4dwt_decode(&v);
|
||||||
|
|
||||||
for (k = 0; k < rh; ++k) {
|
for (k = 0; k < rh; ++k) {
|
||||||
memcpy(&aj[k * (size_t)w], &v.wavelet[k], 4 * sizeof(OPJ_FLOAT32));
|
memcpy(&aj[k * (OPJ_SIZE_T)w], &v.wavelet[k], 4 * sizeof(OPJ_FLOAT32));
|
||||||
}
|
}
|
||||||
aj += 4;
|
aj += 4;
|
||||||
}
|
}
|
||||||
|
@ -2601,7 +2601,8 @@ OPJ_BOOL opj_dwt_decode_tile_97(opj_tcd_tilecomp_t* OPJ_RESTRICT tilec,
|
||||||
opj_v4dwt_decode(&v);
|
opj_v4dwt_decode(&v);
|
||||||
|
|
||||||
for (k = 0; k < rh; ++k) {
|
for (k = 0; k < rh; ++k) {
|
||||||
memcpy(&aj[k * (size_t)w], &v.wavelet[k], (size_t)j * sizeof(OPJ_FLOAT32));
|
memcpy(&aj[k * (OPJ_SIZE_T)w], &v.wavelet[k],
|
||||||
|
(OPJ_SIZE_T)j * sizeof(OPJ_FLOAT32));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2631,7 +2632,7 @@ OPJ_BOOL opj_dwt_decode_partial_97(opj_tcd_tilecomp_t* OPJ_RESTRICT tilec,
|
||||||
OPJ_UINT32 rh = (OPJ_UINT32)(tr->y1 -
|
OPJ_UINT32 rh = (OPJ_UINT32)(tr->y1 -
|
||||||
tr->y0); /* height of the resolution level computed */
|
tr->y0); /* height of the resolution level computed */
|
||||||
|
|
||||||
size_t l_data_size;
|
OPJ_SIZE_T l_data_size;
|
||||||
|
|
||||||
/* Compute the intersection of the area of interest, expressed in tile coordinates */
|
/* Compute the intersection of the area of interest, expressed in tile coordinates */
|
||||||
/* with the tile coordinates */
|
/* with the tile coordinates */
|
||||||
|
|
|
@ -142,14 +142,14 @@ static OPJ_BOOL opj_sparse_array_int32_read_or_write(
|
||||||
if (is_read_op) {
|
if (is_read_op) {
|
||||||
if (src_block == NULL) {
|
if (src_block == NULL) {
|
||||||
if (buf_col_stride == 1) {
|
if (buf_col_stride == 1) {
|
||||||
OPJ_INT32* dest_ptr = buf + (y - y0) * (size_t)buf_line_stride +
|
OPJ_INT32* dest_ptr = buf + (y - y0) * (OPJ_SIZE_T)buf_line_stride +
|
||||||
(x - x0) * buf_col_stride;
|
(x - x0) * buf_col_stride;
|
||||||
for (j = 0; j < y_incr; j++) {
|
for (j = 0; j < y_incr; j++) {
|
||||||
memset(dest_ptr, 0, sizeof(OPJ_INT32) * x_incr);
|
memset(dest_ptr, 0, sizeof(OPJ_INT32) * x_incr);
|
||||||
dest_ptr += buf_line_stride;
|
dest_ptr += buf_line_stride;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
OPJ_INT32* dest_ptr = buf + (y - y0) * (size_t)buf_line_stride +
|
OPJ_INT32* dest_ptr = buf + (y - y0) * (OPJ_SIZE_T)buf_line_stride +
|
||||||
(x - x0) * buf_col_stride;
|
(x - x0) * buf_col_stride;
|
||||||
for (j = 0; j < y_incr; j++) {
|
for (j = 0; j < y_incr; j++) {
|
||||||
OPJ_UINT32 k;
|
OPJ_UINT32 k;
|
||||||
|
@ -161,9 +161,10 @@ static OPJ_BOOL opj_sparse_array_int32_read_or_write(
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const OPJ_INT32* OPJ_RESTRICT src_ptr = src_block + block_y_offset *
|
const OPJ_INT32* OPJ_RESTRICT src_ptr = src_block + block_y_offset *
|
||||||
(size_t)block_width + block_x_offset;
|
(OPJ_SIZE_T)block_width + block_x_offset;
|
||||||
if (buf_col_stride == 1) {
|
if (buf_col_stride == 1) {
|
||||||
OPJ_INT32* OPJ_RESTRICT dest_ptr = buf + (y - y0) * (size_t)buf_line_stride +
|
OPJ_INT32* OPJ_RESTRICT dest_ptr = buf + (y - y0) * (OPJ_SIZE_T)buf_line_stride
|
||||||
|
+
|
||||||
(x - x0) * buf_col_stride;
|
(x - x0) * buf_col_stride;
|
||||||
if (x_incr == 4) {
|
if (x_incr == 4) {
|
||||||
// Same code as general branch, but the compiler
|
// Same code as general branch, but the compiler
|
||||||
|
@ -181,7 +182,8 @@ static OPJ_BOOL opj_sparse_array_int32_read_or_write(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
OPJ_INT32* OPJ_RESTRICT dest_ptr = buf + (y - y0) * (size_t)buf_line_stride +
|
OPJ_INT32* OPJ_RESTRICT dest_ptr = buf + (y - y0) * (OPJ_SIZE_T)buf_line_stride
|
||||||
|
+
|
||||||
(x - x0) * buf_col_stride;
|
(x - x0) * buf_col_stride;
|
||||||
if (x_incr == 1) {
|
if (x_incr == 1) {
|
||||||
for (j = 0; j < y_incr; j++) {
|
for (j = 0; j < y_incr; j++) {
|
||||||
|
@ -240,9 +242,9 @@ static OPJ_BOOL opj_sparse_array_int32_read_or_write(
|
||||||
|
|
||||||
if (buf_col_stride == 1) {
|
if (buf_col_stride == 1) {
|
||||||
OPJ_INT32* OPJ_RESTRICT dest_ptr = src_block + block_y_offset *
|
OPJ_INT32* OPJ_RESTRICT dest_ptr = src_block + block_y_offset *
|
||||||
(size_t)block_width + block_x_offset;
|
(OPJ_SIZE_T)block_width + block_x_offset;
|
||||||
const OPJ_INT32* OPJ_RESTRICT src_ptr = buf + (y - y0) *
|
const OPJ_INT32* OPJ_RESTRICT src_ptr = buf + (y - y0) *
|
||||||
(size_t)buf_line_stride + (x - x0) * buf_col_stride;
|
(OPJ_SIZE_T)buf_line_stride + (x - x0) * buf_col_stride;
|
||||||
if (x_incr == 4) {
|
if (x_incr == 4) {
|
||||||
// Same code as general branch, but the compiler
|
// Same code as general branch, but the compiler
|
||||||
// can have an efficient memcpy()
|
// can have an efficient memcpy()
|
||||||
|
@ -260,9 +262,9 @@ static OPJ_BOOL opj_sparse_array_int32_read_or_write(
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
OPJ_INT32* OPJ_RESTRICT dest_ptr = src_block + block_y_offset *
|
OPJ_INT32* OPJ_RESTRICT dest_ptr = src_block + block_y_offset *
|
||||||
(size_t)block_width + block_x_offset;
|
(OPJ_SIZE_T)block_width + block_x_offset;
|
||||||
const OPJ_INT32* OPJ_RESTRICT src_ptr = buf + (y - y0) *
|
const OPJ_INT32* OPJ_RESTRICT src_ptr = buf + (y - y0) *
|
||||||
(size_t)buf_line_stride + (x - x0) * buf_col_stride;
|
(OPJ_SIZE_T)buf_line_stride + (x - x0) * buf_col_stride;
|
||||||
if (x_incr == 1) {
|
if (x_incr == 1) {
|
||||||
for (j = 0; j < y_incr; j++) {
|
for (j = 0; j < y_incr; j++) {
|
||||||
*dest_ptr = *src_ptr;
|
*dest_ptr = *src_ptr;
|
||||||
|
|
|
@ -1452,7 +1452,7 @@ static OPJ_BOOL opj_t1_allocate_buffers(
|
||||||
if (!t1->encoder) {
|
if (!t1->encoder) {
|
||||||
OPJ_UINT32 datasize = w * h;
|
OPJ_UINT32 datasize = w * h;
|
||||||
|
|
||||||
if (datasize > (size_t)t1->datasize) {
|
if (datasize > t1->datasize) {
|
||||||
opj_aligned_free(t1->data);
|
opj_aligned_free(t1->data);
|
||||||
t1->data = (OPJ_INT32*) opj_aligned_malloc(datasize * sizeof(OPJ_INT32));
|
t1->data = (OPJ_INT32*) opj_aligned_malloc(datasize * sizeof(OPJ_INT32));
|
||||||
if (!t1->data) {
|
if (!t1->data) {
|
||||||
|
@ -1751,8 +1751,8 @@ static void opj_t1_clbl_decode_processor(void* user_data, opj_tls_t* tls)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (tccp->qmfbid == 1) {
|
} else if (tccp->qmfbid == 1) {
|
||||||
OPJ_INT32* OPJ_RESTRICT tiledp = &tilec->data[(size_t)y * tile_w +
|
OPJ_INT32* OPJ_RESTRICT tiledp = &tilec->data[(OPJ_SIZE_T)y * tile_w +
|
||||||
(size_t)x];
|
(OPJ_SIZE_T)x];
|
||||||
for (j = 0; j < cblk_h; ++j) {
|
for (j = 0; j < cblk_h; ++j) {
|
||||||
i = 0;
|
i = 0;
|
||||||
for (; i < (cblk_w & ~(OPJ_UINT32)3U); i += 4U) {
|
for (; i < (cblk_w & ~(OPJ_UINT32)3U); i += 4U) {
|
||||||
|
@ -1760,19 +1760,19 @@ static void opj_t1_clbl_decode_processor(void* user_data, opj_tls_t* tls)
|
||||||
OPJ_INT32 tmp1 = datap[(j * cblk_w) + i + 1U];
|
OPJ_INT32 tmp1 = datap[(j * cblk_w) + i + 1U];
|
||||||
OPJ_INT32 tmp2 = datap[(j * cblk_w) + i + 2U];
|
OPJ_INT32 tmp2 = datap[(j * cblk_w) + i + 2U];
|
||||||
OPJ_INT32 tmp3 = datap[(j * cblk_w) + i + 3U];
|
OPJ_INT32 tmp3 = datap[(j * cblk_w) + i + 3U];
|
||||||
((OPJ_INT32*)tiledp)[(j * (size_t)tile_w) + i + 0U] = tmp0 / 2;
|
((OPJ_INT32*)tiledp)[(j * (OPJ_SIZE_T)tile_w) + i + 0U] = tmp0 / 2;
|
||||||
((OPJ_INT32*)tiledp)[(j * (size_t)tile_w) + i + 1U] = tmp1 / 2;
|
((OPJ_INT32*)tiledp)[(j * (OPJ_SIZE_T)tile_w) + i + 1U] = tmp1 / 2;
|
||||||
((OPJ_INT32*)tiledp)[(j * (size_t)tile_w) + i + 2U] = tmp2 / 2;
|
((OPJ_INT32*)tiledp)[(j * (OPJ_SIZE_T)tile_w) + i + 2U] = tmp2 / 2;
|
||||||
((OPJ_INT32*)tiledp)[(j * (size_t)tile_w) + i + 3U] = tmp3 / 2;
|
((OPJ_INT32*)tiledp)[(j * (OPJ_SIZE_T)tile_w) + i + 3U] = tmp3 / 2;
|
||||||
}
|
}
|
||||||
for (; i < cblk_w; ++i) {
|
for (; i < cblk_w; ++i) {
|
||||||
OPJ_INT32 tmp = datap[(j * cblk_w) + i];
|
OPJ_INT32 tmp = datap[(j * cblk_w) + i];
|
||||||
((OPJ_INT32*)tiledp)[(j * (size_t)tile_w) + i] = tmp / 2;
|
((OPJ_INT32*)tiledp)[(j * (OPJ_SIZE_T)tile_w) + i] = tmp / 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else { /* if (tccp->qmfbid == 0) */
|
} else { /* if (tccp->qmfbid == 0) */
|
||||||
OPJ_FLOAT32* OPJ_RESTRICT tiledp = (OPJ_FLOAT32*) &tilec->data[(size_t)y *
|
OPJ_FLOAT32* OPJ_RESTRICT tiledp = (OPJ_FLOAT32*) &tilec->data[(OPJ_SIZE_T)y *
|
||||||
tile_w + (size_t)x];
|
tile_w + (OPJ_SIZE_T)x];
|
||||||
for (j = 0; j < cblk_h; ++j) {
|
for (j = 0; j < cblk_h; ++j) {
|
||||||
OPJ_FLOAT32* OPJ_RESTRICT tiledp2 = tiledp;
|
OPJ_FLOAT32* OPJ_RESTRICT tiledp2 = tiledp;
|
||||||
for (i = 0; i < cblk_w; ++i) {
|
for (i = 0; i < cblk_w; ++i) {
|
||||||
|
@ -2134,7 +2134,7 @@ OPJ_BOOL opj_t1_encode_cblks(opj_t1_t *t1,
|
||||||
OPJ_UINT32 cblk_w;
|
OPJ_UINT32 cblk_w;
|
||||||
OPJ_UINT32 cblk_h;
|
OPJ_UINT32 cblk_h;
|
||||||
OPJ_UINT32 i, j, tileLineAdvance;
|
OPJ_UINT32 i, j, tileLineAdvance;
|
||||||
size_t tileIndex = 0;
|
OPJ_SIZE_T tileIndex = 0;
|
||||||
|
|
||||||
OPJ_INT32 x = cblk->x0 - band->x0;
|
OPJ_INT32 x = cblk->x0 - band->x0;
|
||||||
OPJ_INT32 y = cblk->y0 - band->y0;
|
OPJ_INT32 y = cblk->y0 - band->y0;
|
||||||
|
@ -2158,7 +2158,7 @@ OPJ_BOOL opj_t1_encode_cblks(opj_t1_t *t1,
|
||||||
cblk_h = t1->h;
|
cblk_h = t1->h;
|
||||||
tileLineAdvance = tile_w - cblk_w;
|
tileLineAdvance = tile_w - cblk_w;
|
||||||
|
|
||||||
tiledp = &tilec->data[(size_t)y * tile_w + (size_t)x];
|
tiledp = &tilec->data[(OPJ_SIZE_T)y * tile_w + (OPJ_SIZE_T)x];
|
||||||
t1->data = tiledp;
|
t1->data = tiledp;
|
||||||
t1->data_stride = tile_w;
|
t1->data_stride = tile_w;
|
||||||
if (tccp->qmfbid == 1) {
|
if (tccp->qmfbid == 1) {
|
||||||
|
|
|
@ -807,11 +807,11 @@ static INLINE OPJ_BOOL opj_tcd_init_tile(opj_tcd_t *p_tcd, OPJ_UINT32 p_tile_no,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isEncoder) {
|
if (isEncoder) {
|
||||||
size_t l_tile_data_size;
|
OPJ_SIZE_T l_tile_data_size;
|
||||||
|
|
||||||
/* compute l_data_size with overflow check */
|
/* compute l_data_size with overflow check */
|
||||||
size_t w = (size_t)(l_tilec->x1 - l_tilec->x0);
|
OPJ_SIZE_T w = (OPJ_SIZE_T)(l_tilec->x1 - l_tilec->x0);
|
||||||
size_t h = (size_t)(l_tilec->y1 - l_tilec->y0);
|
OPJ_SIZE_T h = (OPJ_SIZE_T)(l_tilec->y1 - l_tilec->y0);
|
||||||
|
|
||||||
/* issue 733, l_data_size == 0U, probably something wrong should be checked before getting here */
|
/* issue 733, l_data_size == 0U, probably something wrong should be checked before getting here */
|
||||||
if (h > 0 && w > SIZE_MAX / h) {
|
if (h > 0 && w > SIZE_MAX / h) {
|
||||||
|
@ -1366,7 +1366,8 @@ OPJ_BOOL opj_tcd_encode_tile(opj_tcd_t *p_tcd,
|
||||||
p_cstr_info->tile[p_tile_no].pdy[i] = (int)l_tccp->prch[i];
|
p_cstr_info->tile[p_tile_no].pdy[i] = (int)l_tccp->prch[i];
|
||||||
}
|
}
|
||||||
p_cstr_info->tile[p_tile_no].packet = (opj_packet_info_t*) opj_calloc((
|
p_cstr_info->tile[p_tile_no].packet = (opj_packet_info_t*) opj_calloc((
|
||||||
size_t)p_cstr_info->numcomps * (size_t)p_cstr_info->numlayers * l_num_packs,
|
OPJ_SIZE_T)p_cstr_info->numcomps * (OPJ_SIZE_T)p_cstr_info->numlayers *
|
||||||
|
l_num_packs,
|
||||||
sizeof(opj_packet_info_t));
|
sizeof(opj_packet_info_t));
|
||||||
if (!p_cstr_info->tile[p_tile_no].packet) {
|
if (!p_cstr_info->tile[p_tile_no].packet) {
|
||||||
/* FIXME event manager error callback */
|
/* FIXME event manager error callback */
|
||||||
|
@ -1462,11 +1463,11 @@ OPJ_BOOL opj_tcd_decode_tile(opj_tcd_t *p_tcd,
|
||||||
opj_tcd_tilecomp_t* tilec = &(p_tcd->tcd_image->tiles->comps[compno]);
|
opj_tcd_tilecomp_t* tilec = &(p_tcd->tcd_image->tiles->comps[compno]);
|
||||||
opj_tcd_resolution_t *l_res = &
|
opj_tcd_resolution_t *l_res = &
|
||||||
(tilec->resolutions[tilec->minimum_num_resolutions - 1]);
|
(tilec->resolutions[tilec->minimum_num_resolutions - 1]);
|
||||||
size_t l_data_size;
|
OPJ_SIZE_T l_data_size;
|
||||||
|
|
||||||
/* compute l_data_size with overflow check */
|
/* compute l_data_size with overflow check */
|
||||||
size_t res_w = (size_t)(l_res->x1 - l_res->x0);
|
OPJ_SIZE_T res_w = (OPJ_SIZE_T)(l_res->x1 - l_res->x0);
|
||||||
size_t res_h = (size_t)(l_res->y1 - l_res->y0);
|
OPJ_SIZE_T res_h = (OPJ_SIZE_T)(l_res->y1 - l_res->y0);
|
||||||
|
|
||||||
/* issue 733, l_data_size == 0U, probably something wrong should be checked before getting here */
|
/* issue 733, l_data_size == 0U, probably something wrong should be checked before getting here */
|
||||||
if (res_h > 0 && res_w > SIZE_MAX / res_h) {
|
if (res_h > 0 && res_w > SIZE_MAX / res_h) {
|
||||||
|
@ -1577,9 +1578,9 @@ OPJ_BOOL opj_tcd_decode_tile(opj_tcd_t *p_tcd,
|
||||||
opj_tcd_tilecomp_t* tilec = &(p_tcd->tcd_image->tiles->comps[compno]);
|
opj_tcd_tilecomp_t* tilec = &(p_tcd->tcd_image->tiles->comps[compno]);
|
||||||
opj_image_comp_t* image_comp = &(p_tcd->image->comps[compno]);
|
opj_image_comp_t* image_comp = &(p_tcd->image->comps[compno]);
|
||||||
opj_tcd_resolution_t *res = tilec->resolutions + image_comp->resno_decoded;
|
opj_tcd_resolution_t *res = tilec->resolutions + image_comp->resno_decoded;
|
||||||
size_t w = res->win_x1 - res->win_x0;
|
OPJ_SIZE_T w = res->win_x1 - res->win_x0;
|
||||||
size_t h = res->win_y1 - res->win_y0;
|
OPJ_SIZE_T h = res->win_y1 - res->win_y0;
|
||||||
size_t l_data_size;
|
OPJ_SIZE_T l_data_size;
|
||||||
|
|
||||||
opj_image_data_free(tilec->data_win);
|
opj_image_data_free(tilec->data_win);
|
||||||
tilec->data_win = NULL;
|
tilec->data_win = NULL;
|
||||||
|
@ -1980,17 +1981,17 @@ static OPJ_BOOL opj_tcd_mct_decode(opj_tcd_t *p_tcd, opj_event_mgr_t *p_manager)
|
||||||
p_tcd->image->comps[1].resno_decoded;
|
p_tcd->image->comps[1].resno_decoded;
|
||||||
opj_tcd_resolution_t* res_comp2 = l_tile->comps[2].resolutions +
|
opj_tcd_resolution_t* res_comp2 = l_tile->comps[2].resolutions +
|
||||||
p_tcd->image->comps[2].resno_decoded;
|
p_tcd->image->comps[2].resno_decoded;
|
||||||
size_t l_res_samples = (size_t)(res_comp0->x1 - res_comp0->x0) *
|
OPJ_SIZE_T l_res_samples = (OPJ_SIZE_T)(res_comp0->x1 - res_comp0->x0) *
|
||||||
(size_t)(res_comp0->y1 - res_comp0->y0);
|
(OPJ_SIZE_T)(res_comp0->y1 - res_comp0->y0);
|
||||||
/* testcase 1336.pdf.asan.47.376 */
|
/* testcase 1336.pdf.asan.47.376 */
|
||||||
if (p_tcd->image->comps[0].resno_decoded !=
|
if (p_tcd->image->comps[0].resno_decoded !=
|
||||||
p_tcd->image->comps[1].resno_decoded ||
|
p_tcd->image->comps[1].resno_decoded ||
|
||||||
p_tcd->image->comps[0].resno_decoded !=
|
p_tcd->image->comps[0].resno_decoded !=
|
||||||
p_tcd->image->comps[2].resno_decoded ||
|
p_tcd->image->comps[2].resno_decoded ||
|
||||||
(size_t)(res_comp1->x1 - res_comp1->x0) *
|
(OPJ_SIZE_T)(res_comp1->x1 - res_comp1->x0) *
|
||||||
(size_t)(res_comp1->y1 - res_comp1->y0) != l_res_samples ||
|
(OPJ_SIZE_T)(res_comp1->y1 - res_comp1->y0) != l_res_samples ||
|
||||||
(size_t)(res_comp2->x1 - res_comp2->x0) *
|
(OPJ_SIZE_T)(res_comp2->x1 - res_comp2->x0) *
|
||||||
(size_t)(res_comp2->y1 - res_comp2->y0) != l_res_samples) {
|
(OPJ_SIZE_T)(res_comp2->y1 - res_comp2->y0) != l_res_samples) {
|
||||||
opj_event_msg(p_manager, EVT_ERROR,
|
opj_event_msg(p_manager, EVT_ERROR,
|
||||||
"Tiles don't all have the same dimension. Skip the MCT step.\n");
|
"Tiles don't all have the same dimension. Skip the MCT step.\n");
|
||||||
return OPJ_FALSE;
|
return OPJ_FALSE;
|
||||||
|
@ -2271,7 +2272,7 @@ static OPJ_BOOL opj_tcd_dc_level_shift_encode(opj_tcd_t *p_tcd)
|
||||||
opj_tccp_t * l_tccp = 00;
|
opj_tccp_t * l_tccp = 00;
|
||||||
opj_image_comp_t * l_img_comp = 00;
|
opj_image_comp_t * l_img_comp = 00;
|
||||||
opj_tcd_tile_t * l_tile;
|
opj_tcd_tile_t * l_tile;
|
||||||
size_t l_nb_elem, i;
|
OPJ_SIZE_T l_nb_elem, i;
|
||||||
OPJ_INT32 * l_current_ptr;
|
OPJ_INT32 * l_current_ptr;
|
||||||
|
|
||||||
l_tile = p_tcd->tcd_image->tiles;
|
l_tile = p_tcd->tcd_image->tiles;
|
||||||
|
@ -2281,8 +2282,8 @@ static OPJ_BOOL opj_tcd_dc_level_shift_encode(opj_tcd_t *p_tcd)
|
||||||
|
|
||||||
for (compno = 0; compno < l_tile->numcomps; compno++) {
|
for (compno = 0; compno < l_tile->numcomps; compno++) {
|
||||||
l_current_ptr = l_tile_comp->data;
|
l_current_ptr = l_tile_comp->data;
|
||||||
l_nb_elem = (size_t)(l_tile_comp->x1 - l_tile_comp->x0) *
|
l_nb_elem = (OPJ_SIZE_T)(l_tile_comp->x1 - l_tile_comp->x0) *
|
||||||
(size_t)(l_tile_comp->y1 - l_tile_comp->y0);
|
(OPJ_SIZE_T)(l_tile_comp->y1 - l_tile_comp->y0);
|
||||||
|
|
||||||
if (l_tccp->qmfbid == 1) {
|
if (l_tccp->qmfbid == 1) {
|
||||||
for (i = 0; i < l_nb_elem; ++i) {
|
for (i = 0; i < l_nb_elem; ++i) {
|
||||||
|
@ -2308,8 +2309,8 @@ static OPJ_BOOL opj_tcd_mct_encode(opj_tcd_t *p_tcd)
|
||||||
{
|
{
|
||||||
opj_tcd_tile_t * l_tile = p_tcd->tcd_image->tiles;
|
opj_tcd_tile_t * l_tile = p_tcd->tcd_image->tiles;
|
||||||
opj_tcd_tilecomp_t * l_tile_comp = p_tcd->tcd_image->tiles->comps;
|
opj_tcd_tilecomp_t * l_tile_comp = p_tcd->tcd_image->tiles->comps;
|
||||||
size_t samples = (size_t)(l_tile_comp->x1 - l_tile_comp->x0) *
|
OPJ_SIZE_T samples = (OPJ_SIZE_T)(l_tile_comp->x1 - l_tile_comp->x0) *
|
||||||
(size_t)(l_tile_comp->y1 - l_tile_comp->y0);
|
(OPJ_SIZE_T)(l_tile_comp->y1 - l_tile_comp->y0);
|
||||||
OPJ_UINT32 i;
|
OPJ_UINT32 i;
|
||||||
OPJ_BYTE ** l_data = 00;
|
OPJ_BYTE ** l_data = 00;
|
||||||
opj_tcp_t * l_tcp = p_tcd->tcp;
|
opj_tcp_t * l_tcp = p_tcd->tcp;
|
||||||
|
@ -2511,8 +2512,8 @@ OPJ_BOOL opj_tcd_copy_tile_data(opj_tcd_t *p_tcd,
|
||||||
for (i = 0; i < p_tcd->image->numcomps; ++i) {
|
for (i = 0; i < p_tcd->image->numcomps; ++i) {
|
||||||
l_size_comp = l_img_comp->prec >> 3; /*(/ 8)*/
|
l_size_comp = l_img_comp->prec >> 3; /*(/ 8)*/
|
||||||
l_remaining = l_img_comp->prec & 7; /* (%8) */
|
l_remaining = l_img_comp->prec & 7; /* (%8) */
|
||||||
l_nb_elem = (size_t)(l_tilec->x1 - l_tilec->x0) *
|
l_nb_elem = (OPJ_SIZE_T)(l_tilec->x1 - l_tilec->x0) *
|
||||||
(size_t)(l_tilec->y1 - l_tilec->y0);
|
(OPJ_SIZE_T)(l_tilec->y1 - l_tilec->y0);
|
||||||
|
|
||||||
if (l_remaining) {
|
if (l_remaining) {
|
||||||
++l_size_comp;
|
++l_size_comp;
|
||||||
|
|
Loading…
Reference in New Issue