Exiv2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Namespaces | Constant Groups | 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 "types.hpp"
#include <string>
+ Include dependency graph for makernote_int.hpp:

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...
 

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.
 

Constant Groups

 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

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.
 
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...
 
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.

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