Exiv2::Internal Namespace Reference

Contains internal objects which are not published and are not part of the libexiv2 API. More...


Classes

class  Exiv2::Internal::Cr2Header
 Canon CR2 header structure. More...
class  Exiv2::Internal::CiffComponent
 Interface class for components of the CIFF directory hierarchy of a CRW (Canon Raw data) image. Both CIFF directories as well as entries implement this interface. This class is implemented as NVI (non-virtual interface). More...
class  Exiv2::Internal::CiffEntry
 This class models one directory entry of a CIFF directory of a CRW (Canon Raw data) image. More...
class  Exiv2::Internal::CiffDirectory
 This class models a CIFF directory of a CRW (Canon Raw data) image. More...
class  Exiv2::Internal::CiffHeader
 This class models the header of a CRW (Canon Raw data) image. It is the head of a CIFF parse tree, consisting of CiffDirectory and CiffEntry objects. Most of its methods will walk the parse tree to perform the requested action. More...
struct  Exiv2::Internal::CrwSubDir
 Structure for the CIFF directory hierarchy. More...
struct  Exiv2::Internal::CrwMapping
 Structure for a mapping table for conversion of CIFF entries to image metadata and vice versa. More...
class  Exiv2::Internal::CrwMap
 Static class providing mapping functionality from CRW entries to image metadata and vice versa. More...
struct  Exiv2::Internal::NikonArrayIdx
 Structure for an index into the array set of complex binary arrays. More...
struct  Exiv2::Internal::NikonArrayIdx::Key
 Key for comparisons. More...
struct  Exiv2::Internal::TiffMnRegistry
 Makernote registry structure. More...
class  Exiv2::Internal::TiffMnCreator
 TIFF makernote factory for concrete TIFF makernotes. More...
class  Exiv2::Internal::MnHeader
 Makernote header interface. This class is used with TIFF makernotes. More...
class  Exiv2::Internal::OlympusMnHeader
 Header of an Olympus Makernote. More...
class  Exiv2::Internal::Olympus2MnHeader
 Header of an Olympus II Makernote. More...
class  Exiv2::Internal::FujiMnHeader
 Header of a Fujifilm Makernote. More...
class  Exiv2::Internal::Nikon2MnHeader
 Header of a Nikon 2 Makernote. More...
class  Exiv2::Internal::Nikon3MnHeader
 Header of a Nikon 3 Makernote. More...
class  Exiv2::Internal::PanasonicMnHeader
 Header of a Panasonic Makernote. More...
class  Exiv2::Internal::PentaxMnHeader
 Header of an Pentax Makernote. More...
class  Exiv2::Internal::SigmaMnHeader
 Header of a Sigma Makernote. More...
class  Exiv2::Internal::SonyMnHeader
 Header of a Sony Makernote. More...
class  Exiv2::Internal::OrfHeader
 Olympus ORF header structure. More...
class  Exiv2::Internal::PngChunk
 Stateless parser class for data in PNG chunk format. Images use this class to decode and encode PNG-based data. More...
class  Exiv2::Internal::Rw2Header
 Panasonic RW2 header structure. More...
struct  Exiv2::Internal::TiffGroupInfo
 Structure for group and group name info. More...
class  Exiv2::Internal::TiffPathItem
 A tupel consisting of extended Tag and group used as an item in TIFF paths. More...
class  Exiv2::Internal::IoWrapper
 Simple IO wrapper to ensure that the header is only written if there is any other data at all. More...
class  Exiv2::Internal::TiffComponent
 Interface class for components of a TIFF directory hierarchy (Composite pattern). Both TIFF directories as well as entries implement this interface. A component can be uniquely identified by a tag, group tupel. This class is implemented as a NVI (Non-Virtual Interface) and it has an interface for visitors (Visitor pattern) to perform operations on all components. More...
struct  Exiv2::Internal::TiffMappingInfo
 TIFF mapping table for functions to decode special cases. More...
struct  Exiv2::Internal::TiffMappingInfo::Key
 Search key for TIFF mapping structures. More...
class  Exiv2::Internal::TiffEntryBase
 This abstract base class provides the common functionality of an IFD directory entry and defines an extended interface for derived concrete entries, which allows access to the attributes of the entry. More...
class  Exiv2::Internal::TiffEntry
 A standard TIFF IFD entry. More...
class  Exiv2::Internal::TiffDataEntryBase
 Interface for a standard TIFF IFD entry consisting of a value which is a set of offsets to a data area. The sizes of these "strips" are provided in a related TiffSizeEntry, tag and group of which are set in the constructor. The implementations of this interface differ in whether the data areas are extracted to the higher level metadata (TiffDataEntry) or not (TiffImageEntry). More...
class  Exiv2::Internal::TiffDataEntry
 A standard TIFF IFD entry consisting of a value which is an offset to a data area and the data area. The size of the data area is provided in a related TiffSizeEntry, tag and group of which are set in the constructor. More...
class  Exiv2::Internal::TiffImageEntry
 A standard TIFF IFD entry consisting of a value which is an array of offsets to image data areas. The sizes of the image data areas are provided in a related TiffSizeEntry, tag and group of which are set in the constructor. More...
class  Exiv2::Internal::TiffSizeEntry
 A TIFF IFD entry containing the size of a data area of a related TiffDataEntry. This component is used, e.g. for Exif.Thumbnail.JPEGInterchangeFormatLength, which contains the size of Exif.Thumbnail.JPEGInterchangeFormat. More...
class  Exiv2::Internal::TiffDirectory
 This class models a TIFF directory (Ifd). It is a composite component of the TIFF tree. More...
