[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:39:49 UTC 2017


Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=27d9c04

The following commit has been merged in the master branch:
commit 27d9c0487f7bbf3cbdef4e50cc17bc51a5de6f59
Author: Andreas Huggel <ahuggel at gmx.net>
Date:   Fri Sep 19 15:26:57 2008 +0000

    Added type tiffIfd, made decoding of OlympusCs tags work.
---
 src/makernote.cpp         | 1 -
 src/tiffcomposite_int.hpp | 1 +
 src/tiffimage.cpp         | 7 ++++++-
 src/tiffvisitor.cpp       | 5 ++++-
 src/types.cpp             | 1 +
 src/types.hpp             | 1 +
 src/value.cpp             | 1 +
 src/value.hpp             | 1 +
 8 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/makernote.cpp b/src/makernote.cpp
index 6680007..77f397e 100644
--- a/src/makernote.cpp
+++ b/src/makernote.cpp
@@ -310,7 +310,6 @@ namespace Exiv2 {
         return size_;
     } // Olympus2MnHeader::write
 
-
     const byte FujiMnHeader::signature_[] = {
         'F', 'U', 'J', 'I', 'F', 'I', 'L', 'M', 0x0c, 0x00, 0x00, 0x00
     };
diff --git a/src/tiffcomposite_int.hpp b/src/tiffcomposite_int.hpp
index f50bbee..389d79e 100644
--- a/src/tiffcomposite_int.hpp
+++ b/src/tiffcomposite_int.hpp
@@ -64,6 +64,7 @@ namespace Exiv2 {
     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
 
     //! Convert the \em tiffType of a \em tag and \em group to an Exiv2 \em typeId.
     TypeId toTypeId(TiffType tiffType, uint16_t tag, uint16_t group);
diff --git a/src/tiffimage.cpp b/src/tiffimage.cpp
index cc5324f..e46b737 100644
--- a/src/tiffimage.cpp
+++ b/src/tiffimage.cpp
@@ -378,6 +378,11 @@ namespace Exiv2 {
         { Tag::next, Group::olymp2mn,  Group::ignr,      0x927c,    Group::exif,      newTiffDirectory },
         {  Tag::all, Group::olymp2mn,  Group::olymp2mn,  0x927c,    Group::exif,      newTiffEntry },
 
+        // Olympus2 camera settings subdir
+        {    0x0101, Group::olympcs,   Group::olympcs,   0x2020,    Group::olymp2mn,  newTiffImageData<0x0102, Group::olympcs> },
+        {    0x0102, Group::olympcs,   Group::olympcs,   0x2020,    Group::olymp2mn,  newTiffImageSize<0x0101, Group::olympcs> },
+        {  Tag::all, Group::olympcs,   Group::olympcs,   0x2020,    Group::olymp2mn,  newTiffEntry },
+
         // Fujifilm makernote
         { Tag::next, Group::fujimn,    Group::ignr,      0x927c,    Group::exif,      newTiffDirectory },
         {  Tag::all, Group::fujimn,    Group::fujimn,    0x927c,    Group::exif,      newTiffEntry },
@@ -411,7 +416,7 @@ namespace Exiv2 {
         {    0x0011, Group::nikon3mn,  Group::nikonpv,   0x927c,    Group::exif,      newTiffSubIfd },
         {  Tag::all, Group::nikon3mn,  Group::nikon3mn,  0x927c,    Group::exif,      newTiffEntry },
 
-        // Nikon3 makernote preview sub-IFD
+        // Nikon3 makernote preview subdir
         {    0x0201, Group::nikonpv,   Group::nikonpv,   0x0011,    Group::nikon3mn,  newTiffThumbData<0x0202, Group::nikonpv> },
         {    0x0202, Group::nikonpv,   Group::nikonpv,   0x0011,    Group::nikon3mn,  newTiffThumbSize<0x0201, Group::nikonpv> },
         { Tag::next, Group::nikonpv,   Group::ignr,      0x0011,    Group::nikon3mn,  newTiffDirectory },
diff --git a/src/tiffvisitor.cpp b/src/tiffvisitor.cpp
index 8b25993..90c558c 100644
--- a/src/tiffvisitor.cpp
+++ b/src/tiffvisitor.cpp
@@ -1120,6 +1120,8 @@ namespace Exiv2 {
             }
             uint16_t tag = getUShort(p, byteOrder());
             TiffComponent::AutoPtr tc = create(tag, object->group());
+            // The assertion typically fails if a component is not configured in
+            // the TIFF structure table
             assert(tc.get());
             tc->setStart(p);
             object->addChild(tc);
@@ -1168,7 +1170,8 @@ namespace Exiv2 {
         assert(object != 0);
 
         readTiffEntry(object);
-        if (   (object->tiffType() == ttUnsignedLong || object->tiffType() == ttSignedLong)
+        if (   (object->tiffType() == ttUnsignedLong || object->tiffType() == ttSignedLong
+                || object->tiffType() == ttTiffIfd)
             && object->count() >= 1) {
             for (uint32_t i = 0; i < object->count(); ++i) {
                 int32_t offset = getLong(object->pData() + 4*i, byteOrder());
diff --git a/src/types.cpp b/src/types.cpp
index fb624cb..a2eb963 100644
--- a/src/types.cpp
+++ b/src/types.cpp
@@ -76,6 +76,7 @@ namespace {
         { Exiv2::signedRational,   "SRational",   8 },
         { Exiv2::tiffFloat,        "Float",       4 },
         { Exiv2::tiffDouble,       "Double",      8 },
+        { Exiv2::tiffIfd,          "Ifd",         4 },
         { Exiv2::string,           "String",      1 },
         { Exiv2::date,             "Date",        8 },
         { Exiv2::time,             "Time",       11 },
diff --git a/src/types.hpp b/src/types.hpp
index fc99730..041bf7c 100644
--- a/src/types.hpp
+++ b/src/types.hpp
@@ -118,6 +118,7 @@ namespace Exiv2 {
         signedRational     =10, //!< Exif SRATIONAL type, two SLONGs: numerator and denumerator of a fraction.
         tiffFloat          =11, //!< TIFF FLOAT type, single precision (4-byte) IEEE format.
         tiffDouble         =12, //!< TIFF DOUBLE type, double precision (8-byte) IEEE format.
+        tiffIfd            =13, //!< TIFF IFD type, 32-bit (4-byte) unsigned integer.
         string        =0x10000, //!< IPTC string type.
         date          =0x10001, //!< IPTC date type.
         time          =0x10002, //!< IPTC time type.
diff --git a/src/value.cpp b/src/value.cpp
index c54d667..b86930a 100644
--- a/src/value.cpp
+++ b/src/value.cpp
@@ -85,6 +85,7 @@ namespace Exiv2 {
             value = AutoPtr(new ValueType<uint16_t>);
             break;
         case unsignedLong:
+        case tiffIfd:
             value = AutoPtr(new ValueType<uint32_t>);
             break;
         case unsignedRational:
diff --git a/src/value.hpp b/src/value.hpp
index 2c470f1..3318b83 100644
--- a/src/value.hpp
+++ b/src/value.hpp
@@ -219,6 +219,7 @@ namespace Exiv2 {
           <TR><TD class="indexkey">signedRational</TD><TD class="indexvalue">%ValueType < Rational ></TD></TR>
           <TR><TD class="indexkey">tiffFloat</TD><TD class="indexvalue">%DataValue(tiffFloat)</TD></TR>
           <TR><TD class="indexkey">tiffDouble</TD><TD class="indexvalue">%DataValue(tiffDouble)</TD></TR>
+          <TR><TD class="indexkey">tiffIfd</TD><TD class="indexvalue">%ValueType < uint32_t ></TD></TR>
           <TR><TD class="indexkey">date</TD><TD class="indexvalue">%DateValue</TD></TR>
           <TR><TD class="indexkey">time</TD><TD class="indexvalue">%TimeValue</TD></TR>
           <TR><TD class="indexkey">comment</TD><TD class="indexvalue">%CommentValue</TD></TR>

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list