[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a
Maximiliano Curia
maxy at moszumanska.debian.org
Thu Jul 13 17:37:04 UTC 2017
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=782a845
The following commit has been merged in the master branch:
commit 782a845b868c5e66fa4a155f22228ceaee790541
Author: Andreas Huggel <ahuggel at gmx.net>
Date: Sun Mar 27 07:53:00 2005 +0000
Added the foundations for Olympus Makernote support
---
src/Makefile | 2 +-
src/ifd.cpp | 3 +
src/olympusmn.cpp | 286 +++++++++++++++++++++++++++++++++++++
src/{sigmamn.hpp => olympusmn.hpp} | 78 +++++-----
src/tags.cpp | 2 +
src/types.hpp | 2 +-
6 files changed, 334 insertions(+), 39 deletions(-)
diff --git a/src/Makefile b/src/Makefile
index 9ed42d8..17caef9 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -53,7 +53,7 @@ CCHDR = exv_conf.h exv_msvc.h error.hpp rcsid.hpp
# Add library C++ source files to this list
CCSRC = basicio.cpp canonmn.cpp datasets.cpp exif.cpp fujimn.cpp ifd.cpp \
image.cpp iptc.cpp jpgimage.cpp makernote.cpp metadatum.cpp nikonmn.cpp \
- sigmamn.cpp tags.cpp types.cpp value.cpp
+ olympusmn.cpp sigmamn.cpp tags.cpp types.cpp value.cpp
# Add source files of simple applications to this list
BINSRC = addmoddel.cpp dataarea-test.cpp exifcomment.cpp exifdata-test.cpp \
diff --git a/src/ifd.cpp b/src/ifd.cpp
index 5108e7c..8597ebd 100644
--- a/src/ifd.cpp
+++ b/src/ifd.cpp
@@ -289,6 +289,9 @@ namespace Exiv2 {
int Ifd::read(const byte* buf, long len, ByteOrder byteOrder, long offset)
{
+ // Todo: This is a hack to work around bug #424 - fix it properly!
+ if (ifdId_ == olympusIfdId) len = 65535;
+
int rc = 0;
long o = 0;
Ifd::PreEntries preEntries;
diff --git a/src/olympusmn.cpp b/src/olympusmn.cpp
new file mode 100644
index 0000000..57f1a50
--- /dev/null
+++ b/src/olympusmn.cpp
@@ -0,0 +1,286 @@
+// ***************************************************************** -*- C++ -*-
+/*
+ * Copyright (C) 2005 Andreas Huggel <ahuggel at gmx.net>
+ *
+ * This program is part of the Exiv2 distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+/*
+ File: olympusmn.cpp
+ Version: $Rev$
+ Author(s): Will Stokes (wuz) <wstokes at gmail.com>
+ Andreas Huggel (ahu) <ahuggel at gmx.net>
+ History: 10-Mar-05, wuz: created
+ Credits: Olympus MakerNote implemented according to the specification
+ in "???" by ???.
+ <http://???>
+ */
+
+// *****************************************************************************
+#include "rcsid.hpp"
+EXIV2_RCSID("@(#) $Id: olympusmn.cpp 1 2005-03-10 10:04:00 wuz $");
+
+// *****************************************************************************
+// included header files
+#include "types.hpp"
+#include "olympusmn.hpp"
+#include "makernote.hpp"
+#include "value.hpp"
+
+// + standard includes
+#include <string>
+#include <sstream>
+#include <iomanip>
+#include <cassert>
+
+// Define DEBUG_MAKERNOTE to output debug information to std::cerr
+#undef DEBUG_MAKERNOTE
+
+// *****************************************************************************
+// class member definitions
+namespace Exiv2 {
+
+ const OlympusMakerNote::RegisterMakerNote OlympusMakerNote::register_;
+
+ // Olympus Tag Info
+ const TagInfo OlympusMakerNote::tagInfo_[] = {
+ TagInfo(0x0200, "SpecialMode", "Picture taking mode (First Value: 0=normal, 2=fast, 3=panorama Second Value: sequence number Third Value: panorma direction (1=left to right, 2=right to left, 3 = bottom to top, 4=top to bottom)", olympusIfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x0201, "JpegQual", "JPEG quality 1=SQ 2=HQ 3=SHQ", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x0202, "Macro", "Macro mode 0=normal, 1=macro", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x0203, "0x0203", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x0204, "DigiZoom", "Digital Zoom Ratio 0=normal 2=2x digital zoom", olympusIfdId, makerTags, unsignedRational, printValue),
+ TagInfo(0x0205, "0x0205", "Unknown", olympusIfdId, makerTags, unsignedRational, printValue),
+ TagInfo(0x0206, "0x0206", "Unknown", olympusIfdId, makerTags, signedShort, printValue),
+ TagInfo(0x0207, "SoftwareRelease", "Software firmware version", olympusIfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0208, "PictInfo", "ASCII format data such as [PictureInfo]", olympusIfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0209, "CameraID", "CameraID data", olympusIfdId, makerTags, undefined, printValue),
+ TagInfo(0x0300, "0x0300", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x0301, "0x0301", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x0302, "0x0302", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x0303, "0x0303", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x0304, "0x0304", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x0f00, "DataDump", "Various camera settings", olympusIfdId, makerTags, undefined, print0x0f00),
+ TagInfo(0x1000, "0x1000", "Unknown", olympusIfdId, makerTags, signedRational, printValue),
+ TagInfo(0x1001, "0x1001", "Unknown", olympusIfdId, makerTags, signedRational, printValue),
+ TagInfo(0x1002, "0x1002", "Unknown", olympusIfdId, makerTags, signedRational, printValue),
+ TagInfo(0x1003, "0x1003", "Unknown", olympusIfdId, makerTags, signedRational, printValue),
+ TagInfo(0x1004, "0x1004", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1005, "0x1005", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1006, "0x1006", "Unknown", olympusIfdId, makerTags, signedRational, printValue),
+ TagInfo(0x1007, "0x1007", "Unknown", olympusIfdId, makerTags, signedShort, printValue),
+ TagInfo(0x1008, "0x1008", "Unknown", olympusIfdId, makerTags, signedShort, printValue),
+ TagInfo(0x1009, "0x1009", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x100a, "0x100a", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x100b, "0x100b", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x100c, "0x100c", "Unknown", olympusIfdId, makerTags, unsignedRational, printValue),
+ TagInfo(0x100d, "0x100d", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x100e, "0x100e", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x100f, "0x100f", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1010, "0x1010", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1011, "0x1011", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1012, "0x1012", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1013, "0x1013", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1014, "0x1014", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1015, "0x1015", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1016, "0x1016", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1017, "0x1017", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1018, "0x1018", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1019, "0x1019", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x101a, "0x101a", "Unknown", olympusIfdId, makerTags, asciiString, printValue),
+ TagInfo(0x101b, "0x101b", "Unknown", olympusIfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x101c, "0x101c", "Unknown", olympusIfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x101d, "0x101d", "Unknown", olympusIfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x101e, "0x101e", "Unknown", olympusIfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x101f, "0x101f", "Unknown", olympusIfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x1020, "0x1020", "Unknown", olympusIfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x1021, "0x1021", "Unknown", olympusIfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x1022, "0x1022", "Unknown", olympusIfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x1023, "0x1023", "Unknown", olympusIfdId, makerTags, signedRational, printValue),
+ TagInfo(0x1024, "0x1024", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1025, "0x1025", "Unknown", olympusIfdId, makerTags, signedRational, printValue),
+ TagInfo(0x1026, "0x1026", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1027, "0x1027", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1028, "0x1028", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1029, "0x1029", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x102a, "0x102a", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x102b, "0x102b", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x102c, "0x102c", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x102d, "0x102d", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x102e, "0x102e", "Unknown", olympusIfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x102f, "0x102f", "Unknown", olympusIfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x1030, "0x1030", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1031, "0x1031", "Unknown", olympusIfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x1032, "0x1032", "Unknown", olympusIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1033, "0x1033", "Unknown", olympusIfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x1034, "0x1034", "Unknown", olympusIfdId, makerTags, unsignedRational, printValue),
+ // End of list marker
+ TagInfo(0xffff, "(UnknownOlympusMakerNoteTag)", "Unknown OlympusMakerNote tag", olympusIfdId, makerTags, invalidTypeId, printValue)
+ };
+
+ OlympusMakerNote::OlympusMakerNote(bool alloc)
+ : IfdMakerNote(olympusIfdId, alloc)
+ {
+ byte buf[] = {
+ 'O', 'L', 'Y', 'M', 'P', 0x00, 0x01, 0x00
+ };
+ readHeader(buf, 8, byteOrder_);
+ }
+
+ OlympusMakerNote::OlympusMakerNote(const OlympusMakerNote& rhs)
+ : IfdMakerNote(rhs)
+ {
+ }
+
+ int OlympusMakerNote::readHeader(const byte* buf,
+ long len,
+ ByteOrder byteOrder)
+ {
+ if (len < 8) return 1;
+
+ // Copy the header
+ header_.alloc(8);
+ memcpy(header_.pData_, buf, header_.size_);
+ // Adjust the offset of the IFD for the prefix
+ adjOffset_ = 8;
+
+ return 0;
+ }
+
+ int OlympusMakerNote::checkHeader() const
+ {
+ int rc = 0;
+ // Check the OLYMPUS prefix
+ if ( header_.size_ < 8
+ || std::string(reinterpret_cast<char*>(header_.pData_), 5)
+ != std::string("OLYMP", 5)) {
+ rc = 2;
+ }
+ return rc;
+ }
+
+ OlympusMakerNote::AutoPtr OlympusMakerNote::create(bool alloc) const
+ {
+ return AutoPtr(create_(alloc));
+ }
+
+ OlympusMakerNote* OlympusMakerNote::create_(bool alloc) const
+ {
+ AutoPtr makerNote = AutoPtr(new OlympusMakerNote(alloc));
+ assert(makerNote.get() != 0);
+ makerNote->readHeader(header_.pData_, header_.size_, byteOrder_);
+ return makerNote.release();
+ }
+
+ OlympusMakerNote::AutoPtr OlympusMakerNote::clone() const
+ {
+ return AutoPtr(clone());
+ }
+
+ OlympusMakerNote* OlympusMakerNote::clone_() const
+ {
+ return new OlympusMakerNote(*this);
+ }
+
+ std::ostream& OlympusMakerNote::print0x0f00(std::ostream& os,
+ const Value& value)
+ {
+ if (value.typeId() != undefined) return os << value;
+
+ long count = value.count();
+ long lA, lB;
+
+ if (count < 11) return os;
+ lA = value.toLong(11);
+ os << std::setw(23) << "
Function ";
+ print0x0f00_011(os, lA);
+
+ if (count < 138) return os;
+ lA = value.toLong(138);
+ os << std::setw(23) << "
White balance mode ";
+ print0x0f00_138(os, lA);
+
+ if (count < 150) return os;
+ lA = value.toLong(150);
+ lB = value.toLong(151);
+ os << std::setw(23) << "
Sharpness ";
+ print0x0f00_150_151(os, lA, lB);
+
+ // Meaning of any further ushorts is unknown - ignore them
+ return os;
+
+ } // OlympusMakerNote::print0x0f00
+
+ std::ostream& OlympusMakerNote::print0x0f00_011(std::ostream& os, long l)
+ {
+ switch (l) {
+ case 0: os << "Off"; break;
+ case 1: os << "Black and White"; break;
+ case 2: os << "Sepia"; break;
+ case 3: os << "White Board"; break;
+ case 4: os << "Black Board"; break;
+ default: os << "Unknown (" << l << ")";
+ }
+ return os;
+ }
+
+ std::ostream& OlympusMakerNote::print0x0f00_138(std::ostream& os, long l)
+ {
+ switch (l) {
+ case 0: os << "Auto"; break;
+ case 16: os << "Daylight"; break;
+ case 32: os << "Tungsten"; break;
+ case 48: os << "Fluorescent"; break;
+ case 64: os << "Shade"; break;
+ default: os << "Unknown (" << l << ")";
+ }
+ return os;
+ }
+
+ std::ostream& OlympusMakerNote::print0x0f00_150_151(std::ostream& os,
+ long l150, long l151)
+ {
+ if( l150 == 24 && l151 == 6 ) {
+ os << "Soft";
+ }
+ else if ((l150 == 32 && l151 == 12) ||
+ (l150 == 30 && l151 == 11) ||
+ (l150 == 24 && l151 == 8)) {
+ os << "Normal";
+ }
+ else if ((l150 == 40 && l151 == 16) ||
+ (l150 == 38 && l151 == 15) ||
+ (l150 == 32 && l151 == 12)) {
+ os << "Hard";
+ }
+ else {
+ os << "Unknown";
+ }
+ return os;
+ }
+
+// *****************************************************************************
+// free functions
+
+ MakerNote::AutoPtr createOlympusMakerNote(bool alloc,
+ const byte* buf,
+ long len,
+ ByteOrder byteOrder,
+ long offset)
+ {
+ return MakerNote::AutoPtr(new OlympusMakerNote(alloc));
+ }
+
+} // namespace Exiv2
diff --git a/src/sigmamn.hpp b/src/olympusmn.hpp
similarity index 69%
copy from src/sigmamn.hpp
copy to src/olympusmn.hpp
index e304f8d..8c8834e 100644
--- a/src/sigmamn.hpp
+++ b/src/olympusmn.hpp
@@ -1,6 +1,6 @@
// ***************************************************************** -*- C++ -*-
/*
- * Copyright (C) 2004, 2005 Andreas Huggel <ahuggel at gmx.net>
+ * Copyright (C) 2005 Andreas Huggel <ahuggel at gmx.net>
*
* This program is part of the Exiv2 distribution.
*
@@ -19,17 +19,19 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/*!
- @file sigmamn.hpp
- @brief Sigma and Foveon MakerNote implemented according to the specification
- <a href="http://www.x3f.info/technotes/FileDocs/MakerNoteDoc.html">
- SIGMA and FOVEON EXIF MakerNote Documentation</a> by Foveon.
+ @file olympusmn.hpp
+ @brief Olympus MakerNote implemented according to the specification
+ <a href="http://?????">
+ Olympus MakerNote Documentation</a> by ???.
@version $Rev$
@author Andreas Huggel (ahu)
<a href="mailto:ahuggel at gmx.net">ahuggel at gmx.net</a>
- @date 02-Apr-04, ahu: created
+ @author Will Stokes (wuz)
+ <a href="mailto:wstokes at gmail.com">wstokes at gmail.com</a>
+ @date 10-Mar-05, wuz: created
*/
-#ifndef SIGMAMN_HPP_
-#define SIGMAMN_HPP_
+#ifndef OLYMPUSMN_HPP_
+#define OLYMPUSMN_HPP_
// *****************************************************************************
// included header files
@@ -75,20 +77,20 @@ namespace Exiv2 {
owns this copy and the auto-pointer ensures that it will be
deleted.
*/
- MakerNote::AutoPtr createSigmaMakerNote(bool alloc,
- const byte* buf,
- long len,
- ByteOrder byteOrder,
- long offset);
+ MakerNote::AutoPtr createOlympusMakerNote(bool alloc,
+ const byte* buf,
+ long len,
+ ByteOrder byteOrder,
+ long offset);
// *****************************************************************************
// class definitions
- //! MakerNote for Sigma (Foveon) cameras
- class SigmaMakerNote : public IfdMakerNote {
+ //! MakerNote for Olympus cameras
+ class OlympusMakerNote : public IfdMakerNote {
public:
- //! Shortcut for a %SigmaMakerNote auto pointer.
- typedef std::auto_ptr<SigmaMakerNote> AutoPtr;
+ //! Shortcut for a %OlympusMakerNote auto pointer.
+ typedef std::auto_ptr<OlympusMakerNote> AutoPtr;
//! @name Creators
//@{
@@ -96,11 +98,11 @@ namespace Exiv2 {
@brief Constructor. Allows to choose whether or not memory management
is required for the makernote entries.
*/
- SigmaMakerNote(bool alloc =true);
+ OlympusMakerNote(bool alloc =true);
//! Copy constructor
- SigmaMakerNote(const SigmaMakerNote& rhs);
+ OlympusMakerNote(const OlympusMakerNote& rhs);
//! Virtual destructor
- virtual ~SigmaMakerNote() {}
+ virtual ~OlympusMakerNote() {}
//@}
//! @name Manipulators
@@ -117,21 +119,24 @@ namespace Exiv2 {
AutoPtr clone() const;
//@}
- //! @name Print functions for Sigma (Foveon) %MakerNote tags
+ //! @name Print functions for Olympus %MakerNote tags
//@{
- //! Strip the label from the value and print the remainder
- static std::ostream& printStripLabel(std::ostream& os, const Value& value);
- //! Print exposure mode
- static std::ostream& print0x0008(std::ostream& os, const Value& value);
- //! Print metering mode
- static std::ostream& print0x0009(std::ostream& os, const Value& value);
+ //! Print various camera settings (uses print0x0f00_XXX functions)
+ static std::ostream& print0x0f00(std::ostream& os, const Value& value);
+
+ //! Function
+ static std::ostream& print0x0f00_011(std::ostream& os, long l);
+ //! White Balance
+ static std::ostream& print0x0f00_138(std::ostream& os, long l);
+ //! Sharpness
+ static std::ostream& print0x0f00_150_151(std::ostream& os, long l1, long l2);
//@}
private:
//! Internal virtual create function.
- SigmaMakerNote* create_(bool alloc =true) const;
+ OlympusMakerNote* create_(bool alloc =true) const;
//! Internal virtual copy constructor.
- SigmaMakerNote* clone_() const;
+ OlympusMakerNote* clone_() const;
//! Tag information
static const TagInfo tagInfo_[];
@@ -142,11 +147,10 @@ namespace Exiv2 {
RegisterMakerNote()
{
MakerNoteFactory& mnf = MakerNoteFactory::instance();
- mnf.registerMakerNote("SIGMA", "*", createSigmaMakerNote);
- mnf.registerMakerNote("FOVEON", "*", createSigmaMakerNote);
- mnf.registerMakerNote(sigmaIfdId,
- MakerNote::AutoPtr(new SigmaMakerNote));
- ExifTags::registerMakerTagInfo(sigmaIfdId, tagInfo_);
+ mnf.registerMakerNote("OLYMPUS*", "*", createOlympusMakerNote);
+ mnf.registerMakerNote(olympusIfdId,
+ MakerNote::AutoPtr(new OlympusMakerNote));
+ ExifTags::registerMakerTagInfo(olympusIfdId, tagInfo_);
}
};
// DATA
@@ -162,10 +166,10 @@ namespace Exiv2 {
forced to eagerly load all modules, but load them only on
demand.
*/
- static const RegisterMakerNote register_;
+ static const RegisterMakerNote register_;
- }; // class SigmaMakerNote
+ }; // class OlympusMakerNote
} // namespace Exiv2
-#endif // #ifndef SIGMAMN_HPP_
+#endif // #ifndef OLYMPUSMN_HPP_
diff --git a/src/tags.cpp b/src/tags.cpp
index 6126fed..128f8a3 100644
--- a/src/tags.cpp
+++ b/src/tags.cpp
@@ -54,6 +54,7 @@ namespace Exiv2 {
{
}
+ // Todo: Allow to register new IfdInfo entries from elsewhere (the makernotes)
// Important: IFD item must be unique!
const IfdInfo ExifTags::ifdInfo_[] = {
IfdInfo(ifdIdNotSet, "(Unknown IFD)", "(Unknown item)"),
@@ -68,6 +69,7 @@ namespace Exiv2 {
IfdInfo(nikon2IfdId, "Makernote", "Nikon2"),
IfdInfo(nikon3IfdId, "Makernote", "Nikon3"),
IfdInfo(nikon3ThumbIfdId, "Makernote", "Nikon3Thumb"),
+ IfdInfo(olympusIfdId, "Makernote", "Olympus"),
IfdInfo(sigmaIfdId, "Makernote", "Sigma"),
IfdInfo(lastIfdId, "(Last IFD info)", "(Last IFD item)")
};
diff --git a/src/types.hpp b/src/types.hpp
index 3ffe118..eedeecf 100644
--- a/src/types.hpp
+++ b/src/types.hpp
@@ -89,7 +89,7 @@ namespace Exiv2 {
enum IfdId { ifdIdNotSet,
ifd0Id, exifIfdId, gpsIfdId, iopIfdId, ifd1Id,
canonIfdId, fujiIfdId, nikon1IfdId, nikon2IfdId, nikon3IfdId,
- nikon3ThumbIfdId, sigmaIfdId,
+ nikon3ThumbIfdId, olympusIfdId, sigmaIfdId,
lastIfdId };
// *****************************************************************************
--
exiv2 packaging
More information about the pkg-kde-commits
mailing list