|
RawSpeed
fast raw decoding library
|
#include "tiff/TiffIFD.h"
Classes | |
| struct | Limits |
Public Member Functions | |
| TiffIFD (TiffIFD *parent) | |
| TiffIFD (TiffIFD *parent, NORangesSet< Buffer > *ifds, DataBuffer data, uint32_t offset) | |
| virtual | ~TiffIFD ()=default |
| TiffIFD (const TiffIFD &)=delete | |
| TiffIFD & | operator= (const TiffIFD &)=delete |
| uint32_t | getNextIFD () const |
| std::vector< const TiffIFD * > | getIFDsWithTag (TiffTag tag) const |
| const TiffIFD * | getIFDWithTag (TiffTag tag, uint32_t index=0) const |
| TiffEntry * | getEntry (TiffTag tag) const |
| TiffEntry *RAWSPEED_READONLY | getEntryRecursive (TiffTag tag) const |
| bool RAWSPEED_READONLY | hasEntry (TiffTag tag) const |
| bool | hasEntryRecursive (TiffTag tag) const |
| const std::vector< TiffIFDOwner > & | getSubIFDs () const |
Private Member Functions | |
| virtual void | anchor () const |
| void | recursivelyIncrementSubIFDCount () |
| void | checkSubIFDs (int headroom) const |
| void | recursivelyCheckSubIFDs (int headroom) const |
| void | add (TiffIFDOwner subIFD) |
| void | add (TiffEntryOwner entry) |
| TiffRootIFDOwner | parseMakerNote (NORangesSet< Buffer > *ifds, const TiffEntry *t) |
| void | parseIFDEntry (NORangesSet< Buffer > *ifds, ByteStream &bs) |
Private Attributes | |
| uint32_t | nextIFD = 0 |
| TiffIFD *const | parent |
| std::vector< TiffIFDOwner > | subIFDs |
| int | subIFDCount = 0 |
| int | subIFDCountRecursive = 0 |
| std::map< TiffTag, TiffEntryOwner > | entries |
Friends | |
| class | TiffEntry |
| class | FiffParser |
| class | TiffParser |
|
explicit |
Definition at line 103 of file TiffIFD.cpp.
References TiffIFD(), parent, recursivelyCheckSubIFDs(), and recursivelyIncrementSubIFDCount().
Referenced by TiffIFD(), TiffIFD(), TiffIFD(), rawspeed::TiffRootIFD::TiffRootIFD(), getIFDWithTag(), operator=(), parseMakerNote(), recursivelyCheckSubIFDs(), and recursivelyIncrementSubIFDCount().
| rawspeed::TiffIFD::TiffIFD | ( | TiffIFD * | parent, |
| NORangesSet< Buffer > * | ifds, | ||
| DataBuffer | data, | ||
| uint32_t | offset ) |
Definition at line 111 of file TiffIFD.cpp.
References TiffIFD(), assert(), rawspeed::Buffer::getSubView(), rawspeed::ByteStream::getU16(), rawspeed::ByteStream::getU32(), rawspeed::NORangesSet< T >::insert(), nextIFD, parseIFDEntry(), rawspeed::ByteStream::setPosition(), and ThrowTPE.
|
virtualdefault |
|
delete |
|
private |
Definition at line 308 of file TiffIFD.cpp.
References entries.
|
private |
Definition at line 299 of file TiffIFD.cpp.
References assert(), and subIFDs.
Referenced by parseIFDEntry().
|
privatevirtual |
Reimplemented in rawspeed::TiffRootIFD.
Definition at line 48 of file TiffIFD.cpp.
|
private |
Definition at line 269 of file TiffIFD.cpp.
References assert(), rawspeed::TiffIFD::Limits::RecursiveSubIFDCount, rawspeed::TiffIFD::Limits::SubIFDCount, subIFDCount, subIFDCountRecursive, and ThrowTPE.
Definition at line 313 of file TiffIFD.cpp.
References entries, ThrowTPE, and TiffEntry.
Referenced by rawspeed::anonymous_namespace{Rw2Decoder.cpp}::DecompressorV8Params::DecompressorV8Params(), rawspeed::DngDecoder::decodeBlackLevels(), rawspeed::ArwDecoder::decodeCurve(), rawspeed::DngDecoder::decodeData(), rawspeed::ArwDecoder::DecodeLJpeg(), rawspeed::DngDecoder::decodeMaskedAreas(), rawspeed::OrfDecoder::decodeMetaDataInternal(), rawspeed::Rw2Decoder::decodeMetaDataInternal(), rawspeed::Cr2Decoder::decodeNewFormat(), rawspeed::ArwDecoder::decodeRawInternal(), rawspeed::DngDecoder::decodeRawInternal(), rawspeed::MosDecoder::decodeRawInternal(), rawspeed::Rw2Decoder::decodeRawInternal(), rawspeed::Rw2Decoder::decodeRawV8(), rawspeed::ArwDecoder::decodeSRF(), rawspeed::ArwDecoder::decodeTransitionalArw(), rawspeed::ArwDecoder::DecodeUncompressed(), rawspeed::StiDecoder::DecodeUncompressed(), rawspeed::ThreefrDecoder::DecodeUncompressed(), rawspeed::RawDecoder::decodeUncompressed(), rawspeed::OrfDecoder::getBitsPerPixel(), rawspeed::anonymous_namespace{Rw2Decoder.cpp}::getPanasonicTiffVector(), rawspeed::DngDecoder::getTilingDescription(), rawspeed::ArwDecoder::GetWB(), rawspeed::DngDecoder::handleMetadata(), rawspeed::NefDecoder::NEFIsUncompressed(), rawspeed::NefDecoder::NEFIsUncompressedRGB(), rawspeed::DngDecoder::parseACTIVEAREA(), and rawspeed::DngDecoder::parseCFA().
Definition at line 246 of file TiffIFD.cpp.
References entries, subIFDs, and TiffEntry.
Referenced by rawspeed::KdcDecoder::decodeMetaDataInternal(), rawspeed::Cr2Decoder::decodeNewFormat(), rawspeed::DcrDecoder::decodeRawInternal(), rawspeed::KdcDecoder::decodeRawInternal(), rawspeed::PefDecoder::decodeRawInternal(), rawspeed::TiffRootIFD::getID(), rawspeed::ArwDecoder::GetWB(), hasEntryRecursive(), and rawspeed::MosDecoder::isAppropriateDecoder().
Definition at line 226 of file TiffIFD.cpp.
References entries, and subIFDs.
Referenced by getIFDWithTag().
|
nodiscard |
Definition at line 238 of file TiffIFD.cpp.
References TiffIFD(), getIFDsWithTag(), and ThrowTPE.
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
Definition at line 119 of file TiffIFD.h.
References entries.
Referenced by rawspeed::DngDecoder::decodeBlackLevels(), rawspeed::DngDecoder::decodeData(), rawspeed::OrfDecoder::decodeMetaDataInternal(), rawspeed::Rw2Decoder::decodeMetaDataInternal(), rawspeed::DngDecoder::decodeRawInternal(), rawspeed::Rw2Decoder::decodeRawInternal(), rawspeed::OrfDecoder::getBitsPerPixel(), rawspeed::Rw2Decoder::getDefaultCrop(), rawspeed::DngDecoder::getTilingDescription(), rawspeed::ArwDecoder::GetWB(), rawspeed::DngDecoder::handleMetadata(), rawspeed::DngDecoder::parseACTIVEAREA(), rawspeed::DngDecoder::parseCFA(), and rawspeed::DngDecoder::setBlack().
|
inlinenodiscard |
Definition at line 122 of file TiffIFD.h.
References getEntryRecursive().
Referenced by rawspeed::KdcDecoder::decodeMetaDataInternal(), and rawspeed::DngDecoder::isAppropriateDecoder().
|
private |
Definition at line 53 of file TiffIFD.cpp.
References add(), assert(), rawspeed::DNGPRIVATEDATA, rawspeed::EXIFIFDPOINTER, rawspeed::FUJI_RAW_IFD, rawspeed::ByteStream::getPosition(), rawspeed::MAKERNOTE, rawspeed::MAKERNOTE_ALT, parseMakerNote(), rawspeed::ByteStream::setPosition(), and rawspeed::SUBIFDS.
Referenced by TiffIFD().
|
private |
Definition at line 142 of file TiffIFD.cpp.
References TiffIFD(), assert(), rawspeed::big, rawspeed::TiffEntry::getData(), rawspeed::ByteStream::getPosition(), rawspeed::ByteStream::getRemainSize(), rawspeed::TiffEntry::getString(), rawspeed::ByteStream::getSubStream(), rawspeed::getTiffByteOrder(), rawspeed::ByteStream::hasPatternAt(), rawspeed::ByteStream::hasPrefix(), rawspeed::little, rawspeed::MAKE, rawspeed::DataBuffer::setByteOrder(), rawspeed::ByteStream::skipBytes(), rawspeed::ByteStream::skipPrefix(), TiffEntry, and rawspeed::trimSpaces().
Referenced by parseIFDEntry().
|
private |
Definition at line 283 of file TiffIFD.cpp.
References TiffIFD(), assert(), rawspeed::TiffIFD::Limits::Depth, and ThrowTPE.
Referenced by TiffIFD().
|
private |
Definition at line 258 of file TiffIFD.cpp.
References TiffIFD(), and parent.
Referenced by TiffIFD().
|
friend |
|
friend |
Definition at line 63 of file TiffIFD.h.
References TiffEntry.
Referenced by getEntry(), getEntryRecursive(), parseMakerNote(), TiffEntry, and TiffParser.
|
friend |
Definition at line 65 of file TiffIFD.h.
References TiffEntry, and TiffParser.
Referenced by TiffParser.
|
private |
Definition at line 59 of file TiffIFD.h.
Referenced by add(), getEntry(), getEntryRecursive(), getIFDsWithTag(), and hasEntry().
|
private |
Definition at line 50 of file TiffIFD.h.
Referenced by TiffIFD(), and getNextIFD().
|
private |
Definition at line 52 of file TiffIFD.h.
Referenced by TiffIFD(), and recursivelyIncrementSubIFDCount().
|
private |
Definition at line 56 of file TiffIFD.h.
Referenced by checkSubIFDs().
|
private |
Definition at line 57 of file TiffIFD.h.
Referenced by checkSubIFDs().
|
private |
Definition at line 54 of file TiffIFD.h.
Referenced by add(), getEntryRecursive(), getIFDsWithTag(), and getSubIFDs().