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_info.hGo to the documentation of this file.00001 /*****************************************************************************/ 00002 // Copyright 2006-2007 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_info.h#8 $ */ 00010 /* $DateTime: 2007/12/10 20:35:54 $ */ 00011 /* $Change: 404775 $ */ 00012 /* $Author: stern $ */ 00013 00018 /*****************************************************************************/ 00019 00020 #ifndef __dng_info__ 00021 #define __dng_info__ 00022 00023 /*****************************************************************************/ 00024 00025 #include "dng_classes.h" 00026 #include "dng_ifd.h" 00027 #include "dng_exif.h" 00028 #include "dng_shared.h" 00029 #include "dng_errors.h" 00030 #include "dng_sdk_limits.h" 00031 #include "dng_auto_ptr.h" 00032 00033 /*****************************************************************************/ 00034 00038 00039 class dng_info 00040 { 00041 00042 public: 00043 00044 uint64 fTIFFBlockOffset; 00045 00046 uint64 fTIFFBlockOriginalOffset; 00047 00048 bool fBigEndian; 00049 00050 uint32 fMagic; 00051 00052 AutoPtr<dng_exif> fExif; 00053 00054 AutoPtr<dng_shared> fShared; 00055 00056 int32 fMainIndex; 00057 00058 uint32 fIFDCount; 00059 00060 AutoPtr<dng_ifd> fIFD [kMaxSubIFDs + 1]; 00061 00062 uint32 fChainedIFDCount; 00063 00064 AutoPtr<dng_ifd> fChainedIFD [kMaxChainedIFDs]; 00065 00066 protected: 00067 00068 uint32 fMakerNoteNextIFD; 00069 00070 public: 00071 00072 dng_info (); 00073 00074 virtual ~dng_info (); 00075 00079 00080 virtual void Parse (dng_host &host, 00081 dng_stream &stream); 00082 00084 00085 virtual void PostParse (dng_host &host); 00086 00089 00090 virtual bool IsValidDNG (); 00091 00092 protected: 00093 00094 virtual void ValidateMagic (); 00095 00096 virtual void ParseTag (dng_host &host, 00097 dng_stream &stream, 00098 dng_exif *exif, 00099 dng_shared *shared, 00100 dng_ifd *ifd, 00101 uint32 parentCode, 00102 uint32 tagCode, 00103 uint32 tagType, 00104 uint32 tagCount, 00105 uint64 tagOffset, 00106 int64 offsetDelta); 00107 00108 virtual bool ValidateIFD (dng_stream &stream, 00109 uint64 ifdOffset, 00110 int64 offsetDelta); 00111 00112 virtual void ParseIFD (dng_host &host, 00113 dng_stream &stream, 00114 dng_exif *exif, 00115 dng_shared *shared, 00116 dng_ifd *ifd, 00117 uint64 ifdOffset, 00118 int64 offsetDelta, 00119 uint32 parentCode); 00120 00121 virtual bool ParseMakerNoteIFD (dng_host &host, 00122 dng_stream &stream, 00123 uint64 ifdSize, 00124 uint64 ifdOffset, 00125 int64 offsetDelta, 00126 uint64 minOffset, 00127 uint64 maxOffset, 00128 uint32 parentCode); 00129 00130 virtual void ParseMakerNote (dng_host &host, 00131 dng_stream &stream, 00132 uint32 makerNoteCount, 00133 uint64 makerNoteOffset, 00134 int64 offsetDelta, 00135 uint64 minOffset, 00136 uint64 maxOffset); 00137 00138 virtual void ParseSonyPrivateData (dng_host &host, 00139 dng_stream &stream, 00140 uint32 count, 00141 uint64 oldOffset, 00142 uint64 newOffset); 00143 00144 virtual void ParseDNGPrivateData (dng_host &host, 00145 dng_stream &stream); 00146 00147 private: 00148 00149 // Hidden copy constructor and assignment operator. 00150 00151 dng_info (const dng_info &info); 00152 00153 dng_info & operator= (const dng_info &info); 00154 00155 }; 00156 00157 /*****************************************************************************/ 00158 00159 #endif 00160 00161 /*****************************************************************************/ |