Exiv2
Classes | Namespaces | Typedefs | Functions
makernote_int.hpp File Reference

Makernote factory and registry, IFD makernote header, and camera vendor specific makernote implementations.
References:
[1] ExifTool by Phil Harvey
[2] Decoding raw digital photos in Linux by Dave Coffin. More...

#include "tifffwd_int.hpp"
#include "tags_int.hpp"
#include "ini.hpp"
#include "types.hpp"
#include <string>

Go to the source code of this file.

Classes

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::PentaxDngMnHeader
 Header of an Pentax DNG Makernote. More...
 
class  Exiv2::Internal::PentaxMnHeader
 Header of an Pentax Makernote. More...
 
class  Exiv2::Internal::SamsungMnHeader
 Header of a Samsung Makernote, only used for the relative offset. More...
 
class  Exiv2::Internal::SigmaMnHeader
 Header of a Sigma Makernote. More...
 
class  Exiv2::Internal::SonyMnHeader
 Header of a Sony Makernote. More...
 
class  Exiv2::Internal::Casio2MnHeader
 Header of a Casio2 Makernote. More...
 

Namespaces

 Exiv2
 Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of the objects of this namespace.
 
 Exiv2::Internal
 Contains internal objects which are not published and are not part of the libexiv2 API.
 

Typedefs

typedef TiffComponent *(* Exiv2::Internal::NewMnFct) (uint16_t tag, IfdId group, IfdId mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Type for a pointer to a function creating a makernote (image)
 
typedef TiffComponent *(* Exiv2::Internal::NewMnFct2) (uint16_t tag, IfdId group, IfdId mnGroup)
 Type for a pointer to a function creating a makernote (group)
 

Functions

std::string Exiv2::Internal::getExiv2ConfigPath ()
 Determine the path to the Exiv2 configuration file.
 
std::string Exiv2::Internal::readExiv2Config (const std::string &section, const std::string &value, const std::string &def)
 Read value from Exiv2 configuration file.
 
TiffComponent * Exiv2::Internal::newIfdMn (uint16_t tag, IfdId group, IfdId mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Function to create a simple IFD makernote (Canon, Minolta, Nikon1)
 
TiffComponent * Exiv2::Internal::newIfdMn2 (uint16_t tag, IfdId group, IfdId mnGroup)
 Function to create a simple IFD makernote (Canon, Minolta, Nikon1)
 
TiffComponent * Exiv2::Internal::newOlympusMn (uint16_t tag, IfdId group, IfdId mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Function to create an Olympus makernote.
 
TiffComponent * Exiv2::Internal::newOlympusMn2 (uint16_t tag, IfdId group, IfdId mnGroup)
 Function to create an Olympus makernote.
 
TiffComponent * Exiv2::Internal::newOlympus2Mn2 (uint16_t tag, IfdId group, IfdId mnGroup)
 Function to create an Olympus II makernote.
 
TiffComponent * Exiv2::Internal::newFujiMn (uint16_t tag, IfdId group, IfdId mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Function to create a Fujifilm makernote.
 
TiffComponent * Exiv2::Internal::newFujiMn2 (uint16_t tag, IfdId group, IfdId mnGroup)
 Function to create a Fujifilm makernote.
 
TiffComponent * Exiv2::Internal::newNikonMn (uint16_t tag, IfdId group, IfdId mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Function to create a Nikon makernote. This will create the appropriate Nikon 1, 2 or 3 makernote, based on the arguments.
 
TiffComponent * Exiv2::Internal::newNikon2Mn2 (uint16_t tag, IfdId group, IfdId mnGroup)
 Function to create a Nikon2 makernote.
 
TiffComponent * Exiv2::Internal::newNikon3Mn2 (uint16_t tag, IfdId group, IfdId mnGroup)
 Function to create a Nikon3 makernote.
 
TiffComponent * Exiv2::Internal::newPanasonicMn (uint16_t tag, IfdId group, IfdId mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Function to create a Panasonic makernote.
 
TiffComponent * Exiv2::Internal::newPanasonicMn2 (uint16_t tag, IfdId group, IfdId mnGroup)
 Function to create a Panasonic makernote.
 
TiffComponent * Exiv2::Internal::newPentaxMn (uint16_t tag, IfdId group, IfdId mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Function to create an Pentax makernote.
 
TiffComponent * Exiv2::Internal::newPentaxMn2 (uint16_t tag, IfdId group, IfdId mnGroup)
 Function to create an Pentax makernote.
 
TiffComponent * Exiv2::Internal::newPentaxDngMn2 (uint16_t tag, IfdId group, IfdId mnGroup)
 Function to create an Pentax DNG makernote.
 
TiffComponent * Exiv2::Internal::newSamsungMn (uint16_t tag, IfdId group, IfdId mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Function to create a Samsung makernote.
 
TiffComponent * Exiv2::Internal::newSamsungMn2 (uint16_t tag, IfdId group, IfdId mnGroup)
 Function to create a Samsung makernote.
 
TiffComponent * Exiv2::Internal::newSigmaMn (uint16_t tag, IfdId group, IfdId mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Function to create a Sigma makernote.
 
TiffComponent * Exiv2::Internal::newSigmaMn2 (uint16_t tag, IfdId group, IfdId mnGroup)
 Function to create a Sigma makernote.
 
TiffComponent * Exiv2::Internal::newSonyMn (uint16_t tag, IfdId group, IfdId mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Function to create a Sony makernote.
 
TiffComponent * Exiv2::Internal::newSony1Mn2 (uint16_t tag, IfdId group, IfdId mnGroup)
 Function to create a Sony1 makernote.
 
TiffComponent * Exiv2::Internal::newSony2Mn2 (uint16_t tag, IfdId group, IfdId mnGroup)
 Function to create a Sony2 makernote.
 
TiffComponent * Exiv2::Internal::newCasioMn (uint16_t tag, IfdId group, IfdId mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Function to create a Casio2 makernote.
 
TiffComponent * Exiv2::Internal::newCasio2Mn2 (uint16_t tag, IfdId group, IfdId mnGroup)
 Function to create a Casio2 makernote.
 
int Exiv2::Internal::sonyCsSelector (uint16_t tag, const byte *pData, uint32_t size, TiffComponent *const pRoot)
 Function to select cfg + def of the Sony Camera Settings complex binary array. More...
 
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. More...
 
int Exiv2::Internal::nikonAf2Selector (uint16_t tag, const byte *pData, uint32_t size, TiffComponent *const pRoot)
 Function to select cfg + def of a Nikon complex binary array. More...
 
DataBuf Exiv2::Internal::nikonCrypt (uint16_t tag, const byte *pData, uint32_t size, TiffComponent *const pRoot)
 Encrypt and decrypt Nikon data. More...
 

Detailed Description

Makernote factory and registry, IFD makernote header, and camera vendor specific makernote implementations.
References:
[1] ExifTool by Phil Harvey
[2] Decoding raw digital photos in Linux by Dave Coffin.

Author
Andreas Huggel (ahu) ahuggel@gmx.net
Date
11-Apr-06, ahu: created