class  Exiv2::Internal::TiffSubIfd
 This class models a TIFF sub-directory (sub-IFD). A sub-IFD is an entry with one or more values that are pointers to IFD structures containing an IFD. The TIFF standard defines some important tags to be sub-IFDs, including the Exif and GPS tags. More...
class  Exiv2::Internal::TiffMnEntry
 This class is the basis for Makernote support in TIFF. It contains a pointer to a concrete Makernote. The TiffReader visitor has the responsibility to create the correct Make/Model specific Makernote for a particular TIFF file. Calls to child management methods are forwarded to the concrete Makernote, if there is one. More...
class  Exiv2::Internal::TiffIfdMakernote
 Tiff IFD Makernote. This is a concrete class suitable for all IFD makernotes. More...
struct  Exiv2::Internal::ArrayDef
 Defines one tag in a binary array. More...
struct  Exiv2::Internal::ArrayCfg
 Additional configuration for a binary array. More...
struct  Exiv2::Internal::ArraySet
 Combination of array configuration and definition for arrays. More...
class  Exiv2::Internal::TiffBinaryArray
 Composite to model an array of different tags. The tag types as well as other aspects of the array are configurable. The elements of this component are of type TiffBinaryElement. More...
class  Exiv2::Internal::TiffBinaryElement
 Element of a TiffBinaryArray. More...
class  Exiv2::Internal::TiffHeaderBase
 Abstract base class defining the interface of an image header. Used internally by classes for TIFF-based images. Default implementation is for the regular TIFF header. More...
class  Exiv2::Internal::TiffHeader
 Standard TIFF header structure. More...
struct  Exiv2::Internal::TiffGroupStruct
 Data structure used as a row (element) of a table (array) defining the TIFF component used for each tag in a group. More...
struct  Exiv2::Internal::TiffGroupStruct::Key
 Search key for TIFF group structure. More...
struct  Exiv2::Internal::TiffTreeStruct
 Data structure used as a row of the table which describes TIFF trees. Multiple trees are needed as TIFF-based RAW image formats do not always use standard TIFF layout. More...
struct  Exiv2::Internal::TiffTreeStruct::Key
 Search key for TIFF tree structure. More...
class  Exiv2::Internal::TiffCreator
 TIFF component factory. More...
class  Exiv2::Internal::TiffParserWorker
 Stateless parser class for data in TIFF format. Images use this class to decode and encode TIFF-based data. More...
class  Exiv2::Internal::TiffMapping
 Table of TIFF decoding and encoding functions and find functions. This class is separated from the metadata decoder and encoder visitors so that the parser can be parametrized with a different table if needed. This is used, eg., for CR2 format, which uses a different decoder table. More...
class  Exiv2::Internal::FindExifdatum
 Unary predicate that matches an Exifdatum with a given IfdId. More...
class  Exiv2::Internal::TiffVisitor
 Abstract base class defining the interface for TIFF composite vistors (Visitor pattern). More...
class  Exiv2::Internal::TiffFinder
 Search the composite for a component with tag and group. Return a pointer to the component or 0, if not found. The class is ready for a first search after construction and can be re-initialized with init(). More...
class  Exiv2::Internal::TiffDecoder
 TIFF composite visitor to decode metadata from the TIFF tree and add it to an Image, which is supplied in the constructor (Visitor pattern). Used by TiffParser to decode the metadata from a TIFF composite. More...
class  Exiv2::Internal::TiffEncoder
 TIFF composite visitor to encode metadata from an image to the TIFF tree. The metadata containers and root element of the tree are supplied in the constructor. Used by TiffParserWorker to encode the metadata into a TIFF composite. More...
class  Exiv2::Internal::TiffRwState
 Simple state class containing relevant state information for the TIFF reader. This is in a separate class so that the reader can change state if needed (e.g., to read certain complex makernotes). More...
class  Exiv2::Internal::TiffReader
 TIFF composite visitor to read the TIFF structure from a block of memory and build the composite from it (Visitor pattern). Used by TiffParser to read the TIFF data from a block of memory. More...

Typedefs

typedef void(* CrwDecodeFct )(const CiffComponent &, const CrwMapping *, Image &, ByteOrder)
 Function pointer for functions to decode Exif tags from a CRW entry.
typedef void(* CrwEncodeFct )(const Image &, const CrwMapping *, CiffHeader *)
 Function pointer for functions to encode CRW entries from Exif tags.
typedef std::stack< CrwSubDirCrwDirs
 Stack to hold a path of CRW directories.
typedef TiffComponent *(* NewMnFct )(uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Type for a pointer to a function creating a makernote (image).
typedef TiffComponent *(* NewMnFct2 )(uint16_t tag, uint16_t group, uint16_t mnGroup)
 Type for a pointer to a function creating a makernote (group).
typedef uint16_t TiffType
 TIFF value type.
typedef int(* CfgSelFct )(uint16_t, const byte *, uint32_t, TiffComponent *const)
 Function pointer type for a function to determine which cfg + def of a corresponding array set to use.
typedef DataBuf(* CryptFct )(uint16_t, const byte *, uint32_t, TiffComponent *const)
 Function pointer type for a crypt function used for binary arrays.
typedef void(TiffDecoder::* DecoderFct )(const TiffEntryBase *)
 Function pointer type for a TiffDecoder member function to decode a TIFF component.
typedef void(TiffEncoder::* EncoderFct )(TiffEntryBase *, const Exifdatum *)
 Function pointer type for a TiffDecoder member function to decode a TIFF component.
typedef DecoderFct(* FindDecoderFct )(const std::string &make, uint32_t extendedTag, uint16_t group)
 Type for a function pointer for a function to decode a TIFF component.
typedef EncoderFct(* FindEncoderFct )(const std::string &make, uint32_t extendedTag, uint16_t group)
 Type for a function pointer for a function to encode a TIFF component.
typedef std::auto_ptr< TiffComponent >(* NewTiffCompFct )(uint16_t tag, uint16_t group)
 Type for a function pointer for a function to create a TIFF component. Use TiffComponent::AutoPtr, it is not used in this declaration only to reduce dependencies.
typedef std::stack< TiffPathItemTiffPath
 Stack to hold a path from the TIFF root element to a TIFF entry.

Enumerations

enum  DataLocId { invalidDataLocId, valueData, directoryData, lastDataLocId }
 Type to identify where the data is stored in a directory.

Functions

DataBuf packIfdId (const ExifData &exifData, IfdId ifdId, ByteOrder byteOrder)
 Pack the tag values of all ifdId tags in exifData into a data buffer. This function is used to pack Canon Camera Settings1,2 and Custom Function tags.
TiffComponentnewIfdMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *, uint32_t, ByteOrder)
 Function to create a simple IFD makernote (Canon, Minolta, Nikon1).
