]> Creatis software - gdcm.git/blobdiff - src/gdcmjpegls/Decoder/decoder.c
Add some comments on the 'Patient Position'
[gdcm.git] / src / gdcmjpegls / Decoder / decoder.c
index 0343c0899e135239214917f34775026945651cb9..463fa8d43df4a73f52d2dd5a7c08fc50d40625ee 100644 (file)
@@ -118,8 +118,8 @@ int     alpha,     /* alphabet size */
 int     highmask;
 #endif
 
-void usage();
 
+void usage();
 
 
 
@@ -127,7 +127,6 @@ void usage();
 /* Write one row of pixel values */
 inline void write_one_line(pixel* line, int cols, FILE* outfile)
 {
-
   int i, index;
   unsigned int* maptable;
       
@@ -139,7 +138,7 @@ inline void write_one_line(pixel* line, int cols, FILE* outfile)
       line8 = (unsigned char*)safealloc(cols);
   
       for (i=0; i< cols; i++)
-        *(line8+i)=ENDIAN8(*(line+i));
+        *(line8+i)=(unsigned char)ENDIAN8(*(line+i));
     
       fwrite(line8, sizeof(unsigned char), cols, outfile);
 
@@ -227,7 +226,8 @@ inline void write_one_line(pixel* line, int cols, FILE* outfile)
 
 
 
-void initbuffers(int multi, int comp) {
+void initbuffers(int multi, int comp)
+{
 
   int  i;
 
@@ -282,25 +282,26 @@ void c_swaplines(int i)
   c_cscanline[i] = c_cscanl0[i] + (LEFTMARGIN-1);
 }
 
-void closebuffers(int multi) {
+void closebuffers(int multi)
+{
 
-  int     i;
+  int i;
 
   fclose(in);
   if (multi==0)
-     fclose(out);
-        else
-           for (i=0;i<components;i++)
-         fclose(c_out[i]);
+    fclose(out);
+  else
+    for (i=0;i<components;i++)
+      fclose(c_out[i]);
 
-        free(pscanl0);
-        free(cscanl0);
+  free(pscanl0);
+  free(cscanl0);
 }
 
 
-
-
-int initialize(int argc, char *argv[]) {
+/* command line argument parsing */
+int initialize(int argc, char *argv[])
+{
   char *infilename = NULL,
     *outfilename = OUTFILE ".out",
     *c_outfilename[MAX_COMPONENTS],
@@ -315,7 +316,7 @@ int initialize(int argc, char *argv[]) {
   int pos;   /* position in the file, after the header */
 
   for (i=0;i<MAX_COMPONENTS;i++) {
-    c_outfilename[i]=malloc(strlen(OUTFILE)+20);
+    c_outfilename[i]=(char*)malloc(strlen(OUTFILE)+20);
     sprintf(c_outfilename[i],"%s%d.out",OUTFILE,i+1);
   }
 
@@ -875,6 +876,7 @@ int main (int argc, char *argv[]) {
     tot_out = 0;
   pixel *local_scanl0,*local_scanl1,*local_pscanline,*local_cscanline;
   int MCUs_counted;
+  local_cscanline = local_pscanline = NULL;
   
   
   /* Parse the parameters, initialize */
@@ -1464,9 +1466,9 @@ int main (int argc, char *argv[]) {
 
 
   t1 = get_utime();
-  fprintf(msgfile,"Total bits  in: %ld  Symbols out: %ld  %5.3lf bps\n",
+  fprintf(msgfile,"Total bits  in: %ld  Symbols out: %ld  %5.3f bps\n",
            tot_in,tot_out,tot_in/(double)tot_out);
-  fprintf(msgfile,"Time = %1.3lf secs : %1.0lf KSymbols/sec\n",t1-t0,
+  fprintf(msgfile,"Time = %1.3f secs : %1.0f KSymbols/sec\n",t1-t0,
           (tot_out)/(1024*(t1-t0)));
 
   if ( found_EOF )
@@ -1481,33 +1483,33 @@ int main (int argc, char *argv[]) {
 void usage()
 {
   fprintf(stderr,"Usage: %s [flags] [infile] [outfile1 [outfile2, ...]]\n\
-DEFAULTS:\n\
-infile   = %s.\n\
-outfile1 = %s for color image in a single (PPM) output file.\n\
-outfile1 = %s for monochrome image in a single (PGM) output file.\n\
-outfile[1,2,...] = %s for multiple (PGM) output files \n\
-     in plane or line interleaved modes.\n",
+    DEFAULTS:\n\
+    infile   = %s.\n\
+    outfile1 = %s for color image in a single (PPM) output file.\n\
+    outfile1 = %s for monochrome image in a single (PGM) output file.\n\
+    outfile[1,2,...] = %s for multiple (PGM) output files \n\
+    in plane or line interleaved modes.\n",
     "locod", "specified JLS file", OUTFILE ".out", 
     OUTFILE "1.out",
     OUTFILE "[1,2,...].out");
-fprintf(stderr,"FLAGS:\n\
-outfile2, ... : Multiple output specification for plane or line int. mode.\n\
--i<infile>    : Alternate input specification, use -i- for stdin.\n\
--o<outfile>   : Alternate output specification, use -o- for stdout.\n\
--P            : Generate single (.ppm) output file for sample/line int. mode.\n\
-");
-    fprintf(stderr,"\
--h            : Print this help.\n\
-*** No spaces allowed between a flag and its argument.\n\
-");
+  fprintf(stderr,"FLAGS:\n\
+    outfile2, ... : Multiple output specification for plane or line int. mode.\n\
+    -i<infile>    : Alternate input specification, use -i- for stdin.\n\
+    -o<outfile>   : Alternate output specification, use -o- for stdout.\n\
+    -P            : Generate single (.ppm) output file for sample/line int. mode.\n\
+    ");
+  fprintf(stderr,"\
+    -h            : Print this help.\n\
+    *** No spaces allowed between a flag and its argument.\n\
+    ");
   
 }
 
 
 void bad_flag(char *s)
 {
-    fprintf(stderr,"Bad flag %s\n",s);
-    usage();
-    exit(10);
+  fprintf(stderr,"Bad flag %s\n",s);
+  usage();
+  exit(10);
 }