/usr/include/dcmtk/dcmjpeg/djdijg8.h is in libdcmtk2-dev 3.6.0-15.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | /*
*
* Copyright (C) 1997-2010, OFFIS e.V.
* All rights reserved. See COPYRIGHT file for details.
*
* This software and supporting documentation were developed by
*
* OFFIS e.V.
* R&D Division Health
* Escherweg 2
* D-26121 Oldenburg, Germany
*
*
* Module: dcmjpeg
*
* Author: Norbert Olges, Marco Eichelberg
*
* Purpose: decompression routines of the IJG JPEG library configured for 8 bits/sample.
*
* Last Update: $Author: joergr $
* Update Date: $Date: 2010-10-14 13:17:17 $
* CVS/RCS Revision: $Revision: 1.6 $
* Status: $State: Exp $
*
* CVS/RCS Log at end of file
*
*/
#ifndef DJDIJG8_H
#define DJDIJG8_H
#include "dcmtk/config/osconfig.h"
#include "dcmtk/dcmjpeg/djdecabs.h" /* for class DJDecoder */
extern "C"
{
struct jpeg_decompress_struct;
}
class DJCodecParameter;
/** this class encapsulates the decompression routines of the
* IJG JPEG library configured for 8 bits/sample.
*/
class DJDecompressIJG8Bit : public DJDecoder
{
public:
/** constructor
* @param cp codec parameters
* @param isYBR flag indicating if DICOM photometric interpretation is YCbCr
*/
DJDecompressIJG8Bit(const DJCodecParameter& cp, OFBool isYBR);
/// destructor
virtual ~DJDecompressIJG8Bit();
/** initializes internal object structures.
* Must be called before a new frame is decompressed.
* @return EC_Normal if successful, an error code otherwise
*/
virtual OFCondition init();
/** suspended decompression routine. Decompresses a JPEG frame
* until finished or out of data. Can be called with new data
* until a frame is complete.
* @param compressedFrameBuffer pointer to compressed input data, must not be NULL
* @param compressedFrameBufferSize size of buffer, in bytes
* @param uncompressedFrameBuffer pointer to uncompressed output data, must not be NULL.
* This buffer must not change between multiple decode() calls for a single frame.
* @param uncompressedFrameBufferSize size of buffer, in bytes (!)
* Buffer must be large enough to contain a complete frame.
* @param isSigned OFTrue, if uncompressed pixel data is signed, OFFalse otherwise
* @return EC_Normal if successful, EC_Suspend if more data is needed, an error code otherwise.
*/
virtual OFCondition decode(
Uint8 *compressedFrameBuffer,
Uint32 compressedFrameBufferSize,
Uint8 *uncompressedFrameBuffer,
Uint32 uncompressedFrameBufferSize,
OFBool isSigned);
/** returns the number of bytes per sample that will be written when decoding.
*/
virtual Uint16 bytesPerSample() const
{
return sizeof(Uint8);
}
/** after successful compression,
* returns the color model of the decompressed image
*/
virtual EP_Interpretation getDecompressedColorModel() const
{
return decompressedColorModel;
}
/** callback function used to report warning messages and the like.
* Should not be called by user code directly.
* @param msg_level -1 for warnings, 0 and above for trace messages
*/
virtual void emitMessage(int msg_level) const;
private:
/// private undefined copy constructor
DJDecompressIJG8Bit(const DJDecompressIJG8Bit&);
/// private undefined copy assignment operator
DJDecompressIJG8Bit& operator=(const DJDecompressIJG8Bit&);
/// cleans up cinfo structure, called from destructor and error handlers
void cleanup();
/// codec parameters
const DJCodecParameter *cparam;
/// decompression structure
jpeg_decompress_struct *cinfo;
/// position of last suspend
int suspension;
/// temporary storage for row buffer during suspension
void *jsampBuffer;
/// Flag indicating if DICOM photometric interpretation is YCbCr
OFBool dicomPhotometricInterpretationIsYCbCr;
/// color model after decompression
EP_Interpretation decompressedColorModel;
};
#endif
/*
* CVS/RCS Log
* $Log: djdijg8.h,v $
* Revision 1.6 2010-10-14 13:17:17 joergr
* Updated copyright header. Added reference to COPYRIGHT file.
*
* Revision 1.5 2009-11-18 16:17:54 uli
* Use more than just the INFO log level.
*
* Revision 1.4 2005-12-08 16:59:24 meichel
* Changed include path schema for all DCMTK header files
*
* Revision 1.3 2005/11/30 14:08:57 onken
* Added check to decline automatic IJG color space conversion of signed pixel
* data, because IJG lib only handles unsigned input for conversions.
*
* Revision 1.2 2001/11/19 15:13:28 meichel
* Introduced verbose mode in module dcmjpeg. If enabled, warning
* messages from the IJG library are printed on ofConsole, otherwise
* the library remains quiet.
*
* Revision 1.1 2001/11/13 15:56:23 meichel
* Initial release of module dcmjpeg
*
*
*/
|