TiffComponentnewIfdMn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create a simple IFD makernote (Canon, Minolta, Nikon1).
TiffComponentnewOlympusMn (uint16_t tag, uint16_t group, uint16_t, const byte *pData, uint32_t size, ByteOrder)
 Function to create an Olympus makernote.
TiffComponentnewOlympusMn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create an Olympus makernote.
TiffComponentnewOlympus2Mn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create an Olympus II makernote.
TiffComponentnewFujiMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *, uint32_t, ByteOrder)
 Function to create a Fujifilm makernote.
TiffComponentnewFujiMn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create a Fujifilm makernote.
TiffComponentnewNikonMn (uint16_t tag, uint16_t group, uint16_t, const byte *pData, uint32_t size, ByteOrder)
 Function to create a Nikon makernote. This will create the appropriate Nikon 1, 2 or 3 makernote, based on the arguments.
TiffComponentnewNikon2Mn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create a Nikon2 makernote.
TiffComponentnewNikon3Mn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create a Nikon3 makernote.
TiffComponentnewPanasonicMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *, uint32_t, ByteOrder)
 Function to create a Panasonic makernote.
TiffComponentnewPanasonicMn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create a Panasonic makernote.
TiffComponentnewPentaxMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *, uint32_t, ByteOrder)
 Function to create an Pentax makernote.
TiffComponentnewPentaxMn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create an Pentax makernote.
TiffComponentnewSigmaMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *, uint32_t, ByteOrder)
 Function to create a Sigma makernote.
TiffComponentnewSigmaMn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create a Sigma makernote.
TiffComponentnewSonyMn (uint16_t tag, uint16_t group, uint16_t, const byte *pData, uint32_t size, ByteOrder)
 Function to create a Sony makernote.
TiffComponentnewSony1Mn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create a Sony1 makernote.
TiffComponentnewSony2Mn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create a Sony2 makernote.
int nikonSelector (uint16_t tag, const byte *pData, uint32_t size, TiffComponent *const )
 Function to select cfg + def of a Nikon complex binary array.
DataBuf nikonCrypt (uint16_t tag, const byte *pData, uint32_t size, TiffComponent *const pRoot)
 Encrypt and decrypt Nikon data.
const char * tiffGroupName (uint16_t group)
 Return the group name for a group.
uint16_t tiffGroupId (const std::string &groupName)
 Return the TIFF group id for a group name.
TypeId toTypeId (TiffType tiffType, uint16_t tag, uint16_t group)
 Convert the tiffType of a tag and group to an Exiv2 typeId.
TiffType toTiffType (TypeId typeId)
 Convert the Exiv2 typeId to a TIFF value type.
bool cmpTagLt (TiffComponent const *lhs, TiffComponent const *rhs)
 Compare two TIFF component pointers by tag. Return true if the tag of component lhs is less than that of rhs.
TiffComponent::AutoPtr newTiffEntry (uint16_t tag, uint16_t group)
 Function to create and initialize a new TIFF entry.
TiffComponent::AutoPtr newTiffMnEntry (uint16_t tag, uint16_t group)
 Function to create and initialize a new TIFF makernote entry.
TiffComponent::AutoPtr newTiffBinaryElement (uint16_t tag, uint16_t group)
 Function to create and initialize a new binary array element.
template<uint16_t newGroup>
TiffComponent::AutoPtr newTiffDirectory (uint16_t tag, uint16_t)
 Function to create and initialize a new TIFF directory.
template<uint16_t newGroup>
TiffComponent::AutoPtr newTiffSubIfd (uint16_t tag, uint16_t group)
 Function to create and initialize a new TIFF sub-directory.
template<const ArrayCfg * arrayCfg, int N, const ArrayDef & arrayDef>
TiffComponent::AutoPtr newTiffBinaryArray0 (uint16_t tag, uint16_t group)
 Function to create and initialize a new binary array entry.
template<const ArrayCfg * arrayCfg>
TiffComponent::AutoPtr newTiffBinaryArray1 (uint16_t tag, uint16_t group)
 Function to create and initialize a new simple binary array entry.
template<const ArraySet * arraySet, int N, CfgSelFct cfgSelFct>
TiffComponent::AutoPtr newTiffBinaryArray2 (uint16_t tag, uint16_t group)
 Function to create and initialize a new complex binary array entry.
template<uint16_t szTag, uint16_t szGroup>
TiffComponent::AutoPtr newTiffThumbData (uint16_t tag, uint16_t group)
 Function to create and initialize a new TIFF entry for a thumbnail (data).
template<uint16_t dtTag, uint16_t dtGroup>
TiffComponent::AutoPtr newTiffThumbSize (uint16_t tag, uint16_t group)
 Function to create and initialize a new TIFF entry for a thumbnail (size).
