23 #ifndef _MRW_CONTAINER_H__
24 #define _MRW_CONTAINER_H__
27 #include <boost/config.hpp>
28 #include <boost/shared_ptr.hpp>
30 #include "ifdfilecontainer.h"
41 const int DataBlockHeaderLength = 8;
48 typedef boost::shared_ptr<DataBlock> Ref;
49 typedef std::vector<Ref> RefVec;
80 return std::string(
id);
95 std::string string_val(off_t
offset);
118 PRD_SENSOR_LENGTH = 8,
119 PRD_SENSOR_WIDTH = 10,
120 PRD_IMAGE_LENGTH = 12,
121 PRD_IMAGE_WIDTH = 14,
124 PRD_STORAGE_TYPE = 18,
127 PRD_BAYER_PATTERN = 22
131 STORAGE_TYPE_UNPACKED = 0x52,
132 STORAGE_TYPE_PACKED = 0x59
136 BAYER_PATTERN_RGGB = 0x0001,
137 BAYER_PATTERN_GBRG = 0x0004
143 WBG_DENOMINATOR_R = 0,
144 WBG_DENOMINATOR_G1 = 1,
145 WBG_DENOMINATOR_G2 = 2,
146 WBG_DENOMINATOR_B = 3,
148 WBG_NOMINATOR_G1 = 6,
149 WBG_NOMINATOR_G2 = 8,
160 RIF_WHITE_BALANCE = 4,
161 RIF_SUBJECT_PROGRAM = 5,
164 RIF_COLOR_FILTER = 56,
165 RIF_BANDW_FILTER = 57
169 WHITE_BALANCE_AUTO = 0,
170 WHITE_BALANCE_DAYLIGHT = 1,
171 WHITE_BALANCE_CLOUDY = 2,
172 WHITE_BALANCE_TUNGSTEN = 3,
173 WHITE_BALANCE_FLUORESCENT = 4
177 SUBJECT_PROGRAM_NONE = 0,
178 SUBJECT_PROGRAM_PORTRAIT = 1,
179 SUBJECT_PROGRAM_TEXT = 2,
180 SUBJECT_PROGRAM_NIGHT_PORTRAIT = 3,
181 SUBJECT_PROGRAM_SUNSET = 4,
182 SUBJECT_PROGRAM_SPORTS_ACTION = 5
186 COLOR_MODE_NORMAL = 0,
187 COLOR_MODE_BLACK_AND_WHITE = 1,
188 COLOR_MODE_VIVID_COLOR = 2,
189 COLOR_MODE_SOLARIZATION = 3,
190 COLOR_MODE_ADOBE_RGB = 4
197 IFDTAG_WIDTH = 0x0100,
198 IFDTAG_HEIGHT = 0x0101,
199 IFDTAG_COMPRESS = 0x0103,
200 IFDTAG_DCFVER = 0x010E,
201 IFDTAG_MANUF = 0x010F,
202 IFDTAG_CAMERA = 0x0110,
203 IFDTAG_FIRMWARE = 0x0131,
204 IFDTAG_DATETIME = 0x0132,
205 IFDTAG_EXIFOFFSET = 0x8769,
206 IFDTAG_PIMOFFSET = 0xC4A5
211 MRWTAG_THUMBNAIL = 0x0081,
212 MRWTAG_THUMBNAIL_OFFSET = 0x0088,
213 MRWTAG_THUMBNAIL_LENGTH = 0x0089
237 MRW::DataBlock::Ref mrm;
238 MRW::DataBlock::Ref prd;
239 MRW::DataBlock::Ref ttw;
240 MRW::DataBlock::Ref wbg;
241 MRW::DataBlock::Ref rif;
248 return mrm->offset() + MRW::DataBlockHeaderLength + mrm->length();
253 std::string m_version;