You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
249 lines
5.4 KiB
249 lines
5.4 KiB
/*****************************************************************************/ |
|
// 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 |
|
|
|
/*****************************************************************************/
|
|
|