template<uint16_t szTag, uint16_t szGroup>
TiffComponent::AutoPtr newTiffImageData (uint16_t tag, uint16_t group)
 Function to create and initialize a new TIFF entry for image data.
template<uint16_t dtTag, uint16_t dtGroup>
TiffComponent::AutoPtr newTiffImageSize (uint16_t tag, uint16_t group)
 Function to create and initialize a new TIFF entry for image data (size).

Variables

const NikonArrayIdx nikonArrayIdx []
 Nikon binary array version lookup table.
const TiffGroupInfo tiffGroupInfo []
 List of groups and their names.
const TiffType ttUnsignedByte = 1
 Exif BYTE type.
const TiffType ttAsciiString = 2
 Exif ASCII type.
const TiffType ttUnsignedShort = 3
 Exif SHORT type.
const TiffType ttUnsignedLong = 4
 Exif LONG type.
const TiffType ttUnsignedRational = 5
 Exif RATIONAL type.
const TiffType ttSignedByte = 6
 Exif SBYTE type.
const TiffType ttUndefined = 7
 Exif UNDEFINED type.
const TiffType ttSignedShort = 8
 Exif SSHORT type.
const TiffType ttSignedLong = 9
 Exif SLONG type.
const TiffType ttSignedRational = 10
 Exif SRATIONAL type.
const TiffType ttTiffFloat = 11
 TIFF FLOAT type.
const TiffType ttTiffDouble = 12
 TIFF DOUBLE type.
const TiffType ttTiffIfd = 13
 TIFF IFD type.
const CryptFct notEncrypted = 0
 Constant for non-encrypted binary arrays.
const ArrayCfg canonCsCfg
 Canon Camera Settings binary array - configuration.
const ArrayDef canonCsDef []
 Canon Camera Settings binary array - definition.
const ArrayCfg canonSiCfg
 Canon Shot Info binary array - configuration.
const ArrayCfg canonPaCfg
 Canon Panorama binary array - configuration.
const ArrayCfg canonCfCfg
 Canon Custom Function binary array - configuration.
const ArrayCfg canonPiCfg
 Canon Picture Info binary array - configuration.
const ArrayCfg canonFiCfg
 Canon File Info binary array - configuration.
const ArrayDef canonFiDef []
 Canon File Info binary array - definition.
const ArrayCfg nikonVrCfg
 Nikon Vibration Reduction binary array - configuration.
const ArrayDef nikonVrDef []
 Nikon Vibration Reduction binary array - definition.
const ArrayCfg nikonPcCfg
 Nikon Picture Control binary array - configuration.
const ArrayDef nikonPcDef []
 Nikon Picture Control binary array - definition.
const ArrayCfg nikonWtCfg
 Nikon World Time binary array - configuration.
const ArrayDef nikonWtDef []
 Nikon World Time binary array - definition.
const ArrayCfg nikonIiCfg
 Nikon ISO info binary array - configuration.
const ArrayDef nikonIiDef []
 Nikon ISO info binary array - definition.
const ArrayCfg nikonAfCfg
 Nikon Auto Focus binary array - configuration.
const ArrayDef nikonAfDef []
 Nikon Auto Focus binary array - definition.
const ArrayCfg nikonSi1Cfg
 Nikon Shot Info binary array - configuration 1 (D80).
const ArrayDef nikonSi1Def []
 Nikon Shot Info binary array - definition 1 (D80).
const ArrayCfg nikonSi2Cfg
 Nikon Shot Info binary array - configuration 2 (D40).
const ArrayDef nikonSi2Def []
 Nikon Shot Info binary array - definition 2 (D40).
const ArrayCfg nikonSi3Cfg
 Nikon Shot Info binary array - configuration 3 (D300a).
const ArrayDef nikonSi3Def []
 Nikon Shot Info binary array - definition 3 (D300a).
const ArrayCfg nikonSi4Cfg
 Nikon Shot Info binary array - configuration 4 (D300b).
const ArrayDef nikonSi4Def []
 Nikon Shot Info binary array - definition 4 (D300b).
const ArrayCfg nikonSi5Cfg
 Nikon Shot Info binary array - configuration 5 (ver 02.xx).
const ArrayDef nikonSi5Def []
 Nikon Shot Info binary array - definition 5 (ver 01.xx and ver 02.xx).
const ArrayCfg nikonSi6Cfg
 Nikon Shot Info binary array - configuration 6 (ver 01.xx).
const ArraySet nikonSiSet []
 Nikon Lens Data configurations and definitions.
const ArrayCfg nikonLd1Cfg
 Nikon Lens Data binary array - configuration 1.
const ArrayCfg nikonLd2Cfg
 Nikon Lens Data binary array - configuration 2.
const ArrayCfg nikonLd3Cfg
 Nikon Lens Data binary array - configuration 3.
const ArrayDef nikonLdDef []
 Nikon Lens Data binary array - definition.
const ArraySet nikonLdSet []
 Nikon Lens Data configurations and definitions.
const ArrayCfg nikonCb1Cfg
 Nikon Color Balance binary array - configuration 1.
const ArrayCfg nikonCb2Cfg
 Nikon Color Balance binary array - configuration 2.
const ArrayCfg nikonCb2aCfg
 Nikon Color Balance binary array - configuration 2a.
const ArrayCfg nikonCb2bCfg
 Nikon Color Balance binary array - configuration 2b.
const ArrayCfg nikonCb3Cfg
 Nikon Color Balance binary array - configuration 3.
const ArrayCfg nikonCb4Cfg
 Nikon Color Balance binary array - configuration 4.
const ArrayDef nikonCb1Def []
 Nikon Color Balance binary array - definition 1 (D100).
const ArrayDef nikonCb2Def []
 Nikon Color Balance binary array - definition 2 (D2H).
