[trunk] Fix advanced (and experimental) Java binding. As reported on the mailing...
authorMathieu Malaterre <mathieu.malaterre@gmail.com>
Wed, 10 Oct 2012 13:26:29 +0000 (13:26 +0000)
committerMathieu Malaterre <mathieu.malaterre@gmail.com>
Wed, 10 Oct 2012 13:26:29 +0000 (13:26 +0000)
wrapping/java/openjp2/CMakeLists.txt
wrapping/java/openjp2/JavaOpenJPEG.c
wrapping/java/openjp2/JavaOpenJPEGDecoder.c

index c0566eab5cfbc7852559abdbad618e937abb189c..8f53cb766b93faaf078f2584a144a84ec2cb0e4b 100644 (file)
@@ -13,7 +13,8 @@ include_directories(${JNI_INCLUDE_DIRS})
 # required header file:
 include_directories(
   ${OPENJPEG_BINARY_DIR}/src/lib/openjp2 # opj_config.h
-  ${OPENJPEG_SOURCE_DIR}/src/lib/openjp2
+  #${OPENJPEG_SOURCE_DIR}/src/lib/openjp2
+  ${OPENJPEG_SOURCE_DIR}/src/lib/openmj2
   ${OPENJPEG_SOURCE_DIR}/src/bin/common
   ${OPENJPEG_SOURCE_DIR}/src/bin/jp2
   )
index 3f8e2ee722dc20405e4a9f3db7567d0a49c5f150..9f306b58713f4538896ba72df78ade4e66935e25 100644 (file)
@@ -57,7 +57,7 @@
 \r
 extern int get_file_format(char *filename);\r
 extern void error_callback(const char *msg, void *client_data);\r
