uint32_t offset = getStartOffset();
- size_t numEntry = getNumDirEntry();
+ size_t numEntry = getNumDirEntry( offset );
offset += 2; //go to start of tag fields
*
* @return The number of directory entries
*/
-size_t ExifReader::getNumDirEntry() const
+size_t ExifReader::getNumDirEntry(const size_t offsetNumDir) const
{
return getU16( offsetNumDir );
}
bool checkTagMark() const;
size_t getFieldSize ();
- size_t getNumDirEntry() const;
+ size_t getNumDirEntry( const size_t offsetNumDir ) const;
uint32_t getStartOffset() const;
uint16_t getExifTag( const size_t offset ) const;
uint16_t getU16( const size_t offset ) const;
private:
static const uint16_t tagMarkRequired = 0x2A;
- //offset to the _number-of-directory-entry_ field
- static const size_t offsetNumDir = 8;
-
//max size of data in tag.
//'DDDDDDDD' contains the value of that Tag. If its size is over 4bytes,
//'DDDDDDDD' contains the offset to data stored address.