const ArrayDef nikonCb2aDef []
 Nikon Color Balance binary array - definition 2a (D50).
const ArrayDef nikonCb2bDef []
 Nikon Color Balance binary array - definition 2b (D2X=0204,D2Hs=0206,D200=0207,D40=0208).
const ArrayDef nikonCb3Def []
 Nikon Color Balance binary array - definition 3 (D70).
const ArrayDef nikonCb4Def []
 Nikon Color Balance binary array - definition 4 (D3).
const ArraySet nikonCbSet []
 Nikon Color Balance configurations and definitions.
const ArrayCfg minoCsoCfg
 Minolta Camera Settings (old) binary array - configuration.
const ArrayCfg minoCsnCfg
 Minolta Camera Settings (new) binary array - configuration.
const ArrayCfg minoCs7Cfg
 Minolta 7D Camera Settings binary array - configuration.
const ArrayDef minoCs7Def []
 Minolta 7D Camera Settings binary array - definition.
const ArrayCfg minoCs5Cfg
 Minolta 5D Camera Settings binary array - configuration.
const ArrayDef minoCs5Def []
 Minolta 5D Camera Settings binary array - definition.


Detailed Description

Contains internal objects which are not published and are not part of the libexiv2 API.

Function Documentation

DataBuf Exiv2::Internal::nikonCrypt uint16_t  tag,
const byte pData,
uint32_t  size,
TiffComponent *const   pRoot
 

Encrypt and decrypt Nikon data.

Checks the version of the Nikon data array and en/decrypts (portions of) it as needed. (The Nikon encryption algorithm is symmetric.)

Note:
This function requires access to other components of the composite, it should only be called after all other components are read.
Parameters:
tag Tag number of the binary array
pData Pointer to the start of the data to en/decrypt.
size Size of the data buffer.
pRoot Pointer to the root element of the composite.
Returns:
En/decrypted data. Ownership of the memory is passed to the caller. The buffer may be empty in case no decryption was needed.

int Exiv2::Internal::nikonSelector uint16_t  tag,
const byte pData,
uint32_t  size,
TiffComponent *const   pRoot
 

Function to select cfg + def of a Nikon complex binary array.

Parameters:
tag Tag number of the binary array
pData Pointer to the raw array data.
size Size of the array data.
pRoot Pointer to the root component of the TIFF tree.
Returns:
An index into the array set, -1 if no match was found.


Variable Documentation

const ArrayCfg Exiv2::Internal::canonCfCfg
 

Initial value:

 {
        Group::canoncf,   
        invalidByteOrder, 
        ttUnsignedShort,  
        notEncrypted,     
        true,             
        false,            
        { 0, ttUnsignedShort, 1 }
    }
Canon Custom Function binary array - configuration.

const ArrayCfg Exiv2::Internal::canonCsCfg
 

Initial value:

 {
        Group::canoncs,   
        invalidByteOrder, 
        ttUnsignedShort,  
        notEncrypted,     
        true,             
        false,            
        { 0, ttUnsignedShort, 1 }
    }
Canon Camera Settings binary array - configuration.

const ArrayDef Exiv2::Internal::canonCsDef[]
 

Initial value:

 {
        { 46, ttUnsignedShort, 3 } 
    }
Canon Camera Settings binary array - definition.

const ArrayCfg Exiv2::Internal::canonFiCfg
 

Initial value:

 {
        Group::canonfi,   
        invalidByteOrder, 
        ttUnsignedShort,  
        notEncrypted,     
        true,             
        false,            
        { 0, ttSignedShort, 1 }
    }
Canon File Info binary array - configuration.

const ArrayDef Exiv2::Internal::canonFiDef[]
 

Initial value:

 {
        { 2, ttUnsignedLong, 1 }
    }
Canon File Info binary array - definition.

const ArrayCfg Exiv2::Internal::canonPaCfg
 

Initial value:

 {
        Group::canonpa,   
        invalidByteOrder, 
        ttUnsignedShort,  
        notEncrypted,     
        false,            
        false,            
        { 0, ttUnsignedShort, 1 }
    }
Canon Panorama binary array - configuration.

const ArrayCfg Exiv2::Internal::canonPiCfg
 

Initial value:

 {
        Group::canonpi,   
        invalidByteOrder, 
        ttUnsignedShort,  
        notEncrypted,     
        false,            
        false,            
        { 0, ttUnsignedShort, 1 }
    }
Canon Picture Info binary array - configuration.

const ArrayCfg Exiv2::Internal::canonSiCfg
 

Initial value:

 {
        Group::canonsi,   
        invalidByteOrder, 
        ttUnsignedShort,  
        notEncrypted,     
        true,             
        false,            
        { 0, ttUnsignedShort, 1 }
    }
Canon Shot Info binary array - configuration.

const ArrayCfg Exiv2::Internal::minoCs5Cfg
 

Initial value:

 {
        Group::minocs5,   
        bigEndian,        
        ttUndefined,      
        notEncrypted,     
        false,            
        false,            
        { 0, ttUnsignedShort, 1 }
    }
Minolta 5D Camera Settings binary array - configuration.

const ArrayDef Exiv2::Internal::minoCs5Def[]
 

Initial value:

 {
        { 146, ttSignedShort, 1 } 
    }
Minolta 5D Camera Settings binary array - definition.

const ArrayCfg Exiv2::Internal::minoCs7Cfg
 

Initial value:

 {
        Group::minocs7,   
        bigEndian,        
        ttUndefined,      
        notEncrypted,     
        false,            
        false,            
        { 0, ttUnsignedShort, 1 }
    }
Minolta 7D Camera Settings binary array - configuration.

const ArrayDef Exiv2::Internal::minoCs7Def[]
 

