diff options
Diffstat (limited to 'gpr/source/lib/dng_sdk/dng_ifd.h')
-rw-r--r-- | gpr/source/lib/dng_sdk/dng_ifd.h | 305 |
1 files changed, 305 insertions, 0 deletions
diff --git a/gpr/source/lib/dng_sdk/dng_ifd.h b/gpr/source/lib/dng_sdk/dng_ifd.h new file mode 100644 index 0000000..c0b681d --- /dev/null +++ b/gpr/source/lib/dng_sdk/dng_ifd.h @@ -0,0 +1,305 @@ +/*****************************************************************************/
+// Copyright 2006-2012 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in
+// accordance with the terms of the Adobe license agreement accompanying it.
+/*****************************************************************************/
+
+/* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_ifd.h#3 $ */
+/* $DateTime: 2012/06/05 11:05:39 $ */
+/* $Change: 833352 $ */
+/* $Author: tknoll $ */
+
+/** \file
+ * DNG image file directory support.
+ */
+
+/*****************************************************************************/
+
+#ifndef __dng_ifd__
+#define __dng_ifd__
+
+/*****************************************************************************/
+
+#include "dng_fingerprint.h"
+#include "dng_rect.h"
+#include "dng_shared.h"
+#include "dng_stream.h"
+#include "dng_string.h"
+#include "dng_sdk_limits.h"
+#include "dng_tag_values.h"
+
+/*****************************************************************************/
+
+class dng_preview_info
+ {
+
+ public:
+
+ bool fIsPrimary;
+
+ dng_string fApplicationName;
+
+ dng_string fApplicationVersion;
+
+ dng_string fSettingsName;
+
+ dng_fingerprint fSettingsDigest;
+
+ PreviewColorSpaceEnum fColorSpace;
+
+ dng_string fDateTime;
+
+ real64 fRawToPreviewGain;
+
+ uint32 fCacheVersion;
+
+ public:
+
+ dng_preview_info ();
+
+ ~dng_preview_info ();
+
+ };
+
+/*****************************************************************************/
+
+/// \brief Container for a single image file directory of a digital negative.
+///
+/// See \ref spec_dng "DNG 1.1.0 specification" for documentation of specific tags.
+
+class dng_ifd
+ {
+
+ public:
+
+ bool fUsesNewSubFileType;
+
+ uint32 fNewSubFileType;
+
+ uint32 fImageWidth;
+ uint32 fImageLength;
+
+ uint32 fBitsPerSample [kMaxSamplesPerPixel];
+
+ uint32 fCompression;
+
+ uint32 fPredictor;
+
+ uint32 fPhotometricInterpretation;
+
+ uint32 fFillOrder;
+
+ uint32 fOrientation;
+ uint32 fOrientationType;
+ uint64 fOrientationOffset;
+ bool fOrientationBigEndian;
+
+ uint32 fSamplesPerPixel;
+
+ uint32 fPlanarConfiguration;
+
+ real64 fXResolution;
+ real64 fYResolution;
+
+ uint32 fResolutionUnit;
+
+ bool fUsesStrips;
+ bool fUsesTiles;
+
+ uint32 fTileWidth;
+ uint32 fTileLength;
+
+ enum
+ {
+ kMaxTileInfo = 32
+ };
+
+ uint32 fTileOffsetsType;
+ uint32 fTileOffsetsCount;
+ uint64 fTileOffsetsOffset;
+ uint64 fTileOffset [kMaxTileInfo];
+
+ uint32 fTileByteCountsType;
+ uint32 fTileByteCountsCount;
+ uint64 fTileByteCountsOffset;
+ uint32 fTileByteCount [kMaxTileInfo];
+
+ uint32 fSubIFDsCount;
+ uint64 fSubIFDsOffset;
+
+ uint32 fExtraSamplesCount;
+ uint32 fExtraSamples [kMaxSamplesPerPixel];
+
+ uint32 fSampleFormat [kMaxSamplesPerPixel];
+
+ uint32 fJPEGTablesCount;
+ uint64 fJPEGTablesOffset;
+
+ uint64 fJPEGInterchangeFormat;
+ uint32 fJPEGInterchangeFormatLength;
+
+ real64 fYCbCrCoefficientR;
+ real64 fYCbCrCoefficientG;
+ real64 fYCbCrCoefficientB;
+
+ uint32 fYCbCrSubSampleH;
+ uint32 fYCbCrSubSampleV;
+
+ uint32 fYCbCrPositioning;
+
+ real64 fReferenceBlackWhite [6];
+
+ uint32 fCFARepeatPatternRows;
+ uint32 fCFARepeatPatternCols;
+
+ uint8 fCFAPattern [kMaxCFAPattern] [kMaxCFAPattern];
+
+ uint8 fCFAPlaneColor [kMaxColorPlanes];
+
+ uint32 fCFALayout;
+
+ uint32 fLinearizationTableType;
+ uint32 fLinearizationTableCount;
+ uint64 fLinearizationTableOffset;
+
+ uint32 fBlackLevelRepeatRows;
+ uint32 fBlackLevelRepeatCols;
+
+ real64 fBlackLevel [kMaxBlackPattern] [kMaxBlackPattern] [kMaxSamplesPerPixel];
+
+ uint32 fBlackLevelDeltaHType;
+ uint32 fBlackLevelDeltaHCount;
+ uint64 fBlackLevelDeltaHOffset;
+
+ uint32 fBlackLevelDeltaVType;
+ uint32 fBlackLevelDeltaVCount;
+ uint64 fBlackLevelDeltaVOffset;
+
+ real64 fWhiteLevel [kMaxSamplesPerPixel];
+
+ dng_urational fDefaultScaleH;
+ dng_urational fDefaultScaleV;
+
+ dng_urational fBestQualityScale;
+
+ dng_urational fDefaultCropOriginH;
+ dng_urational fDefaultCropOriginV;
+
+ dng_urational fDefaultCropSizeH;
+ dng_urational fDefaultCropSizeV;
+
+ dng_urational fDefaultUserCropT;
+ dng_urational fDefaultUserCropL;
+ dng_urational fDefaultUserCropB;
+ dng_urational fDefaultUserCropR;
+
+ uint32 fBayerGreenSplit;
+
+ dng_urational fChromaBlurRadius;
+
+ dng_urational fAntiAliasStrength;
+
+ dng_rect fActiveArea;
+
+ uint32 fMaskedAreaCount;
+ dng_rect fMaskedArea [kMaxMaskedAreas];
+
+ uint32 fRowInterleaveFactor;
+
+ uint32 fSubTileBlockRows;
+ uint32 fSubTileBlockCols;
+
+ dng_preview_info fPreviewInfo;
+
+ uint32 fOpcodeList1Count;
+ uint64 fOpcodeList1Offset;
+
+ uint32 fOpcodeList2Count;
+ uint64 fOpcodeList2Offset;
+
+ uint32 fOpcodeList3Count;
+ uint64 fOpcodeList3Offset;
+
+ bool fLosslessJPEGBug16;
+
+ uint32 fSampleBitShift;
+
+ uint64 fThisIFD;
+ uint64 fNextIFD;
+
+ int32 fCompressionQuality;
+
+ bool fPatchFirstJPEGByte;
+
+ public:
+
+ dng_ifd ();
+
+ virtual ~dng_ifd ();
+
+ virtual bool ParseTag (dng_stream &stream,
+ uint32 parentCode,
+ uint32 tagCode,
+ uint32 tagType,
+ uint32 tagCount,
+ uint64 tagOffset);
+
+ virtual void PostParse ();
+
+ virtual bool IsValidDNG (dng_shared &shared,
+ uint32 parentCode);
+
+ dng_rect Bounds () const
+ {
+ return dng_rect (0,
+ 0,
+ fImageLength,
+ fImageWidth);
+ }
+
+ uint32 TilesAcross () const;
+
+ uint32 TilesDown () const;
+
+ uint32 TilesPerImage () const;
+
+ dng_rect TileArea (uint32 rowIndex,
+ uint32 colIndex) const;
+
+ virtual uint32 TileByteCount (const dng_rect &tile) const;
+
+ void SetSingleStrip ();
+
+ void FindTileSize (uint32 bytesPerTile = 128 * 1024,
+ uint32 cellH = 16,
+ uint32 cellV = 16);
+
+ void FindStripSize (uint32 bytesPerStrip = 128 * 1024,
+ uint32 cellV = 16);
+
+ virtual uint32 PixelType () const;
+
+ virtual bool IsBaselineJPEG () const;
+
+ virtual bool CanRead () const;
+
+ virtual void ReadImage (dng_host &host,
+ dng_stream &stream,
+ dng_image &image,
+ dng_jpeg_image *jpegImage = NULL,
+ dng_fingerprint *jpegDigest = NULL) const;
+
+ protected:
+
+ virtual bool IsValidCFA (dng_shared &shared,
+ uint32 parentCode);
+
+ };
+
+/*****************************************************************************/
+
+#endif
+
+/*****************************************************************************/
|