-extern warning_callback(const char *msg, void *client_data);\r
+extern void warning_callback(const char *msg, void *client_data);\r
 extern void info_callback(const char *msg, void *client_data);\r
 \r
 typedef struct callback_variables {\r
@@ -350,9 +350,9 @@ OPJ_PROG_ORDER give_progression(char progression[4]) {
 }\r
 \r
 \r
-/// <summary>\r
-/// Get logarithm of an integer and round downwards.\r
-/// </summary>\r
+/** <summary>\r
+    Get logarithm of an integer and round downwards.\r
+    </summary> */\r
 int int_floorlog2(int a) {\r
     int l;\r
     for (l=0; a>1; l++) {\r
@@ -1352,7 +1352,7 @@ char* create_index_into_byte_array(opj_codestream_info_t *cstr_info, int* buffer
                }\r
        }\r
 \r
-       // Compute the size of the index buffer, in number of bytes*/\r
+       /* Compute the size of the index buffer, in number of bytes*/\r
        *buffer_size = \r
                  1 /* version */\r
                + (10 /* image_w until decomposition */\r
@@ -1361,18 +1361,18 @@ char* create_index_into_byte_array(opj_codestream_info_t *cstr_info, int* buffer
                + cstr_info->tw * cstr_info->th * 4 /* tile info, without distorsion info */\r
                + cstr_info->tw*cstr_info->th * cstr_info->numlayers * (cstr_info->numdecompos[0] + 1) * cstr_info->numcomps * prec_max *8\r
                  ) * sizeof(int);\r
-       //printf("C: index buffer size = %d bytes\n", *buffer_size);\r
+       /*printf("C: index buffer size = %d bytes\n", *buffer_size);*/\r
        buffer = (char*) malloc(*buffer_size);\r
 \r
        if (!buffer) {\r
-               //opj_event_msg(j2k->cinfo, EVT_ERROR, "failed to allocate index buffer for writing %d int\n", *buffer_size);\r
+               /*opj_event_msg(j2k->cinfo, EVT_ERROR, "failed to allocate index buffer for writing %d int\n", *buffer_size);*/\r
                fprintf(stderr, "failed to allocate index buffer for writing %d int\n", *buffer_size);\r
                return 0;\r
        }\r
        \r
-       buffer[0] = 1;  // Version stored on a byte\r
+       buffer[0] = 1;  /* Version stored on a byte*/\r
        buffer++;\r
-       // Remaining informations are stored on a int.\r
+       /* Remaining informations are stored on a int.*/\r
        ((int*)buffer)[buffer_pos++] = cstr_info->image_w;\r
        ((int*)buffer)[buffer_pos++] = cstr_info->image_h;\r
        ((int*)buffer)[buffer_pos++] = cstr_info->prog;\r
@@ -1597,7 +1597,7 @@ char* create_index_into_byte_array(opj_codestream_info_t *cstr_info, int* buffer
        } /* tileno */\r
 \r
        if (buffer_pos > *buffer_size) {\r
-               //opj_event_msg(j2k->cinfo, EVT_ERROR, "index creation: buffer_pos (%d) > buffer_size (%d)!\n", buffer_pos, *buffer_size);\r
+               /*opj_event_msg(j2k->cinfo, EVT_ERROR, "index creation: buffer_pos (%d) > buffer_size (%d)!\n", buffer_pos, *buffer_size);*/\r
                fprintf(stderr, "index creation: buffer_pos (%d) > buffer_size (%d)!\n", buffer_pos, *buffer_size);\r
                return 0;\r
        }\r
@@ -1630,7 +1630,7 @@ opj_image_t* loadImage(opj_cparameters_t *parameters, JNIEnv *env, jobject obj,
        jint            *jiBody;\r
        jboolean                isCopy;\r
 \r
-       // Image width, height and depth\r
+       /* Image width, height and depth*/\r
        fid = (*env)->GetFieldID(env, cls,"width", "I");\r
        ji = (*env)->GetIntField(env, obj, fid);\r
        w = ji;\r
@@ -1643,7 +1643,7 @@ opj_image_t* loadImage(opj_cparameters_t *parameters, JNIEnv *env, jobject obj,
        ji = (*env)->GetIntField(env, obj, fid);\r
        depth = ji;\r
 \r
-       // Read the image\r
+       /* Read the image*/\r
        if (depth <=16) {\r
                numcomps = 1;\r
                color_space = CLRSPC_GRAY;\r
@@ -1658,8 +1658,8 @@ opj_image_t* loadImage(opj_cparameters_t *parameters, JNIEnv *env, jobject obj,
                cmptparm[0].y0 = parameters->image_offset_y0;\r
                cmptparm[0].w = !cmptparm[0].x0 ? (w - 1) * parameters->subsampling_dx + 1 : cmptparm[0].x0 + (w - 1) * parameters->subsampling_dx + 1;\r
                cmptparm[0].h = !cmptparm[0].y0 ? (h - 1) * parameters->subsampling_dy + 1 : cmptparm[0].y0 + (h - 1) * parameters->subsampling_dy + 1;\r
-               // Java types are always signed but we use them as unsigned types (shift of the negative part of \r
-               // the pixels of the images in Telemis before entering the encoder).\r
+               /* Java types are always signed but we use them as unsigned types (shift of the negative part of \r
+                  the pixels of the images in Telemis before entering the encoder).*/\r
                cmptparm[0].sgnd = 0;\r
                if (depth<=16) \r
                        cmptparm[0].prec=depth;\r
@@ -1705,12 +1705,12 @@ opj_image_t* loadImage(opj_cparameters_t *parameters, JNIEnv *env, jobject obj,
                comp = &image->comps[compno];\r
                max = -100000;\r
                if (depth == 8) {\r
-                       fid = (*env)->GetFieldID(env, cls,"image8", "[B");      // byteArray []\r
+                       fid = (*env)->GetFieldID(env, cls,"image8", "[B");      /* byteArray []*/\r
                        jba = (*env)->GetObjectField(env, obj, fid);\r
                        len = (*env)->GetArrayLength(env, jba);\r
                        \r
                        jbBody = (*env)->GetPrimitiveArrayCritical(env, jba, &isCopy);\r
-                       //printf("C: before transfering 8 bpp image\n");\r
+                       /*printf("C: before transfering 8 bpp image\n");*/\r
                        if (comp->sgnd) {\r
                                for(i=0; i< len;i++) {\r
                                        comp->data[i] = (char) jbBody[i];\r
@@ -1724,13 +1724,13 @@ opj_image_t* loadImage(opj_cparameters_t *parameters, JNIEnv *env, jobject obj,
                        }\r
                        (*env)->ReleasePrimitiveArrayCritical(env, jba, jbBody, 0);\r
                } else if(depth == 16) {\r
-                       fid = (*env)->GetFieldID(env, cls,"image16", "[S");     // shortArray []\r
+                       fid = (*env)->GetFieldID(env, cls,"image16", "[S");     /* shortArray []*/\r
                        jsa = (*env)->GetObjectField(env, obj, fid);\r
                        len = (*env)->GetArrayLength(env, jsa);\r
                        \r
                        jsBody = (*env)->GetPrimitiveArrayCritical(env, jsa, &isCopy);\r
-                       //printf("C: before transfering 16 bpp image\n");\r
-                       if (comp->sgnd) {       // Special behaviour to deal with signed elements ??\r
+                       /*printf("C: before transfering 16 bpp image\n");*/\r
+                       if (comp->sgnd) {       /* Special behaviour to deal with signed elements ??*/\r
                                comp->data[i] = (short) jsBody[i];\r
                                for(i=0; i< len;i++) {\r
                                        if (comp->data[i] > max) max = comp->data[i];\r
@@ -1743,14 +1743,14 @@ opj_image_t* loadImage(opj_cparameters_t *parameters, JNIEnv *env, jobject obj,
                        }\r
                        (*env)->ReleasePrimitiveArrayCritical(env, jsa, jsBody, 0);\r
                } else if (depth == 24) {\r
-                       fid = (*env)->GetFieldID(env, cls,"image24", "[I");     // intArray []\r
+                       fid = (*env)->GetFieldID(env, cls,"image24", "[I");     /* intArray []*/\r
                        jia = (*env)->GetObjectField(env, obj, fid);\r
                        len = (*env)->GetArrayLength(env, jia);\r
                        shift = compno*8;\r
 \r
                        jiBody = (*env)->GetPrimitiveArrayCritical(env, jia, &isCopy);\r
-                       //printf("C: before transfering 24 bpp image (component %d, signed = %d)\n", compno, comp->sgnd);\r
-                       if (comp->sgnd) {       // Special behaviour to deal with signed elements ?? XXXXX\r
+                       /*printf("C: before transfering 24 bpp image (component %d, signed = %d)\n", compno, comp->sgnd);*/\r
+                       if (comp->sgnd) {       /* Special behaviour to deal with signed elements ?? XXXXX*/\r
                                for(i=0; i< len;i++) {\r
                                        comp->data[i] = ( ((int) jiBody[i]) & (0xFF << shift) ) >> shift;\r
                                        if (comp->data[i] > max) max = comp->data[i];\r
@@ -1765,7 +1765,7 @@ opj_image_t* loadImage(opj_cparameters_t *parameters, JNIEnv *env, jobject obj,
                }\r
                comp->bpp = int_floorlog2(max)+1;\r
                comp->prec = comp->bpp;\r
-               //printf("C: component %d: max  %d, real bpp = %d\n", compno, max, comp->bpp);\r
+               /*printf("C: component %d: max  %d, real bpp = %d\n", compno, max, comp->bpp);*/\r
        }\r
        return image;\r
 }\r
@@ -1786,9 +1786,9 @@ JNIEXPORT jlong JNICALL Java_org_openJpeg_OpenJPEGJavaEncoder_internalEncodeImag
        opj_codestream_info_t cstr_info;                /* Codestream information structure */\r
        char indexfilename[OPJ_PATH_LEN];       /* index file name */\r
 \r
-       int* compressed_index = NULL;\r
+       char* compressed_index = NULL;\r
        int compressed_index_size=-1;\r
-       // ==> Access variables to the Java member variables\r
+       /* ==> Access variables to the Java member variables*/\r
        jsize           arraySize;\r
        jclass          cls;\r
        jobject         object;\r
@@ -1797,18 +1797,18 @@ JNIEXPORT jlong JNICALL Java_org_openJpeg_OpenJPEGJavaEncoder_internalEncodeImag
        jbyteArray      jba;\r
        jbyte           *jbBody;\r
        callback_variables_t msgErrorCallback_vars;\r
-       // <== access variable to the Java member variables.\r
+       /* <== access variable to the Java member variables.*/\r
 \r
-       // For the encoding and storage into the file\r
+       /* For the encoding and storage into the file*/\r
        opj_cinfo_t* cinfo;\r
        int codestream_length;\r
        opj_cio_t *cio = NULL;\r
        FILE *f = NULL;\r
 \r
-       // JNI reference to the calling class\r
+       /* JNI reference to the calling class*/\r
        cls = (*env)->GetObjectClass(env, obj);\r
        \r
-       // Pointers to be able to call a Java method for all the info and error messages\r
+       /* Pointers to be able to call a Java method for all the info and error messages*/\r
        msgErrorCallback_vars.env = env;\r
        msgErrorCallback_vars.jobj = &obj;\r
        msgErrorCallback_vars.message_mid = (*env)->GetMethodID(env, cls, "logMessage", "(Ljava/lang/String;)V");\r
@@ -1817,11 +1817,11 @@ JNIEXPORT jlong JNICALL Java_org_openJpeg_OpenJPEGJavaEncoder_internalEncodeImag
        arraySize = (*env)->GetArrayLength(env, javaParameters);\r
        argc = (int) arraySize +1;\r
        argv = malloc(argc*sizeof(char*));\r
-       argv[0] = "ProgramName.exe";    // The program name: useless\r
+       argv[0] = "ProgramName.exe";    /* The program name: useless*/\r
        j=0;\r
        for (i=1; i<argc; i++) {\r
                object = (*env)->GetObjectArrayElement(env, javaParameters, i-1);\r
-               argv[i] = (*env)->GetStringUTFChars(env, object, &isCopy);\r
+               argv[i] = (char*)(*env)->GetStringUTFChars(env, object, &isCopy);\r
        }\r
 \r
        /*printf("C: ");\r
@@ -1841,7 +1841,7 @@ JNIEXPORT jlong JNICALL Java_org_openJpeg_OpenJPEGJavaEncoder_internalEncodeImag
        /* set encoding parameters to default values */\r
        opj_set_default_encoder_parameters(&parameters);\r
        parameters.cod_format = J2K_CFMT;\r
-       //parameters.index_on = 1;\r
+       /*parameters.index_on = 1;*/\r
 \r
        /* Initialize indexfilename and img_fol */\r
        *indexfilename = 0;\r
@@ -1849,13 +1849,13 @@ JNIEXPORT jlong JNICALL Java_org_openJpeg_OpenJPEGJavaEncoder_internalEncodeImag
 \r
        /* parse input and get user encoding parameters */\r
        if (parse_cmdline_encoder(argc, argv, &parameters,&img_fol, indexfilename) == 1) {\r
-               // Release the Java arguments array\r
+               /* Release the Java arguments array*/\r
                for (i=1; i<argc; i++)\r
                        (*env)->ReleaseStringUTFChars(env, (*env)->GetObjectArrayElement(env, javaParameters, i-1), argv[i]);\r
                return -1;\r
        }\r
 \r
-       // Release the Java arguments array\r
+       /* Release the Java arguments array*/\r
        for (i=1; i<argc; i++)\r
                (*env)->ReleaseStringUTFChars(env, (*env)->GetObjectArrayElement(env, javaParameters, i-1), argv[i]);\r
 \r
@@ -1891,7 +1891,7 @@ JNIEXPORT jlong JNICALL Java_org_openJpeg_OpenJPEGJavaEncoder_internalEncodeImag
                fprintf(stderr,"\n");\r
 \r
                image = loadImage(&parameters, env, obj, cls);\r
-               //printf("C: after load image: image = %d\n", image);\r
+               /*printf("C: after load image: image = %d\n", image);*/\r
                if (!image) {\r
                        fprintf(stderr, "Unable to load image\n");\r
                        return -1; \r
index a273028c6f1d72572fa52d24128471e3551aaa6b..c60f154d24afe2add3de289ef0e02357c3a23788 100644 (file)
@@ -508,7 +508,7 @@ JNIEXPORT jint JNICALL Java_org_openJpeg_OpenJPEGJavaDecoder_internalDecodeJ2Kto
        int w,h;\r
        long min_value, max_value;\r
        short tempS; unsigned char tempUC, tempUC1, tempUC2;\r
-       // ==> Access variables to the Java member variables\r
+       /* ==> Access variables to the Java member variables*/\r
        jsize           arraySize;\r
        jclass          cls;\r
        jobject         object;\r
@@ -521,8 +521,8 @@ JNIEXPORT jint JNICALL Java_org_openJpeg_OpenJPEGJavaDecoder_internalDecodeJ2Kto
        jshort          *jsBody, *ptrSBody;\r
        jint            *jiBody, *ptrIBody;\r
        callback_variables_t msgErrorCallback_vars;\r
-       // <=== access variable to Java member variables */\r
-       int *ptr, *ptr1, *ptr2;                         // <== To transfer the decoded image to Java\r
+       /* <=== access variable to Java member variables */\r
+       int *ptr, *ptr1, *ptr2;                         /* <== To transfer the decoded image to Java*/\r
 \r
        /* configure the event callbacks */\r
        memset(&event_mgr, 0, sizeof(opj_event_mgr_t)); \r
@@ -530,24 +530,24 @@ JNIEXPORT jint JNICALL Java_org_openJpeg_OpenJPEGJavaDecoder_internalDecodeJ2Kto
        event_mgr.warning_handler = warning_callback;\r
        event_mgr.info_handler = info_callback;\r
 \r
-       // JNI reference to the calling class\r
+       /* JNI reference to the calling class*/\r
        cls = (*env)->GetObjectClass(env, obj);\r
 \r
-       // Pointers to be able to call a Java method for all the info and error messages\r
+       /* Pointers to be able to call a Java method for all the info and error messages*/\r
        msgErrorCallback_vars.env = env;\r
        msgErrorCallback_vars.jobj = &obj;\r
        msgErrorCallback_vars.message_mid = (*env)->GetMethodID(env, cls, "logMessage", "(Ljava/lang/String;)V");\r
        msgErrorCallback_vars.error_mid = (*env)->GetMethodID(env, cls, "logError", "(Ljava/lang/String;)V");\r
 \r
-       // Get the String[] containing the parameters, and converts it into a char** to simulate command line arguments.\r
+       /* Get the String[] containing the parameters, and converts it into a char** to simulate command line arguments.*/\r
        arraySize = (*env)->GetArrayLength(env, javaParameters);\r
        argc = (int) arraySize +1;\r
        argv = malloc(argc*sizeof(char*));\r
-       argv[0] = "ProgramName.exe";    // The program name: useless\r
+       argv[0] = "ProgramName.exe";    /* The program name: useless*/\r
        j=0;\r
        for (i=1; i<argc; i++) {\r
                object = (*env)->GetObjectArrayElement(env, javaParameters, i-1);\r
-               argv[i] = (*env)->GetStringUTFChars(env, object, &isCopy);\r
+               argv[i] = (char*)(*env)->GetStringUTFChars(env, object, &isCopy);\r
        }\r
 \r
        /*printf("C: decoder params = ");\r
@@ -562,18 +562,18 @@ JNIEXPORT jint JNICALL Java_org_openJpeg_OpenJPEGJavaDecoder_internalDecodeJ2Kto
 \r
        /* parse input and get user encoding parameters */\r
        if(parse_cmdline_decoder(argc, argv, &parameters,&img_fol) == 1) {\r
-               // Release the Java arguments array\r
+               /* Release the Java arguments array*/\r
                for (i=1; i<argc; i++)\r
                        (*env)->ReleaseStringUTFChars(env, (*env)->GetObjectArrayElement(env, javaParameters, i-1), argv[i]);\r
                return -1;\r
        }\r
-       // Release the Java arguments array\r
+       /* Release the Java arguments array*/\r
        for (i=1; i<argc; i++)\r
                (*env)->ReleaseStringUTFChars(env, (*env)->GetObjectArrayElement(env, javaParameters, i-1), argv[i]);\r
 \r
        num_images=1;\r
 \r
-       // Get additional information from the Java object variables\r
+       /* Get additional information from the Java object variables*/\r
        fid = (*env)->GetFieldID(env, cls,"skippedResolutions", "I");\r
        parameters.cp_reduce = (short) (*env)->GetIntField(env, obj, fid);\r
 \r
@@ -587,7 +587,7 @@ JNIEXPORT jint JNICALL Java_org_openJpeg_OpenJPEGJavaDecoder_internalDecodeJ2Kto
                   Implemented for debug purpose. */\r
                /* -------------------------------------------------------------- */\r
                if (parameters.infile && parameters.infile[0]!='\0') {\r
-                       //printf("C: opening [%s]\n", parameters.infile);\r
+                       /*printf("C: opening [%s]\n", parameters.infile);*/\r
                        fsrc = fopen(parameters.infile, "rb");\r
                        if (!fsrc) {\r
                                fprintf(stderr, "ERROR -> failed to open %s for reading\n", parameters.infile);\r
@@ -599,10 +599,10 @@ JNIEXPORT jint JNICALL Java_org_openJpeg_OpenJPEGJavaDecoder_internalDecodeJ2Kto
                        src = (unsigned char *) malloc(file_length);\r
                        fread(src, 1, file_length, fsrc);\r
                        fclose(fsrc);\r
-                       //printf("C: %d bytes read from file\n",file_length);\r
+                       /*printf("C: %d bytes read from file\n",file_length);*/\r
                } else {\r
-                       // Preparing the transfer of the codestream from Java to C\r
-                       //printf("C: before transfering codestream\n");\r
+                       /* Preparing the transfer of the codestream from Java to C*/\r
+                       /*printf("C: before transfering codestream\n");*/\r
                        fid = (*env)->GetFieldID(env, cls,"compressedStream", "[B");\r
                        jba = (*env)->GetObjectField(env, obj, fid);\r
                        file_length = (*env)->GetArrayLength(env, jba);\r
@@ -752,17 +752,17 @@ JNIEXPORT jint JNICALL Java_org_openJpeg_OpenJPEGJavaDecoder_internalDecodeJ2Kto
 \r
                }\r
 \r
-               // ========= Return the image to the Java structure ===============\r
+               /* ========= Return the image to the Java structure ===============*/\r
 #ifdef CHECK_THRESHOLDS\r
                printf("C: checking thresholds\n");\r
 #endif\r
-               // First compute the real with and height, in function of the resolutions decoded.\r
-               //wr = (image->comps[0].w + (1 << image->comps[0].factor) -1) >> image->comps[0].factor;\r
-               //hr = (image->comps[0].h + (1 << image->comps[0].factor) -1) >> image->comps[0].factor;\r
+               /* First compute the real with and height, in function of the resolutions decoded.*/\r
+               /*wr = (image->comps[0].w + (1 << image->comps[0].factor) -1) >> image->comps[0].factor;*/\r
+               /*hr = (image->comps[0].h + (1 << image->comps[0].factor) -1) >> image->comps[0].factor;*/\r
                w = image->comps[0].w;\r
                h = image->comps[0].h;\r
 \r
-               if (image->numcomps==3) {       // 3 components color image\r
+               if (image->numcomps==3) {       /* 3 components color image*/\r
                        ptr = image->comps[0].data;\r
                        ptr1 = image->comps[1].data;\r
                        ptr2 = image->comps[2].data;\r
@@ -775,7 +775,7 @@ JNIEXPORT jint JNICALL Java_org_openJpeg_OpenJPEGJavaDecoder_internalDecodeJ2Kto
                                max_value = 255;\r
                        }\r
 #endif                 \r
-                       // Get the pointer to the Java structure where the data must be copied\r
+                       /* Get the pointer to the Java structure where the data must be copied*/\r
                        fid = (*env)->GetFieldID(env, cls,"image24", "[I");\r
                        jia = (*env)->GetObjectField(env, obj, fid);\r
                        jiBody = (*env)->GetIntArrayElements(env, jia, 0);\r
@@ -804,7 +804,7 @@ JNIEXPORT jint JNICALL Java_org_openJpeg_OpenJPEGJavaDecoder_internalDecodeJ2Kto
                        }\r
                        (*env)->ReleaseIntArrayElements(env, jia, jiBody, 0);\r
 \r
-               } else {        // 1 component 8 or 16 bpp image\r
+               } else {        /* 1 component 8 or 16 bpp image*/\r
                        ptr = image->comps[0].data;\r
                        printf("C: before transfering a %d bpp image to java (length = %d)\n",image->comps[0].prec ,w*h);\r
                        if (image->comps[0].prec<=8) {\r
@@ -821,7 +821,7 @@ JNIEXPORT jint JNICALL Java_org_openJpeg_OpenJPEGJavaDecoder_internalDecodeJ2Kto
                                        max_value = 255;\r
                                }\r
 #endif                                                         \r
-                               //printf("C: transfering %d shorts to Java image8 pointer = %d\n", wr*hr,ptrSBody);\r
+                               /*printf("C: transfering %d shorts to Java image8 pointer = %d\n", wr*hr,ptrSBody);*/\r
                                for (i=0; i<w*h; i++) {\r
                                        tempUC = (unsigned char) (ptr[i]);\r
 #ifdef CHECK_THRESHOLDS\r
@@ -879,5 +879,5 @@ JNIEXPORT jint JNICALL Java_org_openJpeg_OpenJPEGJavaDecoder_internalDecodeJ2Kto
        }\r
        return 1; /* OK */\r
 }\r
-//end main\r
+/*end main*/\r
 \r