Initial value:

 {
        {  60, ttSignedShort, 1 }, 
        { 126, ttSignedShort, 1 }  
    }
Minolta 7D Camera Settings binary array - definition.

const ArrayCfg Exiv2::Internal::minoCsnCfg
 

Initial value:

 {
        Group::minocsn,   
        bigEndian,        
        ttUndefined,      
        notEncrypted,     
        false,            
        false,            
        { 0, ttUnsignedLong, 1 }
    }
Minolta Camera Settings (new) binary array - configuration.

const ArrayCfg Exiv2::Internal::minoCsoCfg
 

Initial value:

 {
        Group::minocso,   
        bigEndian,        
        ttUndefined,      
        notEncrypted,     
        false,            
        false,            
        { 0, ttUnsignedLong, 1 }
    }
Minolta Camera Settings (old) binary array - configuration.

const ArrayCfg Exiv2::Internal::nikonAfCfg
 

Initial value:

 {
        Group::nikonaf,   
        littleEndian,     
        ttUndefined,      
        notEncrypted,     
        false,            
        true,             
        { 0, ttUnsignedByte,  1 }
    }
Nikon Auto Focus binary array - configuration.

const ArrayDef Exiv2::Internal::nikonAfDef[]
 

Initial value:

 {
        { 2, ttUnsignedShort, 1 } 
    }
Nikon Auto Focus binary array - definition.

const NikonArrayIdx Exiv2::Internal::nikonArrayIdx[]
 

Initial value:

 {
        
        { 0x0091, "0208",    0, 0,   4 }, 
        { 0x0091, "0209",    0, 1,   4 }, 
        { 0x0091, "0210", 5291, 2,   4 }, 
        { 0x0091, "0210", 5303, 3,   4 }, 
        { 0x0091, "02",      0, 4,   4 }, 
        { 0x0091, "01",      0, 5,  NA }, 
        
        { 0x0097, "0100",    0, 0,  NA },
        { 0x0097, "0102",    0, 1,  NA },
        { 0x0097, "0103",    0, 4,  NA },
        { 0x0097, "0204",    0, 3, 284 },
        { 0x0097, "0205",    0, 2,   4 },
        { 0x0097, "0206",    0, 3, 284 },
        { 0x0097, "0207",    0, 3, 284 },
        { 0x0097, "0208",    0, 3, 284 },
        { 0x0097, "0209",    0, 5, 284 },
        
        { 0x0098, "0100",    0, 0,  NA },
        { 0x0098, "0101",    0, 1,  NA },
        { 0x0098, "0201",    0, 1,   4 },
        { 0x0098, "0202",    0, 1,   4 },
        { 0x0098, "0203",    0, 1,   4 },
        { 0x0098, "0204",    0, 2,   4 }
    }
Nikon binary array version lookup table.

const ArrayCfg Exiv2::Internal::nikonCb1Cfg
 

Initial value:

 {
        Group::nikoncb1,  
        invalidByteOrder, 
        ttUndefined,      
        notEncrypted,     
        false,            
        false,            
        { 0, ttUnsignedShort, 1 }
    }
Nikon Color Balance binary array - configuration 1.

const ArrayDef Exiv2::Internal::nikonCb1Def[]
 

Initial value:

 {
        {  0, ttUndefined,        4 }, 
        {  4, ttUnsignedShort,   34 }, 
        { 72, ttUnsignedShort,    4 }, 
        { 80, ttUnsignedShort, 9999 }  
    }
Nikon Color Balance binary array - definition 1 (D100).

const ArrayCfg Exiv2::Internal::nikonCb2aCfg
 

Initial value:

 {
        Group::nikoncb2a, 
        invalidByteOrder, 
        ttUndefined,      
        nikonCrypt,       
        false,            
        false,            
        { 0, ttUnsignedShort, 1 }
    }
Nikon Color Balance binary array - configuration 2a.

const ArrayDef Exiv2::Internal::nikonCb2aDef[]
 

Initial value:

 {
        {  0, ttUndefined,        4 }, 
        {  4, ttUnsignedShort,    7 }, 
        { 18, ttUnsignedShort,    4 }, 
        { 26, ttUnsignedShort, 9999 }  
    }
Nikon Color Balance binary array - definition 2a (D50).

const ArrayCfg Exiv2::Internal::nikonCb2bCfg
 

Initial value:

 {
        Group::nikoncb2b, 
        invalidByteOrder, 
        ttUndefined,      
        nikonCrypt,       
        false,            
        false,            
        { 0, ttUnsignedShort, 1 }
    }
Nikon Color Balance binary array - configuration 2b.

const ArrayDef Exiv2::Internal::nikonCb2bDef[]
 

Initial value:

 {
        {  0, ttUndefined,        4 }, 
        {  4, ttUnsignedShort,  140 }, 
        {284, ttUnsignedShort,    3 }, 
        {290, ttUnsignedShort,    4 }, 
        {298, ttUnsignedShort, 9999 }  
    }
Nikon Color Balance binary array - definition 2b (D2X=0204,D2Hs=0206,D200=0207,D40=0208).

const ArrayCfg Exiv2::Internal::nikonCb2Cfg
 

Initial value:

 {
        Group::nikoncb2,  
        invalidByteOrder, 
        ttUndefined,      
        nikonCrypt,       
        false,            
        false,            
        { 0, ttUnsignedShort, 1 }
    }
Nikon Color Balance binary array - configuration 2.

const ArrayDef Exiv2::Internal::nikonCb2Def[]
 

Initial value:

 {
        {  0, ttUndefined,        4 }, 
        {  4, ttUnsignedShort,    3 }, 
        { 10, ttUnsignedShort,    4 }, 
        { 18, ttUnsignedShort, 9999 }  
    }
