| /*****************************************************************************/ |
| // Copyright 2006-2008 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_shared.h#1 $ */ |
| /* $DateTime: 2012/05/30 13:28:51 $ */ |
| /* $Change: 832332 $ */ |
| /* $Author: tknoll $ */ |
| |
| /*****************************************************************************/ |
| |
| #ifndef __dng_shared__ |
| #define __dng_shared__ |
| |
| /*****************************************************************************/ |
| |
| #include "dng_classes.h" |
| #include "dng_fingerprint.h" |
| #include "dng_matrix.h" |
| #include "dng_memory.h" |
| #include "dng_negative.h" |
| #include "dng_rational.h" |
| #include "dng_string.h" |
| #include "dng_stream.h" |
| #include "dng_sdk_limits.h" |
| #include "dng_types.h" |
| #include "dng_xy_coord.h" |
| |
| #include <vector> |
| |
| /*****************************************************************************/ |
| |
| class dng_camera_profile_info |
| { |
| |
| public: |
| |
| bool fBigEndian; |
| |
| uint32 fColorPlanes; |
| |
| uint32 fCalibrationIlluminant1; |
| uint32 fCalibrationIlluminant2; |
| |
| dng_matrix fColorMatrix1; |
| dng_matrix fColorMatrix2; |
| |
| dng_matrix fForwardMatrix1; |
| dng_matrix fForwardMatrix2; |
| |
| dng_matrix fReductionMatrix1; |
| dng_matrix fReductionMatrix2; |
| |
| dng_string fProfileCalibrationSignature; |
| |
| dng_string fProfileName; |
| |
| dng_string fProfileCopyright; |
| |
| uint32 fEmbedPolicy; |
| |
| uint32 fProfileHues; |
| uint32 fProfileSats; |
| uint32 fProfileVals; |
| |
| uint64 fHueSatDeltas1Offset; |
| uint32 fHueSatDeltas1Count; |
| |
| uint64 fHueSatDeltas2Offset; |
| uint32 fHueSatDeltas2Count; |
| |
| uint32 fHueSatMapEncoding; |
| |
| uint32 fLookTableHues; |
| uint32 fLookTableSats; |
| uint32 fLookTableVals; |
| |
| uint64 fLookTableOffset; |
| uint32 fLookTableCount; |
| |
| uint32 fLookTableEncoding; |
| |
| dng_srational fBaselineExposureOffset; |
| |
| uint32 fDefaultBlackRender; |
| |
| uint64 fToneCurveOffset; |
| uint32 fToneCurveCount; |
| |
| dng_string fUniqueCameraModel; |
| |
| public: |
| |
| dng_camera_profile_info (); |
| |
| ~dng_camera_profile_info (); |
| |
| bool ParseTag (dng_stream &stream, |
| uint32 parentCode, |
| uint32 tagCode, |
| uint32 tagType, |
| uint32 tagCount, |
| uint64 tagOffset); |
| |
| bool ParseExtended (dng_stream &stream); |
| |
| }; |
| |
| /*****************************************************************************/ |
| |
| class dng_shared |
| { |
| |
| public: |
| |
| uint64 fExifIFD; |
| uint64 fGPSInfo; |
| uint64 fInteroperabilityIFD; |
| uint64 fKodakDCRPrivateIFD; |
| uint64 fKodakKDCPrivateIFD; |
| |
| uint32 fXMPCount; |
| uint64 fXMPOffset; |
| |
| uint32 fIPTC_NAA_Count; |
| uint64 fIPTC_NAA_Offset; |
| |
| uint32 fMakerNoteCount; |
| uint64 fMakerNoteOffset; |
| uint32 fMakerNoteSafety; |
| |
| uint32 fDNGVersion; |
| uint32 fDNGBackwardVersion; |
| |
| dng_string fUniqueCameraModel; |
| dng_string fLocalizedCameraModel; |
| |
| dng_camera_profile_info fCameraProfile; |
| |
| dng_std_vector<dng_camera_profile_info> fExtraCameraProfiles; |
| |
| dng_matrix fCameraCalibration1; |
| dng_matrix fCameraCalibration2; |
| |
| dng_string fCameraCalibrationSignature; |
| |
| dng_vector fAnalogBalance; |
| |
| dng_vector fAsShotNeutral; |
| |
| dng_xy_coord fAsShotWhiteXY; |
| |
| dng_srational fBaselineExposure; |
| dng_urational fBaselineNoise; |
| dng_urational fNoiseReductionApplied; |
| dng_urational fBaselineSharpness; |
| dng_urational fLinearResponseLimit; |
| dng_urational fShadowScale; |
| |
| bool fHasBaselineExposure; |
| bool fHasShadowScale; |
| |
| uint32 fDNGPrivateDataCount; |
| uint64 fDNGPrivateDataOffset; |
| |
| dng_fingerprint fRawImageDigest; |
| dng_fingerprint fNewRawImageDigest; |
| |
| dng_fingerprint fRawDataUniqueID; |
| |
| dng_string fOriginalRawFileName; |
| |
| uint32 fOriginalRawFileDataCount; |
| uint64 fOriginalRawFileDataOffset; |
| |
| dng_fingerprint fOriginalRawFileDigest; |
| |
| uint32 fAsShotICCProfileCount; |
| uint64 fAsShotICCProfileOffset; |
| |
| dng_matrix fAsShotPreProfileMatrix; |
| |
| uint32 fCurrentICCProfileCount; |
| uint64 fCurrentICCProfileOffset; |
| |
| dng_matrix fCurrentPreProfileMatrix; |
| |
| uint32 fColorimetricReference; |
| |
| dng_string fAsShotProfileName; |
| |
| dng_noise_profile fNoiseProfile; |
| |
| dng_point fOriginalDefaultFinalSize; |
| dng_point fOriginalBestQualityFinalSize; |
| |
| dng_urational fOriginalDefaultCropSizeH; |
| dng_urational fOriginalDefaultCropSizeV; |
| |
| public: |
| |
| dng_shared (); |
| |
| virtual ~dng_shared (); |
| |
| virtual bool ParseTag (dng_stream &stream, |
| dng_exif &exif, |
| uint32 parentCode, |
| bool isMainIFD, |
| uint32 tagCode, |
| uint32 tagType, |
| uint32 tagCount, |
| uint64 tagOffset, |
| int64 offsetDelta); |
| |
| virtual void PostParse (dng_host &host, |
| dng_exif &exif); |
| |
| virtual bool IsValidDNG (); |
| |
| protected: |
| |
| virtual bool Parse_ifd0 (dng_stream &stream, |
| dng_exif &exif, |
| uint32 parentCode, |
| uint32 tagCode, |
| uint32 tagType, |
| uint32 tagCount, |
| uint64 tagOffset); |
| |
| virtual bool Parse_ifd0_exif (dng_stream &stream, |
| dng_exif &exif, |
| uint32 parentCode, |
| uint32 tagCode, |
| uint32 tagType, |
| uint32 tagCount, |
| uint64 tagOffset); |
| |
| }; |
| |
| /*****************************************************************************/ |
| |
| #endif |
| |
| /*****************************************************************************/ |