moved "openjpeg3d" directory from the trunk to the branches directory.
[openjpeg.git] / indexer_JPIP / index_create.c
index 0dfee7f8ffa528fe287f5b1d97fc8bf6d0ec6b0d..518e70f459d0028cfc7d82804d54eca7b277bb05 100644 (file)
@@ -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 <windows.h>
 
 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);