Nikon Color Balance binary array - definition 2 (D2H).

const ArrayCfg Exiv2::Internal::nikonCb3Cfg
 

Initial value:

 {
        Group::nikoncb3,  
        invalidByteOrder, 
        ttUndefined,      
        notEncrypted,     
        false,            
        false,            
        { 0, ttUnsignedShort, 1 }
    }
Nikon Color Balance binary array - configuration 3.

const ArrayDef Exiv2::Internal::nikonCb3Def[]
 

Initial value:

 {
        {  0, ttUndefined,        4 }, 
        {  4, ttUnsignedShort,    8 }, 
        { 20, ttUnsignedShort,    4 }, 
        { 28, ttUnsignedShort, 9999 }  
    }
Nikon Color Balance binary array - definition 3 (D70).

const ArrayCfg Exiv2::Internal::nikonCb4Cfg
 

Initial value:

 {
        Group::nikoncb4,  
        invalidByteOrder, 
        ttUndefined,      
        nikonCrypt,       
        false,            
        false,            
        { 0, ttUnsignedShort, 1 }
    }
Nikon Color Balance binary array - configuration 4.

const ArrayDef Exiv2::Internal::nikonCb4Def[]
 

Initial value:

 {
        {  0, ttUndefined,        4 }, 
        {  4, ttUnsignedShort,  140 }, 
        {284, ttUnsignedShort,    5 }, 
        {294, ttUnsignedShort,    4 }, 
        {302, ttUnsignedShort, 9999 }  
    }
Nikon Color Balance binary array - definition 4 (D3).

const ArraySet Exiv2::Internal::nikonCbSet[]
 

Initial value:

 {
        { nikonCb1Cfg,  nikonCb1Def,  EXV_COUNTOF(nikonCb1Def)  },
        { nikonCb2Cfg,  nikonCb2Def,  EXV_COUNTOF(nikonCb2Def)  },
        { nikonCb2aCfg, nikonCb2aDef, EXV_COUNTOF(nikonCb2aDef) },
        { nikonCb2bCfg, nikonCb2bDef, EXV_COUNTOF(nikonCb2bDef) },
        { nikonCb3Cfg,  nikonCb3Def,  EXV_COUNTOF(nikonCb3Def)  },
        { nikonCb4Cfg,  nikonCb4Def,  EXV_COUNTOF(nikonCb4Def)  }
    }
Nikon Color Balance configurations and definitions.

const ArrayCfg Exiv2::Internal::nikonIiCfg
 

Initial value:

 {
        Group::nikonii,   
        bigEndian,        
        ttUndefined,      
        notEncrypted,     
        false,            
        true,             
        { 0, ttUnsignedByte,  1 }
    }
Nikon ISO info binary array - configuration.

const ArrayDef Exiv2::Internal::nikonIiDef[]
 

Initial value:

 {
        {  4, ttUnsignedShort, 1 },
        { 10, ttUnsignedShort, 1 },
        { 13, ttUnsignedByte,  1 }  
    }
Nikon ISO info binary array - definition.

const ArrayCfg Exiv2::Internal::nikonLd1Cfg
 

Initial value:

 {
        Group::nikonld1,  
        invalidByteOrder, 
        ttUndefined,      
        notEncrypted,     
        false,            
        true,             
        { 0, ttUnsignedByte,  1 }
    }
Nikon Lens Data binary array - configuration 1.

const ArrayCfg Exiv2::Internal::nikonLd2Cfg
 

Initial value:

 {
        Group::nikonld2,  
        invalidByteOrder, 
        ttUndefined,      
        nikonCrypt,       
        false,            
        true,             
        { 0, ttUnsignedByte,  1 }
    }
Nikon Lens Data binary array - configuration 2.

const ArrayCfg Exiv2::Internal::nikonLd3Cfg
 

Initial value:

 {
        Group::nikonld3,  
        invalidByteOrder, 
        ttUndefined,      
        nikonCrypt,       
        false,            
        true,             
        { 0, ttUnsignedByte,  1 }
    }
Nikon Lens Data binary array - configuration 3.

const ArrayDef Exiv2::Internal::nikonLdDef[]
 

Initial value:

 {
        { 0, ttUndefined, 4 } 
    }
Nikon Lens Data binary array - definition.

const ArraySet Exiv2::Internal::nikonLdSet[]
 

Initial value:

 {
        { nikonLd1Cfg, nikonLdDef, EXV_COUNTOF(nikonLdDef) },
        { nikonLd2Cfg, nikonLdDef, EXV_COUNTOF(nikonLdDef) },
        { nikonLd3Cfg, nikonLdDef, EXV_COUNTOF(nikonLdDef) }
    }
Nikon Lens Data configurations and definitions.

const ArrayCfg Exiv2::Internal::nikonPcCfg
 

Initial value:

 {
        Group::nikonpc,   
        invalidByteOrder, 
        ttUndefined,      
        notEncrypted,     
        false,            
        true,             
        { 0, ttUnsignedByte,  1 }
    }
Nikon Picture Control binary array - configuration.

const ArrayDef Exiv2::Internal::nikonPcDef[]
 

Initial value:

 {
        {  0, ttUndefined,     4 }, 
        {  4, ttAsciiString,  20 },
        { 24, ttAsciiString,  20 },
        { 57, ttUnsignedByte,  1 }  
    }
Nikon Picture Control binary array - definition.

const ArrayCfg Exiv2::Internal::nikonSi1Cfg
 

Initial value:

 {
        Group::nikonsi1,  
        bigEndian,        
        ttUndefined,      
        nikonCrypt,       
        false,            
        true,             
        { 0, ttUnsignedByte,  1 }
    }
