]> Creatis software - gdcm.git/blobdiff - src/gdcmJpeg.cxx
Header mismatch with cpp file: corrected
[gdcm.git] / src / gdcmJpeg.cxx
index f0278c627bfb1f5e039d28747ccd13141032179b..e2b42ab883cd89d4b9cd37e03025da455d0df681 100644 (file)
@@ -1,5 +1,5 @@
-#include <iddcmjpeg.h>
-       
+#include "iddcmjpeg.h"
+#include <stdlib.h>    
        
 static ClbJpeg* ClbJpegAlloc(void);
 static void    ClbJpegInit (ClbJpeg *); 
@@ -15,19 +15,23 @@ static BOOL         ClbJpegFillHuffTable(ClbJpeg *);
 
 void _IdDcmJpegFree(ClbJpeg *jpg)
 {
-        g_free(jpg->DataImg);
-        g_free(jpg);
+        free(jpg->DataImg);
+        free(jpg);
 }
 
 
 ClbJpeg * _IdDcmJpegRead (FILE * fp){
 ClbJpeg * jpg=NULL;
        jpg=ClbJpegAlloc();
-       if(!jpg) 
-               return(NULL);
+       if(!jpg) {
+          printf("Fail to ClbJpegAlloc \n");
+          return(NULL);
+       }
        ClbJpegInit (jpg); 
-       if(!ClbJpegStart(jpg, fp))
-               return (NULL);
+       if(!ClbJpegStart(jpg, fp)) {
+          printf("Fail to ClbJpegStart \n");
+          return (NULL);
+       }
        return (jpg);
 }
 
@@ -49,7 +53,7 @@ int n;
 
 static ClbJpeg *ClbJpegAlloc(void) {
 ClbJpeg * jpg;
-       jpg = (ClbJpeg *)g_malloc(sizeof(ClbJpeg));
+       jpg = (ClbJpeg *)malloc(sizeof(ClbJpeg));
        ClbJpegInit(jpg);       
 return jpg;
 }
@@ -129,9 +133,15 @@ static BOOL ClbJpegFillHuffTable(ClbJpeg *jpg)
 static BOOL ClbJpegStart(ClbJpeg *jpg, FILE *inputfp)
 {
        jpg->infp=inputfp;
-       if (!ClbJpegReadHeader(jpg)) return 0;
+       if (!ClbJpegReadHeader(jpg)) {
+          printf("Fail to ClbJpegReadHeader\n");
+          return 0;
+       }
        //printf("sortie ClbJpegReadHeader\n");
-       if (!ClbJpegDecodeData(jpg)) return 0;
+       if (!ClbJpegDecodeData(jpg)) {
+          printf("Fail to ClbJpegDecodeData\n");
+          return 0;
+       }       
        //printf("sortie ClbJpegDecodeData\n");
        return 1;
 }
@@ -155,7 +165,10 @@ static BOOL ClbJpegReadHeader(ClbJpeg *jpg)
        while(!HeaderEnd)
        {
                gr=fgetc(jpg->infp);  
-               if(gr!=0xFF) return 0;
+               if(gr!=0xFF) {
+                  printf("gr!=0xFF (=%02x)\n",gr);
+                  return 0;
+               }
                el=fgetc(jpg->infp);
 
                if ( (el==0xFF) || (el==0x01) || (el==0xD8) ||(el==0xD9) ||( (el>=0xD0) && (el<=0xD7) ))
@@ -179,11 +192,11 @@ static BOOL ClbJpegReadHeader(ClbJpeg *jpg)
                                l2=fgetc(jpg->infp);
                                jpg->lSof.Wimg=(l1*256)+l2;
 
-                               jpg->lSof.NbComponent=fgetc(jpg->infp);
+                               jpg->lSof.NbComponent=fgetc(jpg->infp); 
 
                                jpg->lSof.SofTabPos=ftell(jpg->infp);
 
-                               isLossLess=TRUE;
+                               isLossLess=1; // TRUE
                        }
 
                        if (el==0xC4)
@@ -215,7 +228,10 @@ static BOOL ClbJpegReadHeader(ClbJpeg *jpg)
                }
        }
 
-       if (!isLossLess) return 0;
+       if (!isLossLess) {
+          printf("NOT isLossLess\n");
+          return 0;
+       }
        return 1;
 
 }
@@ -268,7 +284,7 @@ static BOOL ClbJpegDecodeData(ClbJpeg *jpg)
        if (jpg->lSof.precision==16)
                mask=0xFFFF;
 
-        jpg->DataImg=(int*)g_malloc(jpg->lSof.Himg*jpg->lSof.Wimg*sizeof(*jpg->DataImg));
+        jpg->DataImg=(int*)malloc(jpg->lSof.Himg*jpg->lSof.Wimg*sizeof(*jpg->DataImg));
        memset( jpg->DataImg,0,(jpg->lSof.Himg*jpg->lSof.Wimg*sizeof(*jpg->DataImg)));
 
        if (!jpg->RestartInterval)