RawSpeed
fast raw decoding library
Loading...
Searching...
No Matches
rawspeed::TiffEntry Class Reference

#include "tiff/TiffEntry.h"

Inheritance diagram for rawspeed::TiffEntry:
[legend]
Collaboration diagram for rawspeed::TiffEntry:
[legend]

Public Member Functions

 TiffEntry (TiffIFD *parent, TiffTag tag, TiffDataType type, uint32_t count, ByteStream data)
 TiffEntry (TiffIFD *parent, ByteStream &bs)
virtual ~TiffEntry ()=default
bool RAWSPEED_READONLY isFloat () const
bool RAWSPEED_READONLY isRational () const
bool RAWSPEED_READONLY isSRational () const
bool RAWSPEED_READONLY isInt () const
bool RAWSPEED_READONLY isString () const
uint8_t getByte (uint32_t index=0) const
uint32_t getU32 (uint32_t index=0) const
int32_t getI32 (uint32_t index=0) const
uint16_t getU16 (uint32_t index=0) const
int16_t getI16 (uint32_t index=0) const
NotARational< uint32_tgetRational (uint32_t index=0) const
NotARational< int32_tgetSRational (uint32_t index=0) const
float getFloat (uint32_t index=0) const
std::string getString () const
std::vector< uint16_tgetU16Array (uint32_t count_) const
std::vector< uint32_tgetU32Array (uint32_t count_) const
std::vector< floatgetFloatArray (uint32_t count_) const
std::vector< NotARational< uint32_t > > getRationalArray (uint32_t count_) const
std::vector< NotARational< int32_t > > getSRationalArray (uint32_t count_) const
ByteStream getData () const
DataBuffer getRootIfdData () const

Public Attributes

TiffTag tag
TiffDataType type
uint32_t count

Protected Member Functions

void setData (ByteStream data_)

Static Protected Attributes

static const std::array< uint32_t, 14 > datashifts

Private Member Functions

virtual void anchor () const
template<typename T, T(TiffEntry::*)(uint32_t index) const getter>
std::vector< TgetArray (uint32_t count_) const

Private Attributes

TiffIFDparent
ByteStream data

Friends

class TiffIFD

Detailed Description

Definition at line 62 of file TiffEntry.h.

Constructor & Destructor Documentation

◆ TiffEntry() [1/2]

rawspeed::TiffEntry::TiffEntry ( TiffIFD * parent,
TiffTag tag,
TiffDataType type,
uint32_t count,
ByteStream data )

Definition at line 103 of file TiffEntry.cpp.

References count, data, datashifts, parent, tag, ThrowTPE, TiffIFD, and type.

Referenced by rawspeed::TiffEntryWithData::TiffEntryWithData().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TiffEntry() [2/2]

rawspeed::TiffEntry::TiffEntry ( TiffIFD * parent,
ByteStream & bs )

◆ ~TiffEntry()

virtual rawspeed::TiffEntry::~TiffEntry ( )
virtualdefault

Member Function Documentation

◆ anchor()

void rawspeed::TiffEntry::anchor ( ) const
privatevirtual

Reimplemented in rawspeed::TiffEntryWithData.

Definition at line 47 of file TiffEntry.cpp.

◆ getArray()

template<typename T, T(TiffEntry::*)(uint32_t index) const getter>
std::vector< T > rawspeed::TiffEntry::getArray ( uint32_t count_) const
inlinenodiscardprivate

Definition at line 71 of file TiffEntry.h.

Referenced by getFloatArray(), getRationalArray(), getSRationalArray(), getU16Array(), and getU32Array().

Here is the caller graph for this function:

◆ getByte()

uint8_t rawspeed::TiffEntry::getByte ( uint32_t index = 0) const
nodiscard

Definition at line 179 of file TiffEntry.cpp.

References rawspeed::BYTE, data, tag, ThrowTPE, type, and rawspeed::UNDEFINED.

Referenced by rawspeed::KdcDecoder::decodeMetaDataInternal(), rawspeed::RafDecoder::decodeRawInternal(), rawspeed::DngDecoder::parseCFA(), rawspeed::OrfDecoder::parseCFA(), and rawspeed::NefDecoder::parseWhiteBalance().

Here is the caller graph for this function:

◆ getData()

ByteStream rawspeed::TiffEntry::getData ( ) const
inlinenodiscard

◆ getFloat()

◆ getFloatArray()

std::vector< float > rawspeed::TiffEntry::getFloatArray ( uint32_t count_) const
inlinenodiscard

Definition at line 115 of file TiffEntry.h.

References getArray().

Here is the call graph for this function:

◆ getI16()

int16_t rawspeed::TiffEntry::getI16 ( uint32_t index = 0) const
nodiscard

Definition at line 195 of file TiffEntry.cpp.

References data, rawspeed::SSHORT, tag, ThrowTPE, type, and rawspeed::UNDEFINED.

Referenced by getI32().

Here is the caller graph for this function:

◆ getI32()

int32_t rawspeed::TiffEntry::getI32 ( uint32_t index = 0) const
nodiscard

Definition at line 224 of file TiffEntry.cpp.

References data, getI16(), rawspeed::SLONG, rawspeed::SRATIONAL, rawspeed::SSHORT, tag, ThrowTPE, type, and rawspeed::UNDEFINED.

Referenced by getFloat(), and getSRational().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getRational()

NotARational< uint32_t > rawspeed::TiffEntry::getRational ( uint32_t index = 0) const
nodiscard

Definition at line 235 of file TiffEntry.cpp.

References getU32(), isRational(), rawspeed::RATIONAL, ThrowTPE, and type.

Referenced by getFloat(), and getRationalArray().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getRationalArray()

std::vector< NotARational< uint32_t > > rawspeed::TiffEntry::getRationalArray ( uint32_t count_) const
inlinenodiscard

Definition at line 120 of file TiffEntry.h.

References getArray(), and getRational().

Referenced by rawspeed::DngDecoder::handleMetadata().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getRootIfdData()

DataBuffer rawspeed::TiffEntry::getRootIfdData ( ) const
nodiscard

Definition at line 308 of file TiffEntry.cpp.

References assert(), parent, rawspeed::TiffRootIFD::rootBuffer, ThrowTPE, and TiffIFD.

Referenced by rawspeed::KdcDecoder::decodeMetaDataInternal(), rawspeed::OrfDecoder::decodeMetaDataInternal(), rawspeed::DcrDecoder::decodeRawInternal(), rawspeed::KdcDecoder::decodeRawInternal(), rawspeed::RafDecoder::decodeRawInternal(), rawspeed::OrfDecoder::getBitsPerPixel(), rawspeed::ArwDecoder::GetWB(), and rawspeed::OrfDecoder::handleSlices().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getSRational()

NotARational< int32_t > rawspeed::TiffEntry::getSRational ( uint32_t index = 0) const
nodiscard

Definition at line 249 of file TiffEntry.cpp.

References getI32(), isSRational(), rawspeed::SRATIONAL, ThrowTPE, and type.

Referenced by getFloat(), and getSRationalArray().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getSRationalArray()

std::vector< NotARational< int32_t > > rawspeed::TiffEntry::getSRationalArray ( uint32_t count_) const
inlinenodiscard

Definition at line 125 of file TiffEntry.h.

References getArray(), and getSRational().

Referenced by rawspeed::DngDecoder::parseColorMatrix().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getString()

std::string rawspeed::TiffEntry::getString ( ) const
nodiscard

Definition at line 296 of file TiffEntry.cpp.

References rawspeed::ASCII, rawspeed::Buffer::begin(), rawspeed::BYTE, data, rawspeed::Buffer::end(), ThrowTPE, and type.

Referenced by rawspeed::MosDecoder::isAppropriateDecoder(), and rawspeed::TiffIFD::parseMakerNote().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getU16()

◆ getU16Array()

std::vector< uint16_t > rawspeed::TiffEntry::getU16Array ( uint32_t count_) const
inlinenodiscard

Definition at line 107 of file TiffEntry.h.

References getArray().

Referenced by rawspeed::DcrDecoder::decodeRawInternal(), rawspeed::DcsDecoder::decodeRawInternal(), and rawspeed::DngDecoder::handleMetadata().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getU32()

uint32_t rawspeed::TiffEntry::getU32 ( uint32_t index = 0) const
nodiscard