Nikon Shot Info binary array - configuration 1 (D80).

const ArrayDef Exiv2::Internal::nikonSi1Def[]
 

Initial value:

 {
        {    0, ttUndefined,    4 }, 
        {  586, ttUnsignedLong, 1 }, 
        { 1155, ttUnsignedByte, 1 }  
    }
Nikon Shot Info binary array - definition 1 (D80).

const ArrayCfg Exiv2::Internal::nikonSi2Cfg
 

Initial value:

 {
        Group::nikonsi2,  
        bigEndian,        
        ttUndefined,      
        nikonCrypt,       
        false,            
        true,             
        { 0, ttUnsignedByte,  1 }
    }
Nikon Shot Info binary array - configuration 2 (D40).

const ArrayDef Exiv2::Internal::nikonSi2Def[]
 

Initial value:

 {
        {    0, ttUndefined,    4 }, 
        {  582, ttUnsignedLong, 1 }, 
        { 1112, ttUnsignedByte, 1 }  
    }
Nikon Shot Info binary array - definition 2 (D40).

const ArrayCfg Exiv2::Internal::nikonSi3Cfg
 

Initial value:

 {
        Group::nikonsi3,  
        bigEndian,        
        ttUndefined,      
        nikonCrypt,       
        false,            
        true,             
        { 0, ttUnsignedByte,  1 }
    }
Nikon Shot Info binary array - configuration 3 (D300a).

const ArrayDef Exiv2::Internal::nikonSi3Def[]
 

Initial value:

 {
        {    0, ttUndefined,     4 }, 
        {  633, ttUnsignedLong,  1 }, 
        {  721, ttUnsignedShort, 1 }, 
        {  814, ttUndefined,  4478 }  
    }
Nikon Shot Info binary array - definition 3 (D300a).

const ArrayCfg Exiv2::Internal::nikonSi4Cfg
 

Initial value:

 {
        Group::nikonsi4,  
        bigEndian,        
        ttUndefined,      
        nikonCrypt,       
        false,            
        true,             
        { 0, ttUnsignedByte,  1 }
    }
Nikon Shot Info binary array - configuration 4 (D300b).

const ArrayDef Exiv2::Internal::nikonSi4Def[]
 

Initial value:

 {
        {    0, ttUndefined,     4 }, 
        {  644, ttUnsignedLong,  1 }, 
        {  732, ttUnsignedShort, 1 }, 
        {  826, ttUndefined,  4478 }  
    }
Nikon Shot Info binary array - definition 4 (D300b).

const ArrayCfg Exiv2::Internal::nikonSi5Cfg
 

Initial value:

 {
        Group::nikonsi5,  
        bigEndian,        
        ttUndefined,      
        nikonCrypt,       
        false,            
        false,            
        { 0, ttUnsignedByte,  1 }
    }
Nikon Shot Info binary array - configuration 5 (ver 02.xx).

const ArrayDef Exiv2::Internal::nikonSi5Def[]
 

Initial value:

 {
        {    0, ttUndefined,     4 }, 
        {  106, ttUnsignedLong,  1 }, 
        {  110, ttUnsignedLong,  1 }, 
        {  343, ttUndefined,     2 }, 
        {  630, ttUnsignedLong,  1 }  
    }
Nikon Shot Info binary array - definition 5 (ver 01.xx and ver 02.xx).

const ArrayCfg Exiv2::Internal::nikonSi6Cfg
 

Initial value:

 {
        Group::nikonsi6,  
        bigEndian,        
        ttUndefined,      
        notEncrypted,     
        false,            
        false,            
        { 0, ttUnsignedByte,  1 }
    }
Nikon Shot Info binary array - configuration 6 (ver 01.xx).

const ArraySet Exiv2::Internal::nikonSiSet[]
 

Initial value:

 {
        { nikonSi1Cfg, nikonSi1Def, EXV_COUNTOF(nikonSi1Def) },
        { nikonSi2Cfg, nikonSi2Def, EXV_COUNTOF(nikonSi2Def) },
        { nikonSi3Cfg, nikonSi3Def, EXV_COUNTOF(nikonSi3Def) },
        { nikonSi4Cfg, nikonSi4Def, EXV_COUNTOF(nikonSi4Def) },
        { nikonSi5Cfg, nikonSi5Def, EXV_COUNTOF(nikonSi5Def) },
        { nikonSi6Cfg, nikonSi5Def, EXV_COUNTOF(nikonSi5Def) }  
    }
Nikon Lens Data configurations and definitions.

const ArrayCfg Exiv2::Internal::nikonVrCfg
 

Initial value:

 {
        Group::nikonvr,   
        invalidByteOrder, 
        ttUndefined,      
        notEncrypted,     
        false,            
        true,             
        { 0, ttUnsignedByte,  1 }
    }
Nikon Vibration Reduction binary array - configuration.

const ArrayDef Exiv2::Internal::nikonVrDef[]
 

Initial value:

 {
        { 0, ttUndefined,     4 }, 
        { 7, ttUnsignedByte,  1 }  
    }
Nikon Vibration Reduction binary array - definition.

const ArrayCfg Exiv2::Internal::nikonWtCfg
 

Initial value:

 {
        Group::nikonwt,   
        invalidByteOrder, 
        ttUndefined,      
        notEncrypted,     
        false,            
        true,             
        { 0, ttUnsignedByte,  1 }
    }
Nikon World Time binary array - configuration.

const ArrayDef Exiv2::Internal::nikonWtDef[]
 

Initial value:

 {
        { 0, ttSignedShort,   1 },
        { 3, ttUnsignedByte,  1 }
    }
Nikon World Time binary array - definition.


Generated on Thu Dec 31 03:58:15 2009 for Exiv2 by  doxygen 1.3.9.1