Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

djdijg8.h

00001 /*
00002  *
00003  *  Copyright (C) 1997-2001, OFFIS
00004  *
00005  *  This software and supporting documentation were developed by
00006  *
00007  *    Kuratorium OFFIS e.V.
00008  *    Healthcare Information and Communication Systems
00009  *    Escherweg 2
00010  *    D-26121 Oldenburg, Germany
00011  *
00012  *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND OFFIS MAKES NO  WARRANTY
00013  *  REGARDING  THE  SOFTWARE,  ITS  PERFORMANCE,  ITS  MERCHANTABILITY  OR
00014  *  FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES  OR
00015  *  ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND
00016  *  PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
00017  *
00018  *  Module:  dcmjpeg
00019  *
00020  *  Author:  Norbert Olges, Marco Eichelberg
00021  *
00022  *  Purpose: decompression routines of the IJG JPEG library configured for 8 bits/sample. 
00023  *
00024  *  Last Update:      $Author: meichel $
00025  *  Update Date:      $Date: 2001/11/19 15:13:28 $
00026  *  Source File:      $Source: /share/dicom/cvs-depot/dcmtk/dcmjpeg/include/djdijg8.h,v $
00027  *  CVS/RCS Revision: $Revision: 1.2 $
00028  *  Status:           $State: Exp $
00029  *
00030  *  CVS/RCS Log at end of file
00031  *
00032  */
00033 
00034 #ifndef DJDIJG8_H
00035 #define DJDIJG8_H
00036 
00037 #include "osconfig.h"
00038 #include "djdecabs.h" /* for class DJDecoder */
00039 
00040 extern "C"
00041 {
00042   struct jpeg_decompress_struct;
00043 }
00044 
00045 class DJCodecParameter;
00046 
00050 class DJDecompressIJG8Bit : public DJDecoder
00051 {
00052 public:
00053 
00058   DJDecompressIJG8Bit(const DJCodecParameter& cp, OFBool isYBR);
00059 
00061   virtual ~DJDecompressIJG8Bit();
00062 
00067   virtual OFCondition init();
00068 
00080   virtual OFCondition decode(
00081     Uint8 *compressedFrameBuffer,
00082     Uint32 compressedFrameBufferSize,
00083     Uint8 *uncompressedFrameBuffer,
00084     Uint32 uncompressedFrameBufferSize);
00085 
00088   virtual Uint16 bytesPerSample() const
00089   {
00090     return sizeof(Uint8);
00091   }
00092 
00096   virtual EP_Interpretation getDecompressedColorModel() const
00097   {
00098     return decompressedColorModel;
00099   }
00100 
00104   virtual void outputMessage() const;
00105 
00106 private:
00107 
00109   DJDecompressIJG8Bit(const DJDecompressIJG8Bit&);
00110 
00112   DJDecompressIJG8Bit& operator=(const DJDecompressIJG8Bit&);
00113   
00115   void cleanup();
00116 
00118   const DJCodecParameter *cparam;
00119 
00121   jpeg_decompress_struct *cinfo;
00122 
00124   int suspension;
00125   
00127   void *jsampBuffer;
00128 
00130   OFBool dicomPhotometricInterpretationIsYCbCr;
00131 
00133   EP_Interpretation decompressedColorModel;
00134 
00135 };
00136 
00137 #endif
00138 
00139 /*
00140  * CVS/RCS Log
00141  * $Log: djdijg8.h,v $
00142  * Revision 1.2  2001/11/19 15:13:28  meichel
00143  * Introduced verbose mode in module dcmjpeg. If enabled, warning
00144  *   messages from the IJG library are printed on ofConsole, otherwise
00145  *   the library remains quiet.
00146  *
00147  * Revision 1.1  2001/11/13 15:56:23  meichel
00148  * Initial release of module dcmjpeg
00149  *
00150  *
00151  */


Generated on 8 Dec 2004 for OFFIS DCMTK Version 3.5.3 by Doxygen 1.3.9.1