29 static bool ParseHeader(
const SkData* data,
bool* outLittleEndian, uint32_t* outIfdOffset);
60 return getEntryValuesGeneric(entryIndex, kTypeUnsignedShort,
count, values);
63 return getEntryValuesGeneric(entryIndex, kTypeUnsignedLong,
count, values);
66 return getEntryValuesGeneric(entryIndex, kTypeSignedRational,
count, values);
69 return getEntryValuesGeneric(entryIndex, kTypeUnsignedRational,
count, values);
79 static constexpr uint16_t kTypeUnsignedByte = 1;
80 static constexpr uint16_t kTypeAsciiString = 2;
81 static constexpr uint16_t kTypeUnsignedShort = 3;
82 static constexpr uint16_t kTypeUnsignedLong = 4;
83 static constexpr uint16_t kTypeUnsignedRational = 5;
84 static constexpr uint16_t kTypeSignedByte = 6;
85 static constexpr uint16_t kTypeUndefined = 7;
86 static constexpr uint16_t kTypeSignedShort = 8;
87 static constexpr uint16_t kTypeSignedLong = 9;
88 static constexpr uint16_t kTypeSignedRational = 10;
89 static constexpr uint16_t kTypeSingleFloat = 11;
90 static constexpr uint16_t kTypeDoubleFloat = 12;
92 static bool IsValidType(uint16_t
type);
93 static size_t BytesForType(uint16_t
type);
98 uint16_t ifdNumEntries,
99 uint32_t ifdNextOffset);
105 bool getEntryRawData(uint16_t entryIndex,
109 const uint8_t** outData,
110 size_t* outDataSize)
const;
115 bool getEntryValuesGeneric(uint16_t entryIndex,
124 const bool fLittleEndian;
127 const uint32_t fOffset;
130 const uint16_t fNumEntries;
133 const uint32_t fNextIfdOffset;