DocumentationOverviewBuilding ASL Documentation Library Wiki Docs Indices Browse Perforce More InfoRelease NotesWiki Site Search License Success Stories Contributors MediaDownloadPerforce Depots SupportASL SourceForge HomeMailing Lists Discussion Forums Report Bugs Suggest Features Contribute to ASL RSSShort-text newsFull-text news File releases Other Adobe ProjectsAdobe AirAdobe GIL Adobe Labs Adobe Media Gallery Adobe XMP Tamarin project (Mozilla Foundation) Other ResourcesBoostRIAForge SGI STL |
dng_shared.h00001 /*****************************************************************************/ 00002 // Copyright 2006-2008 Adobe Systems Incorporated 00003 // All Rights Reserved. 00004 // 00005 // NOTICE: Adobe permits you to use, modify, and distribute this file in 00006 // accordance with the terms of the Adobe license agreement accompanying it. 00007 /*****************************************************************************/ 00008 00009 /* $Id: //mondo/dng_sdk_1_2/dng_sdk/source/dng_shared.h#1 $ */ 00010 /* $DateTime: 2008/03/09 14:29:54 $ */ 00011 /* $Change: 431850 $ */ 00012 /* $Author: tknoll $ */ 00013 00014 /*****************************************************************************/ 00015 00016 #ifndef __dng_shared__ 00017 #define __dng_shared__ 00018 00019 /*****************************************************************************/ 00020 00021 #include "dng_classes.h" 00022 #include "dng_fingerprint.h" 00023 #include "dng_matrix.h" 00024 #include "dng_rational.h" 00025 #include "dng_string.h" 00026 #include "dng_stream.h" 00027 #include "dng_sdk_limits.h" 00028 #include "dng_types.h" 00029 #include "dng_xy_coord.h" 00030 00031 #include <vector> 00032 00033 /*****************************************************************************/ 00034 00035 class dng_camera_profile_info 00036 { 00037 00038 public: 00039 00040 bool fBigEndian; 00041 00042 uint32 fColorPlanes; 00043 00044 uint32 fCalibrationIlluminant1; 00045 uint32 fCalibrationIlluminant2; 00046 00047 dng_matrix fColorMatrix1; 00048 dng_matrix fColorMatrix2; 00049 00050 dng_matrix fForwardMatrix1; 00051 dng_matrix fForwardMatrix2; 00052 00053 dng_matrix fReductionMatrix1; 00054 dng_matrix fReductionMatrix2; 00055 00056 dng_string fProfileCalibrationSignature; 00057 00058 dng_string fProfileName; 00059 00060 dng_string fProfileCopyright; 00061 00062 uint32 fEmbedPolicy; 00063 00064 uint32 fProfileHues; 00065 uint32 fProfileSats; 00066 uint32 fProfileVals; 00067 00068 uint64 fHueSatDeltas1Offset; 00069 uint32 fHueSatDeltas1Count; 00070 00071 uint64 fHueSatDeltas2Offset; 00072 uint32 fHueSatDeltas2Count; 00073 00074 uint64 fToneCurveOffset; 00075 uint32 fToneCurveCount; 00076 00077 dng_string fUniqueCameraModel; 00078 00079 public: 00080 00081 dng_camera_profile_info (); 00082 00083 ~dng_camera_profile_info (); 00084 00085 bool ParseTag (dng_stream &stream, 00086 uint32 parentCode, 00087 uint32 tagCode, 00088 uint32 tagType, 00089 uint32 tagCount, 00090 uint64 tagOffset); 00091 00092 bool ParseExtended (dng_stream &stream); 00093 00094 }; 00095 00096 /*****************************************************************************/ 00097 00098 class dng_shared 00099 { 00100 00101 public: 00102 00103 uint64 fExifIFD; 00104 uint64 fGPSInfo; 00105 uint64 fInteroperabilityIFD; 00106 uint64 fKodakDCRPrivateIFD; 00107 uint64 fKodakKDCPrivateIFD; 00108 00109 uint32 fXMPCount; 00110 uint64 fXMPOffset; 00111 00112 uint32 fIPTC_NAA_Count; 00113 uint64 fIPTC_NAA_Offset; 00114 00115 uint32 fMakerNoteCount; 00116 uint64 fMakerNoteOffset; 00117 uint32 fMakerNoteSafety; 00118 00119 uint32 fDNGVersion; 00120 uint32 fDNGBackwardVersion; 00121 00122 dng_string fUniqueCameraModel; 00123 dng_string fLocalizedCameraModel; 00124 00125 dng_camera_profile_info fCameraProfile; 00126 00127 std::vector<dng_camera_profile_info> fExtraCameraProfiles; 00128 00129 dng_matrix fCameraCalibration1; 00130 dng_matrix fCameraCalibration2; 00131 00132 dng_string fCameraCalibrationSignature; 00133 00134 dng_vector fAnalogBalance; 00135 00136 dng_vector fAsShotNeutral; 00137 00138 dng_xy_coord fAsShotWhiteXY; 00139 00140 dng_srational fBaselineExposure; 00141 dng_urational fBaselineNoise; 00142 dng_urational fNoiseReductionApplied; 00143 dng_urational fBaselineSharpness; 00144 dng_urational fLinearResponseLimit; 00145 dng_urational fShadowScale; 00146 00147 uint32 fDNGPrivateDataCount; 00148 uint64 fDNGPrivateDataOffset; 00149 00150 dng_fingerprint fRawImageDigest; 00151 00152 dng_fingerprint fRawDataUniqueID; 00153 00154 dng_string fOriginalRawFileName; 00155 00156 uint32 fOriginalRawFileDataCount; 00157 uint64 fOriginalRawFileDataOffset; 00158 00159 dng_fingerprint fOriginalRawFileDigest; 00160 00161 uint32 fAsShotICCProfileCount; 00162 uint64 fAsShotICCProfileOffset; 00163 00164 dng_matrix fAsShotPreProfileMatrix; 00165 00166 uint32 fCurrentICCProfileCount; 00167 uint64 fCurrentICCProfileOffset; 00168 00169 dng_matrix fCurrentPreProfileMatrix; 00170 00171 uint32 fColorimetricReference; 00172 00173 dng_string fAsShotProfileName; 00174 00175 public: 00176 00177 dng_shared (); 00178 00179 virtual ~dng_shared (); 00180 00181 virtual bool ParseTag (dng_stream &stream, 00182 dng_exif &exif, 00183 uint32 parentCode, 00184 bool isMainIFD, 00185 uint32 tagCode, 00186 uint32 tagType, 00187 uint32 tagCount, 00188 uint64 tagOffset, 00189 int64 offsetDelta); 00190 00191 virtual void PostParse (dng_host &host, 00192 dng_exif &exif); 00193 00194 virtual bool IsValidDNG (); 00195 00196 protected: 00197 00198 virtual bool Parse_ifd0 (dng_stream &stream, 00199 dng_exif &exif, 00200 uint32 parentCode, 00201 uint32 tagCode, 00202 uint32 tagType, 00203 uint32 tagCount, 00204 uint64 tagOffset); 00205 00206 virtual bool Parse_ifd0_exif (dng_stream &stream, 00207 dng_exif &exif, 00208 uint32 parentCode, 00209 uint32 tagCode, 00210 uint32 tagType, 00211 uint32 tagCount, 00212 uint64 tagOffset); 00213 00214 }; 00215 00216 /*****************************************************************************/ 00217 00218 #endif 00219 00220 /*****************************************************************************/ | |||
