X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=indexer_JPIP%2Findex_create.c;h=518e70f459d0028cfc7d82804d54eca7b277bb05;hb=87e4c72ee4be8eb4899cfab25359440a9ecacafa;hp=0dfee7f8ffa528fe287f5b1d97fc8bf6d0ec6b0d;hpb=de5a22aea053d3934536ee3ff5d2f7b2f706d045;p=openjpeg.git diff --git a/indexer_JPIP/index_create.c b/indexer_JPIP/index_create.c index 0dfee7f8..518e70f4 100644 --- a/indexer_JPIP/index_create.c +++ b/indexer_JPIP/index_create.c @@ -864,7 +864,7 @@ void j2k_read_sot() { if (partno >= tile->Cztile_parts) { tilepart_tmp = (info_tile_part_t*)malloc((INCREMENT + tile->Cztile_parts) * sizeof(info_tile_part_t)); - memcpy(tmp, tile->tile_parts, tile->Cztile_parts); + memcpy(tilepart_tmp, tile->tile_parts, tile->Cztile_parts); tile->Cztile_parts += INCREMENT; free(tile->tile_parts); tile->tile_parts = tilepart_tmp; @@ -1008,7 +1008,7 @@ void j2k_read_unk() { int j2k_index_JPIP(char *Idx_file, char *J2K_file, int len, int version){ FILE *dest; - char *index; + unsigned char *index; int pos_iptr, end_pos; int len_cidx, pos_cidx; int len_jp2c, pos_jp2c; @@ -1021,7 +1021,7 @@ int j2k_index_JPIP(char *Idx_file, char *J2K_file, int len, int version){ } /* INDEX MODE JPIP */ - index = (char*)malloc(len); + index = (unsigned char*)malloc(len); cio_init(index, len); jp2_write_jp(); jp2_write_ftyp(); @@ -1087,16 +1087,16 @@ j2k_dec_mstabent_t j2k_dec_mstab[]={ }; 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"); @@ -1104,8 +1104,10 @@ int j2k_decode(unsigned char *src, int len, j2k_image_t *image, j2k_cp_t *cp) { } return cio_numbytes(); } - j2k_img = img; - 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 (;;) { @@ -1128,7 +1130,7 @@ int j2k_decode(unsigned char *src, int len, j2k_image_t *image, j2k_cp_t *cp) { } -#ifdef WIN32 +#ifdef _WIN32 #include BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { @@ -1141,20 +1143,20 @@ BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserve } return TRUE; } -#endif +#endif /* _WIN32 */ int main(int argc, char **argv) { FILE *src; int totlen; - char *j2kfile; + unsigned char *j2kfile; j2k_image_t *imgg; j2k_cp_t *cp; int version; if (argc != 4) { - fprintf(stderr,"\nERROR in entry : index_create J2K-file Idx-file version\n\nVersion : 0, 1, 2 or 3\n\n"); + fprintf(stderr,"\nUSAGE : ./index_create J2K-file JP2-file version\n\nVersion : 0, 1, 2 or 3\n 0 : [faix] 4-byte and no AUX fields\n 1 : [faix] 8-byte and no AUX fields\n 2 : [faix] 4-byte and AUX fields\n 3 : [faix] 8-byte and AUX fields\n\nReference Document : annex I from JPIP-FCD-version 2 (SC 29 N5727)\n\n"); return 1; } @@ -1169,7 +1171,7 @@ int main(int argc, char **argv) totlen = ftell(src); fseek(src, 0, SEEK_SET); - j2kfile = (char*)malloc(totlen); + j2kfile = (unsigned char*)malloc(totlen); fread(j2kfile, 1, totlen, src); fclose(src); @@ -1193,8 +1195,9 @@ int main(int argc, char **argv) /* decode */ - if (!j2k_decode(j2kfile, totlen, imgg, cp)) { + if (!j2k_decode(j2kfile, totlen, &imgg, &cp)) { fprintf(stderr, "Index_creator: failed to decode image!\n"); + free(j2kfile); return 1; } free(j2kfile);