X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmJpeg.cxx;h=e2b42ab883cd89d4b9cd37e03025da455d0df681;hb=b8a5842638a6d29023d5440c09b08c94b0cbcc75;hp=f0278c627bfb1f5e039d28747ccd13141032179b;hpb=9bc083b6f1fec37a7a437e07bc9c6f08d40746e4;p=gdcm.git diff --git a/src/gdcmJpeg.cxx b/src/gdcmJpeg.cxx index f0278c62..e2b42ab8 100644 --- a/src/gdcmJpeg.cxx +++ b/src/gdcmJpeg.cxx @@ -1,5 +1,5 @@ -#include - +#include "iddcmjpeg.h" +#include 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)