Definition at line 203 of file TiffEntry.cpp.

References rawspeed::BYTE, data, getU16(), rawspeed::LONG, rawspeed::OFFSET, rawspeed::RATIONAL, rawspeed::SHORT, tag, ThrowTPE, type, and rawspeed::UNDEFINED.

Referenced by rawspeed::DngDecoder::decodeBlackLevels(), rawspeed::DngDecoder::decodeData(), rawspeed::ArwDecoder::DecodeLJpeg(), rawspeed::KdcDecoder::decodeMetaDataInternal(), rawspeed::OrfDecoder::decodeMetaDataInternal(), rawspeed::PefDecoder::decodeMetaDataInternal(), rawspeed::RafDecoder::decodeMetaDataInternal(), rawspeed::Cr2Decoder::decodeNewFormat(), rawspeed::ArwDecoder::decodeRawInternal(), rawspeed::DcrDecoder::decodeRawInternal(), rawspeed::DngDecoder::decodeRawInternal(), rawspeed::KdcDecoder::decodeRawInternal(), rawspeed::MosDecoder::decodeRawInternal(), rawspeed::NefDecoder::decodeRawInternal(), rawspeed::PefDecoder::decodeRawInternal(), rawspeed::RafDecoder::decodeRawInternal(), rawspeed::Rw2Decoder::decodeRawInternal(), rawspeed::SrwDecoder::decodeRawInternal(), rawspeed::ArwDecoder::decodeSRF(), rawspeed::ArwDecoder::decodeTransitionalArw(), rawspeed::ArwDecoder::DecodeUncompressed(), rawspeed::NefDecoder::DecodeUncompressed(), rawspeed::StiDecoder::DecodeUncompressed(), rawspeed::ThreefrDecoder::DecodeUncompressed(), rawspeed::RawDecoder::decodeUncompressed(), rawspeed::OrfDecoder::getBitsPerPixel(), getFloat(), rawspeed::AbstractTiffDecoder::getIFDWithLargestImage(), getRational(), rawspeed::DngDecoder::getTilingDescription(), rawspeed::ArwDecoder::GetWB(), rawspeed::OrfDecoder::handleSlices(), rawspeed::Cr2Decoder::isSubSampled(), rawspeed::NefDecoder::NEFIsUncompressed(), rawspeed::NefDecoder::NEFIsUncompressedRGB(), rawspeed::DngDecoder::parseCFA(), and rawspeed::Cr2Decoder::parseWhiteBalance().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getU32Array()

std::vector< uint32_t > rawspeed::TiffEntry::getU32Array ( uint32_t count_) const
inlinenodiscard

Definition at line 111 of file TiffEntry.h.

References getArray().

Referenced by rawspeed::DngDecoder::decodeMaskedAreas(), and rawspeed::DngDecoder::parseACTIVEAREA().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isFloat()

bool RAWSPEED_READONLY rawspeed::TiffEntry::isFloat ( ) const
nodiscard

Definition at line 138 of file TiffEntry.cpp.

References rawspeed::DOUBLE, rawspeed::FLOAT, rawspeed::LONG, rawspeed::RATIONAL, rawspeed::SHORT, rawspeed::SLONG, rawspeed::SRATIONAL, rawspeed::SSHORT, and type.

Referenced by getFloat().

Here is the caller graph for this function:

◆ isInt()

bool RAWSPEED_READONLY rawspeed::TiffEntry::isInt ( ) const
nodiscard

Definition at line 129 of file TiffEntry.cpp.

References rawspeed::BYTE, rawspeed::LONG, rawspeed::SHORT, and type.

Referenced by rawspeed::DngDecoder::decodeData().

Here is the caller graph for this function:

◆ isRational()

bool RAWSPEED_READONLY rawspeed::TiffEntry::isRational ( ) const
nodiscard

Definition at line 155 of file TiffEntry.cpp.

References rawspeed::LONG, rawspeed::RATIONAL, rawspeed::SHORT, and type.

Referenced by getRational().

Here is the caller graph for this function:

◆ isSRational()

bool RAWSPEED_READONLY rawspeed::TiffEntry::isSRational ( ) const
nodiscard

Definition at line 167 of file TiffEntry.cpp.

