};
j2k_dec_mstabent_t *j2k_dec_mstab_lookup(int id) {
- j2k_dec_mstabent_t *e;
- for (e = j2k_dec_mstab; e->id != 0; e++) {
- if (e->id == id) {
- break;
- }
+ j2k_dec_mstabent_t *e;
+ for (e = j2k_dec_mstab; e->id != 0; e++) {
+ if (e->id == id) {
+ break;
}
- return e;
+ }
+ return e;
}
-int j2k_decode(unsigned char *src, int len, j2k_image_t *image, j2k_cp_t *cp) {
+int j2k_decode(unsigned char *src, int len, j2k_image_t **image, j2k_cp_t **cp) {
if (setjmp(j2k_error)) {
if (j2k_state != J2K_STATE_MT) {
fprintf(stderr, "WARNING: incomplete bitstream\n");
}
return cio_numbytes();
}
- j2k_img = image;
- j2k_cp = cp;
+ j2k_img = (j2k_image_t*)calloc(1, sizeof(j2k_image_t));
+ j2k_cp = (j2k_cp_t*)calloc(1, sizeof(j2k_cp_t));
+ *image = j2k_img;
+ *cp = j2k_cp;
j2k_state = J2K_STATE_MHSOC;
cio_init(src, len);
for (;;) {
/* decode */
- if (!j2k_decode(j2kfile, totlen, imgg, cp)) {
+ if (!j2k_decode(j2kfile, totlen, &imgg, &cp)) {
fprintf(stderr, "Index_creator: failed to decode image!\n");
return 1;
}
int x0, y0; /* XOsiz, YOsiz */
int x1, y1; /* Xsiz, Ysiz */
int numcomps; /* number of components */
+ int index_on; /* 0 = no index || 1 = index */
j2k_comp_t *comps; /* image-components */
} j2k_image_t;
} j2k_poc_t;
typedef struct {
- //int first;
int csty; /* coding style */
int prg; /* progression order */
int numlayers; /* number of layers */
int ppm; /* If ppm == 1 --> there was a PPM marker for the present tile */
int ppm_store; /* Use in case of multiple marker PPM (number of info already store) */
int ppm_previous; /* Use in case of multiple marker PPM (case on non-finished previous info) */
- int index_on; /* 0 = no index || 1 = index */
j2k_tcp_t *tcps; /* tile coding parameters */
} j2k_cp_t;