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/workarea/stern/camera_raw/dng_sdk/source/dng_shared.h#16 $ */ 00010 /* $DateTime: 2009/05/07 15:13:54 $ */ 00011 /* $Change: 562719 $ */ 00012 /* $Author: stern $ */ 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_negative.h" 00025 #include "dng_rational.h" 00026 #include "dng_string.h" 00027 #include "dng_stream.h" 00028 #include "dng_sdk_limits.h" 00029 #include "dng_types.h" 00030 #include "dng_xy_coord.h" 00031 00032 #include <vector> 00033 00034 /*****************************************************************************/ 00035 00036 class dng_camera_profile_info 00037 { 00038 00039 public: 00040 00041 bool fBigEndian; 00042 00043 uint32 fColorPlanes; 00044 00045 uint32 fCalibrationIlluminant1; 00046 uint32 fCalibrationIlluminant2; 00047 00048 dng_matrix fColorMatrix1; 00049 dng_matrix fColorMatrix2; 00050 00051 dng_matrix fForwardMatrix1; 00052 dng_matrix fForwardMatrix2; 00053 00054 dng_matrix fReductionMatrix1; 00055 dng_matrix fReductionMatrix2; 00056 00057 dng_string fProfileCalibrationSignature; 00058 00059 dng_string fProfileName; 00060 00061 dng_string fProfileCopyright; 00062 00063 uint32 fEmbedPolicy; 00064 00065 uint32 fProfileHues; 00066 uint32 fProfileSats; 00067 uint32 fProfileVals; 00068 00069 uint64 fHueSatDeltas1Offset; 00070 uint32 fHueSatDeltas1Count; 00071 00072 uint64 fHueSatDeltas2Offset; 00073 uint32 fHueSatDeltas2Count; 00074 00075 uint32 fLookTableHues; 00076 uint32 fLookTableSats; 00077 uint32 fLookTableVals; 00078 00079 uint64 fLookTableOffset; 00080 uint32 fLookTableCount; 00081 00082 uint64 fToneCurveOffset; 00083 uint32 fToneCurveCount; 00084 00085 dng_string fUniqueCameraModel; 00086 00087 public: 00088 00089 dng_camera_profile_info (); 00090 00091 ~dng_camera_profile_info (); 00092 00093 bool ParseTag (dng_stream &stream, 00094 uint32 parentCode, 00095 uint32 tagCode, 00096 uint32 tagType, 00097 uint32 tagCount, 00098 uint64 tagOffset); 00099 00100 bool ParseExtended (dng_stream &stream); 00101 00102 }; 00103 00104 /*****************************************************************************/ 00105 00106 class dng_shared 00107 { 00108 00109 public: 00110 00111 uint64 fExifIFD; 00112 uint64 fGPSInfo; 00113 uint64 fInteroperabilityIFD; 00114 uint64 fKodakDCRPrivateIFD; 00115 uint64 fKodakKDCPrivateIFD; 00116 00117 uint32 fXMPCount; 00118 uint64 fXMPOffset; 00119 00120 uint32 fIPTC_NAA_Count; 00121 uint64 fIPTC_NAA_Offset; 00122 00123 uint32 fMakerNoteCount; 00124 uint64 fMakerNoteOffset; 00125 uint32 fMakerNoteSafety; 00126 00127 uint32 fDNGVersion; 00128 uint32 fDNGBackwardVersion; 00129 00130 dng_string fUniqueCameraModel; 00131 dng_string fLocalizedCameraModel; 00132 00133 dng_camera_profile_info fCameraProfile; 00134 00135 std::vector<dng_camera_profile_info> fExtraCameraProfiles; 00136 00137 dng_matrix fCameraCalibration1; 00138 dng_matrix fCameraCalibration2; 00139 00140 dng_string fCameraCalibrationSignature; 00141 00142 dng_vector fAnalogBalance; 00143 00144 dng_vector fAsShotNeutral; 00145 00146 dng_xy_coord fAsShotWhiteXY; 00147 00148 dng_srational fBaselineExposure; 00149 dng_urational fBaselineNoise; 00150 dng_urational fNoiseReductionApplied; 00151 dng_urational fBaselineSharpness; 00152 dng_urational fLinearResponseLimit; 00153 dng_urational fShadowScale; 00154 00155 uint32 fDNGPrivateDataCount; 00156 uint64 fDNGPrivateDataOffset; 00157 00158 dng_fingerprint fRawImageDigest; 00159 00160 dng_fingerprint fRawDataUniqueID; 00161 00162 dng_string fOriginalRawFileName; 00163 00164 uint32 fOriginalRawFileDataCount; 00165 uint64 fOriginalRawFileDataOffset; 00166 00167 dng_fingerprint fOriginalRawFileDigest; 00168 00169 uint32 fAsShotICCProfileCount; 00170 uint64 fAsShotICCProfileOffset; 00171 00172 dng_matrix fAsShotPreProfileMatrix; 00173 00174 uint32 fCurrentICCProfileCount; 00175 uint64 fCurrentICCProfileOffset; 00176 00177 dng_matrix fCurrentPreProfileMatrix; 00178 00179 uint32 fColorimetricReference; 00180 00181 dng_string fAsShotProfileName; 00182 00183 dng_noise_profile fNoiseProfile; 00184 00185 public: 00186 00187 dng_shared (); 00188 00189 virtual ~dng_shared (); 00190 00191 virtual bool ParseTag (dng_stream &stream, 00192 dng_exif &exif, 00193 uint32 parentCode, 00194 bool isMainIFD, 00195 uint32 tagCode, 00196 uint32 tagType, 00197 uint32 tagCount, 00198 uint64 tagOffset, 00199 int64 offsetDelta); 00200 00201 virtual void PostParse (dng_host &host, 00202 dng_exif &exif); 00203 00204 virtual bool IsValidDNG (); 00205 00206 protected: 00207 00208 virtual bool Parse_ifd0 (dng_stream &stream, 00209 dng_exif &exif, 00210 uint32 parentCode, 00211 uint32 tagCode, 00212 uint32 tagType, 00213 uint32 tagCount, 00214 uint64 tagOffset); 00215 00216 virtual bool Parse_ifd0_exif (dng_stream &stream, 00217 dng_exif &exif, 00218 uint32 parentCode, 00219 uint32 tagCode, 00220 uint32 tagType, 00221 uint32 tagCount, 00222 uint64 tagOffset); 00223 00224 }; 00225 00226 /*****************************************************************************/ 00227 00228 #endif 00229 00230 /*****************************************************************************/ |