References rawspeed::SLONG, rawspeed::SRATIONAL, rawspeed::SSHORT, and type.

Referenced by getSRational().

Here is the caller graph for this function:

◆ isString()

bool RAWSPEED_READONLY rawspeed::TiffEntry::isString ( ) const
nodiscard

Definition at line 134 of file TiffEntry.cpp.

References rawspeed::ASCII, and type.

◆ setData()

void rawspeed::TiffEntry::setData ( ByteStream data_)
protected

Definition at line 116 of file TiffEntry.cpp.

References data.

Referenced by rawspeed::TiffEntryWithData::TiffEntryWithData().

Here is the caller graph for this function:

◆ TiffIFD

friend class TiffIFD
friend

Member Data Documentation

◆ count

uint32_t rawspeed::TiffEntry::count

Definition at line 84 of file TiffEntry.h.

Referenced by TiffEntry(), TiffEntry(), rawspeed::TiffEntryWithData::TiffEntryWithData(), rawspeed::DngDecoder::decodeBlackLevels(), rawspeed::DngDecoder::decodeData(), rawspeed::ArwDecoder::DecodeLJpeg(), rawspeed::DngDecoder::decodeMaskedAreas(), rawspeed::ErfDecoder::decodeMetaDataInternal(), rawspeed::KdcDecoder::decodeMetaDataInternal(), rawspeed::NefDecoder::decodeMetaDataInternal(), rawspeed::OrfDecoder::decodeMetaDataInternal(), rawspeed::PefDecoder::decodeMetaDataInternal(), rawspeed::RafDecoder::decodeMetaDataInternal(), rawspeed::SrwDecoder::decodeMetaDataInternal(), rawspeed::ThreefrDecoder::decodeMetaDataInternal(), rawspeed::NefDecoder::DecodeNikonSNef(), rawspeed::ArwDecoder::decodeRawInternal(), rawspeed::DcrDecoder::decodeRawInternal(), rawspeed::DcsDecoder::decodeRawInternal(), rawspeed::NefDecoder::decodeRawInternal(), rawspeed::PefDecoder::decodeRawInternal(), rawspeed::RafDecoder::decodeRawInternal(), rawspeed::Rw2Decoder::decodeRawInternal(), rawspeed::SrwDecoder::decodeRawInternal(), rawspeed::NefDecoder::DecodeUncompressed(), rawspeed::RawDecoder::decodeUncompressed(), rawspeed::anonymous_namespace{Cr2Decoder.cpp}::deduceColorDataFormat(), rawspeed::AbstractTiffDecoder::getIFDWithLargestImage(), rawspeed::Cr2Decoder::getSubSampling(), rawspeed::DngDecoder::getTilingDescription(), rawspeed::ArwDecoder::GetWB(), rawspeed::DngDecoder::handleMetadata(), rawspeed::OrfDecoder::handleSlices(), rawspeed::DngDecoder::parseACTIVEAREA(), rawspeed::DngDecoder::parseCFA(), rawspeed::OrfDecoder::parseCFA(), rawspeed::Rw2Decoder::parseCFA(), rawspeed::DngDecoder::parseColorMatrix(), rawspeed::Cr2Decoder::parseWhiteBalance(), rawspeed::DngDecoder::parseWhiteBalance(), and rawspeed::NefDecoder::parseWhiteBalance().

◆ data

ByteStream rawspeed::TiffEntry::data
private

◆ datashifts

const std::array< uint32_t, 14 > rawspeed::TiffEntry::datashifts
staticprotected
Initial value:
= {0, 0, 0, 1, 2, 3, 0,
0, 1, 2, 3, 2, 3, 2}

Definition at line 134 of file TiffEntry.h.

Referenced by TiffEntry(), and TiffEntry().

◆ parent

TiffIFD* rawspeed::TiffEntry::parent
private

Definition at line 63 of file TiffEntry.h.

Referenced by TiffEntry(), TiffEntry(), and getRootIfdData().

◆ tag

TiffTag rawspeed::TiffEntry::tag

Definition at line 82 of file TiffEntry.h.

Referenced by TiffEntry(), TiffEntry(), getByte(), getFloat(), getI16(), getI32(), getU16(), and getU32().

◆ type


The documentation for this class was generated from the following files: