truncate = 1; /* Case of a truncate codestream */
}
- {
- unsigned char *s, *e;
- int skipped = 0;
-
- s = cio_getbp(cio);
- e = s + len;
-
- if((unsigned int)(e - s) > 8) s = e - 8;
-
- if(e[-2] == 0x00 && e[-1] == 0x00)
- {
- while(e > s)
- {
- if(e[-2] == 0xff && e[-1] == 0xd9) break;
- --len; --e; ++skipped;
- }
- if(skipped) truncate = 1;
- }
- }
-
data = j2k->tile_data[curtileno];
data = (unsigned char*) opj_realloc(data, (j2k->tile_len[curtileno] + len) * sizeof(unsigned char));
#endif /* USE_JPWL */
if (id >> 8 != 0xff) {
- if(cio_numbytesleft(cio) != 0) /* not end of file reached and no EOC */
- {
- opj_event_msg(cinfo, EVT_ERROR, "%.8x: expected a marker instead of %x\n", cio_tell(cio) - 2, id);
- opj_image_destroy(image);
- return 0;
- }
- opj_event_msg(cinfo, EVT_WARNING, "%.8x: expected a marker instead of %x\n", cio_tell(cio) - 2, id);
- j2k->state = J2K_STATE_NEOC;
- break;
+ opj_image_destroy(image);
+ opj_event_msg(cinfo, EVT_ERROR, "%.8x: expected a marker instead of %x\n", cio_tell(cio) - 2, id);
+ return 0;
}
e = j2k_dec_mstab_lookup(id);
/* Check if the marker is known*/
id = cio_read(cio, 2);
if (id >> 8 != 0xff) {
- if(cio_numbytesleft(cio) != 0) /* no end of file reached and no EOC */
- {
- opj_event_msg(cinfo, EVT_ERROR, "%.8x: expected a marker instead of %x\n", cio_tell(cio) - 2, id);
- opj_image_destroy(image);
- return 0;
- }
- opj_event_msg(cinfo, EVT_WARNING, "%.8x: expected a marker instead of %x\n", cio_tell(cio) - 2, id);
- j2k->state = J2K_STATE_NEOC;
- break;
+ opj_image_destroy(image);
+ opj_event_msg(cinfo, EVT_ERROR, "%.8x: expected a marker instead of %x\n", cio_tell(cio) - 2, id);
+ return 0;
}
e = j2k_dec_mstab_lookup(id);
if (!(j2k->state & e->states)) {