/* don't forget to release pi */
opj_pi_destroy(l_pi,l_nb_pocs);
- assert( l_current_data - p_src < UINT32_MAX );
+ assert( (OPJ_INT64)(l_current_data - p_src) < (OPJ_INT64)UINT32_MAX );
*p_data_read = (OPJ_UINT32)(l_current_data - p_src);
return OPJ_TRUE;
}
cblk = &prc->cblks.enc[cblkno];
cblk->numpasses = 0;
- assert(band->numbps>=0);
- opj_tgt_setvalue(prc->imsbtree, cblkno, (OPJ_INT32)((OPJ_UINT32)band->numbps - cblk->numbps));
+ opj_tgt_setvalue(prc->imsbtree, cblkno, band->numbps - (OPJ_INT32)cblk->numbps);
}
++band;
}
len += pass->len;
if (pass->term || passno == (cblk->numpasses + layer->numpasses) - 1) {
- increment = opj_int_max(increment, opj_int_floorlog2(len) + 1 - (cblk->numlenbits + opj_int_floorlog2(nump)));
+ increment = (OPJ_UINT32)opj_int_max((OPJ_INT32)increment, opj_int_floorlog2((OPJ_INT32)len) + 1
+ - ((OPJ_INT32)cblk->numlenbits + opj_int_floorlog2((OPJ_INT32)nump)));
len = 0;
nump = 0;
}
len += pass->len;
if (pass->term || passno == (cblk->numpasses + layer->numpasses) - 1) {
- opj_bio_write(bio, len, cblk->numlenbits + (OPJ_UINT32)opj_int_floorlog2((OPJ_INT32)nump));
+ opj_bio_write(bio, (OPJ_UINT32)len, cblk->numlenbits + (OPJ_UINT32)opj_int_floorlog2((OPJ_INT32)nump));
len = 0;
nump = 0;
}
if (p_max_length < 2) {
fprintf(stderr, "Not enough space for expected EPH marker\n");
} else if ((*l_header_data) != 0xff || (*(l_header_data + 1) != 0x92)) {
- printf("Error : expected EPH marker\n");
+ fprintf(stderr, "Error : expected EPH marker\n");
} else {
l_header_data += 2;
}
++i;
}
- assert(l_band->numbps >= 0);
l_cblk->numbps = (OPJ_UINT32)l_band->numbps + 1 - i;
l_cblk->numlenbits = 3;
}
do {
if (* p_data_read + l_seg->newlen > p_max_length) {
+ fprintf(stderr, "segment too long (%d) with max (%d) for codeblock %d (p=%d, b=%d, r=%d, c=%d)\n",
+ l_seg->newlen, p_max_length, cblkno, p_pi->precno, bandno, p_pi->resno, p_pi->compno);
return OPJ_FALSE;
}