Program:   gdcm
   Module:    $RCSfile: gdcmFile.cxx,v $
   Language:  C++
-  Date:      $Date: 2004/10/08 17:02:53 $
-  Version:   $Revision: 1.136 $
+  Date:      $Date: 2004/10/08 17:24:54 $
+  Version:   $Revision: 1.137 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
             // Reading Fragment pixels
             res = gdcm_read_JPEG_file (fp,destination);
          }
-         else
+         else if ( Header->GetBitsStored() == 12)
          {
             // Reading Fragment pixels
             res = gdcm_read_JPEG_file12 (fp,destination);
          }
+         else
+         {
+            // other JPEG lossy not supported
+            dbg.Error(" gdcmFile::ReadPixelData : unknown jpeg lossy compression");
+            return 0;
+         }
          // ------------------------------------- endif (JPEGLossy)
       }
 
 
   Program:   gdcm
   Module:    $RCSfile: gdcmJpeg12.cxx,v $
   Language:  C++
-  Date:      $Date: 2004/10/08 04:52:55 $
-  Version:   $Revision: 1.17 $
+  Date:      $Date: 2004/10/08 17:24:54 $
+  Version:   $Revision: 1.18 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
  */
 
 extern "C" {
-#include <stdio.h>
+//#include <stdio.h>
 #include "src/jpeg/libijg12/jconfig.h"
 #include "src/jpeg/libijg12/jpeglib.h"
 //#include "jconfig12.h"
 /*
  * Here's the routine that will replace the standard error_exit method:
  */
-METHODDEF(void) my_error_exit (j_common_ptr cinfo) {
+METHODDEF(void) my_error_exit (j_common_ptr cinfo)
+{
    /* cinfo->err really points to a my_error_mgr struct, so coerce pointer */
    my_error_ptr myerr = (my_error_ptr) cinfo->err;
 
  * @return 1 on success, 0 on error
  */
  
-bool gdcmFile::gdcm_read_JPEG_file12 (FILE* fp,void* image_buffer) {
+bool gdcmFile::gdcm_read_JPEG_file12 (FILE* fp,void* image_buffer)
+{
    char *pimage;
 
    /* This struct contains the JPEG decompression parameters and pointers to
 
    /* And we're done! */
 
-   return(true);
+   return true;
 }
 
 /*
 
   Program:   gdcm
   Module:    $RCSfile: gdcmJpeg8.cxx,v $
   Language:  C++
-  Date:      $Date: 2004/10/08 04:52:55 $
-  Version:   $Revision: 1.2 $
+  Date:      $Date: 2004/10/08 17:24:54 $
+  Version:   $Revision: 1.3 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
  * @return 1 on success, 0 on error
  */
  
-bool gdcmFile::gdcm_read_JPEG_file (FILE* fp, void* image_buffer) {
+bool gdcmFile::gdcm_read_JPEG_file (FILE* fp, void* image_buffer)
+{
    char* pimage;
 
    /* This struct contains the JPEG decompression parameters and pointers to
   jerr.pub.error_exit = my_error_exit;
   
   /* Establish the setjmp return context for my_error_exit to use. */  
-  if (setjmp(jerr.setjmp_buffer)) {
+  if (setjmp(jerr.setjmp_buffer))
+  {
     /* If we get here, the JPEG code has signaled an error.
      * We need to clean up the JPEG object, close the input file, and return.
      */
 #endif //GDCM_JPG_DEBUG
    pimage=(char *)image_buffer;
   
-   while (cinfo.output_scanline < cinfo.output_height) {
+   while (cinfo.output_scanline < cinfo.output_height)
+   {
       /* jpeg_read_scanlines expects an array of pointers to scanlines.
        * Here the array is only one element long, but you could ask for
        * more than one scanline at a time if that's more convenient.
      // on ecrit directement les pixels
      // (on DEVRAIT pouvoir)
     
-    //(void) jpeg_read_scanlines(&cinfo, pimage, 1);
-    
      (void) jpeg_read_scanlines(&cinfo, buffer, 1);
       
-     if ( BITS_IN_JSAMPLE == 8) {
+     if ( BITS_IN_JSAMPLE == 8)
+     {
          memcpy( pimage, buffer[0],row_stride); 
          pimage+=row_stride;
-     } else {
+     }
+     else
+     {
          memcpy( pimage, buffer[0],row_stride*2 ); // FIXME : *2  car 16 bits?!?
          pimage+=row_stride*2;                     // FIXME : *2 car 16 bits?!?     
      }
 
    /* And we're done! */
 
-   return(true);
+   return true;
 }