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

Namespaces

namespace  Exiv2
 

Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of the objects of this namespace.


namespace  Exiv2::Internal
 

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


namespace  Exiv2::Internal::Group

Typedefs

typedef TiffComponent *(* Exiv2::Internal::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 *(* Exiv2::Internal::NewMnFct2 )(uint16_t tag, uint16_t group, uint16_t mnGroup)
 Type for a pointer to a function creating a makernote (group).

Functions

TiffComponent * Exiv2::Internal::newIfdMn (uint16_t tag, uint16_t group, uint16_t 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, uint16_t group, uint16_t mnGroup)
 Function to create a simple IFD makernote (Canon, Minolta, Nikon1).
TiffComponent * Exiv2::Internal::newOlympusMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Function to create an Olympus makernote.
TiffComponent * Exiv2::Internal::newOlympusMn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create an Olympus makernote.
TiffComponent * Exiv2::Internal::newOlympus2Mn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create an Olympus II makernote.
TiffComponent * Exiv2::Internal::newFujiMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Function to create a Fujifilm makernote.
TiffComponent * Exiv2::Internal::newFujiMn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create a Fujifilm makernote.
TiffComponent * Exiv2::Internal::newNikonMn (uint16_t tag, uint16_t group, uint16_t 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, uint16_t group, uint16_t mnGroup)
 Function to create a Nikon2 makernote.
TiffComponent * Exiv2::Internal::newNikon3Mn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create a Nikon3 makernote.
TiffComponent * Exiv2::Internal::newPanasonicMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Function to create a Panasonic makernote.
TiffComponent * Exiv2::Internal::newPanasonicMn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create a Panasonic makernote.
TiffComponent * Exiv2::Internal::newPentaxMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Function to create an Pentax makernote.
TiffComponent * Exiv2::Internal::newPentaxMn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create an Pentax makernote.
TiffComponent * Exiv2::Internal::newSigmaMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Function to create a Sigma makernote.
TiffComponent * Exiv2::Internal::newSigmaMn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create a Sigma makernote.
TiffComponent * Exiv2::Internal::newSonyMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
 Function to create a Sony makernote.
TiffComponent * Exiv2::Internal::newSony1Mn2 (uint16_t tag, uint16_t group, uint16_t mnGroup)
 Function to create a Sony1 makernote.
TiffComponent * Exiv2::Internal::newSony2Mn2 (uint16_t tag, uint16_t group, uint16_t 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.
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.
DataBuf Exiv2::Internal::nikonCrypt (uint16_t tag, const byte *pData, uint32_t size, TiffComponent *const pRoot)
 Encrypt and decrypt Nikon data.

Variables

const uint16_t Exiv2::Internal::Group::olympmn = 257
 any Olympus makernote
const uint16_t Exiv2::Internal::Group::fujimn = 258
 Fujifilm makernote.
const uint16_t Exiv2::Internal::Group::canonmn = 259
 Canon makernote.
const uint16_t Exiv2::Internal::Group::canoncs = 260
 Canon camera settings.
const uint16_t Exiv2::Internal::Group::canonsi = 261
 Canon shot info.
const uint16_t Exiv2::Internal::Group::canoncf = 262
 Canon custom functions.
const uint16_t Exiv2::Internal::Group::nikonmn = 263
 Any Nikon makernote (pseudo group).
const uint16_t Exiv2::Internal::Group::nikon1mn = 264
 Nikon1 makernote.
const uint16_t Exiv2::Internal::Group::nikon2mn = 265
 Nikon2 makernote.
const uint16_t Exiv2::Internal::Group::nikon3mn = 266
 Nikon3 makernote.
const uint16_t Exiv2::Internal::Group::panamn = 267
 Panasonic makernote.
const uint16_t Exiv2::Internal::Group::sigmamn = 268
 Sigma makernote.
const uint16_t Exiv2::Internal::Group::sonymn = 269
 Any Sony makernote (pseudo group).
const uint16_t Exiv2::Internal::Group::sony1mn = 270
 Sony1 makernote.
const uint16_t Exiv2::Internal::Group::sony2mn = 271
 Sony2 makernote.
const uint16_t Exiv2::Internal::Group::minoltamn = 272
 Minolta makernote.
const uint16_t Exiv2::Internal::Group::minocso = 273
 Minolta camera settings (old).
const uint16_t Exiv2::Internal::Group::minocsn = 274
 Minolta camera settings (new).
const uint16_t Exiv2::Internal::Group::minocs5 = 275
 Minolta camera settings (D5).
const uint16_t Exiv2::Internal::Group::minocs7 = 276
 Minolta camera settings (D7).
const uint16_t Exiv2::Internal::Group::canonpi = 277
 Canon picture info.
const uint16_t Exiv2::Internal::Group::canonpa = 278
 Canon panorama.
const uint16_t Exiv2::Internal::Group::pentaxmn = 279
 Pentax makernote.
const uint16_t Exiv2::Internal::Group::nikonpv = 280
 Nikon preview sub-IFD.
const uint16_t Exiv2::Internal::Group::olymp1mn = 281
 Olympus makernote.
const uint16_t Exiv2::Internal::Group::olymp2mn = 282
 Olympus II makernote.
const uint16_t Exiv2::Internal::Group::olympcs = 283
 Olympus camera settings.
const uint16_t Exiv2::Internal::Group::olympeq = 284
 Olympus equipment tags.
const uint16_t Exiv2::Internal::Group::olymprd = 285
 Olympus raw development tags.
const uint16_t Exiv2::Internal::Group::olymprd2 = 286
 Olympus raw development 2 tags.
const uint16_t Exiv2::Internal::Group::olympip = 287
 Olympus image processing tags.
const uint16_t Exiv2::Internal::Group::olympfi = 288
 Olympus focus info tags.
const uint16_t Exiv2::Internal::Group::olympfe1 = 289
 Olympus FE 1 tags.
const uint16_t Exiv2::Internal::Group::olympfe2 = 290
 Olympus FE 2 tags.
const uint16_t Exiv2::Internal::Group::olympfe3 = 291
 Olympus FE 3 tags.
const uint16_t Exiv2::Internal::Group::olympfe4 = 292
 Olympus FE 4 tags.
const uint16_t Exiv2::Internal::Group::olympfe5 = 293
 Olympus FE 5 tags.
const uint16_t Exiv2::Internal::Group::olympfe6 = 294
 Olympus FE 6 tags.
const uint16_t Exiv2::Internal::Group::olympfe7 = 295
 Olympus FE 7 tags.
const uint16_t Exiv2::Internal::Group::olympfe8 = 296
 Olympus FE 8 tags.
const uint16_t Exiv2::Internal::Group::olympfe9 = 297
 Olympus FE 9 tags.
const uint16_t Exiv2::Internal::Group::olympri = 298
 Olympus raw info tags.
const uint16_t Exiv2::Internal::Group::nikonwt = 299
 Nikon World Time tags.
const uint16_t Exiv2::Internal::Group::nikonii = 300
 Nikon ISO Info tags.
const uint16_t Exiv2::Internal::Group::nikonld1 = 301
 Nikon Lens Data 1 tags.
const uint16_t Exiv2::Internal::Group::nikonld2 = 302
 Nikon Lens Data 2 tags.
const uint16_t Exiv2::Internal::Group::nikonld3 = 303
 Nikon Lens Data 3 tags.
const uint16_t Exiv2::Internal::Group::nikoncb1 = 304
 Nikon Color Balance 1 Tags.
const uint16_t Exiv2::Internal::Group::nikoncb2 = 305
 Nikon Color Balance 2 Tags.
const uint16_t Exiv2::Internal::Group::nikoncb2a = 306
 Nikon Color Balance 2 Tags.
const uint16_t Exiv2::Internal::Group::nikoncb2b = 307
 Nikon Color Balance 2 Tags.
const uint16_t Exiv2::Internal::Group::nikoncb3 = 308
 Nikon Color Balance 3 Tags.
const uint16_t Exiv2::Internal::Group::nikoncb4 = 309
 Nikon Color Balance 4 Tags.
const uint16_t Exiv2::Internal::Group::nikonvr = 310
 Nikon Vibration Reduction Tags.
const uint16_t Exiv2::Internal::Group::nikonpc = 311
 Nikon Picture Control Tags.
const uint16_t Exiv2::Internal::Group::nikonaf = 312
 Nikon Auto Focus Tags.
const uint16_t Exiv2::Internal::Group::nikonsi1 = 313
 Nikon Shot Info D80 Tags.
const uint16_t Exiv2::Internal::Group::nikonsi2 = 314
 Nikon Shot Info D40 Tags.
const uint16_t Exiv2::Internal::Group::nikonsi3 = 315
 Nikon Shot Info D300 Tags (a).
const uint16_t Exiv2::Internal::Group::nikonsi4 = 316
 Nikon Shot Info D300 Tags (b).
const uint16_t Exiv2::Internal::Group::nikonsi5 = 317
 Nikon Shot Info v2.* Tags.
const uint16_t Exiv2::Internal::Group::nikonsi6 = 318
 Nikon Shot Info v1.* Tags.
const uint16_t Exiv2::Internal::Group::canonfi = 320
 Canon File Info.
const uint16_t Exiv2::Internal::Group::sonymltmn = 330
 Sony Minolta Makernotes.
const uint16_t Exiv2::Internal::Group::sony1cs = 331
 Sony Camera Settings (in Sony1 makernote).
const uint16_t Exiv2::Internal::Group::sony1cs2 = 332
 Sony Camera Settings 2 (in Sony1 makernote).
const uint16_t Exiv2::Internal::Group::sony1mcso = 333
 Minolta (old) Camera Settings (in Sony1 makernote).
const uint16_t Exiv2::Internal::Group::sony1mcsn = 334
 Minolta (new) Camera Settings (in Sony1 makernote).
const uint16_t Exiv2::Internal::Group::sony1mcsa100 = 335
 Sony A100 Camera Settings (in Sony1 makernote).
const uint16_t Exiv2::Internal::Group::sony1mcs7 = 336
 Minolta D7 Camera Settings (in Sony1 makernote).
const uint16_t Exiv2::Internal::Group::sony2cs = 337
 Sony Camera Settings (in Sony2 makernote).
const uint16_t Exiv2::Internal::Group::sony2cs2 = 338
 Sony Camera Settings 2 (in Sony2 makernote).
const uint16_t Exiv2::Internal::Group::nikonfi = 362
 Nikon File Info Tags.
const uint16_t Exiv2::Internal::Group::nikonaf2 = 363
 Nikon Auto Focus 2 Tags.
const uint16_t Exiv2::Internal::Group::nikonme = 364
 Nikon Multi Exposure Tags.
const uint16_t Exiv2::Internal::Group::nikonfl1 = 365
 Nikon Flash Info 1 Tags.
const uint16_t Exiv2::Internal::Group::nikonfl2 = 366
 Nikon Flash Info 2 Tags.
const uint16_t Exiv2::Internal::Group::nikonfl3 = 367
 Nikon Flash Info 3 Tags.

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
2239
Author:
Andreas Huggel (ahu) ahuggel@gmx.net
Date:
11-Apr-06, ahu: created
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Thu Aug 5 04:00:37 2010 for Exiv2 by  doxygen 1.6.3