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

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:42:59 UTC 2017


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

The following commit has been merged in the master branch:
commit 274fd49790d21a82e1457f060a3d213afb35db28
Author: Andreas Huggel <ahuggel at gmx.net>
Date:   Wed Apr 11 05:50:34 2012 +0000

    #819: Applied Pentax DNG makernote patch from Jonathan Kollasch.
---
 src/makernote.cpp     | 82 ++++++++++++++++++++++++++++++++++++++++++++++-----
 src/makernote_int.hpp | 35 ++++++++++++++++++++++
 src/tags.cpp          |  1 +
 src/tags_int.hpp      |  1 +
 src/tiffimage.cpp     |  7 +++++
 5 files changed, 119 insertions(+), 7 deletions(-)

diff --git a/src/makernote.cpp b/src/makernote.cpp
index 49c789b..1a71ede 100644
--- a/src/makernote.cpp
+++ b/src/makernote.cpp
@@ -69,7 +69,7 @@ namespace Exiv2 {
         { "NIKON",          ifdIdNotSet, newNikonMn,     0               }, // mnGroup_ is not used
         { "OLYMPUS",        ifdIdNotSet, newOlympusMn,   0               }, // mnGroup_ is not used
         { "Panasonic",      panasonicId, newPanasonicMn, newPanasonicMn2 },
-        { "PENTAX",         pentaxId,    newPentaxMn,    newPentaxMn2    },
+        { "PENTAX",         ifdIdNotSet, newPentaxMn,    0               }, // mnGroup_ is not used
         { "SAMSUNG",        samsung2Id,  newSamsungMn,   newSamsungMn2   },
         { "SIGMA",          sigmaId,     newSigmaMn,     newSigmaMn2     },
         { "SONY",           ifdIdNotSet, newSonyMn,      0               }, // mnGroup_ is not used
@@ -80,7 +80,9 @@ namespace Exiv2 {
         { "-",              sony1Id,     0,              newSony1Mn2     },
         { "-",              sony2Id,     0,              newSony2Mn2     },
         { "-",              olympusId,   0,              newOlympusMn2   },
-        { "-",              olympus2Id,  0,              newOlympus2Mn2  }
+        { "-",              olympus2Id,  0,              newOlympus2Mn2  },
+        { "-",              pentaxId,    0,              newPentaxMn2    },
+        { "-",              pentaxDngId, 0,              newPentaxDngMn2 }
     };
 
     bool TiffMnRegistry::operator==(const std::string& key) const
@@ -495,6 +497,55 @@ namespace Exiv2 {
         return sizeOfSignature();
     } // PanasonicMnHeader::write
 
+    const byte PentaxDngMnHeader::signature_[] = {
+        'P', 'E', 'N', 'T', 'A', 'X', ' ', 0x00, 'M', 'M'
+    };
+
+    uint32_t PentaxDngMnHeader::sizeOfSignature()
+    {
+        return sizeof(signature_);
+    }
+
+    PentaxDngMnHeader::PentaxDngMnHeader()
+    {
+        read(signature_, sizeOfSignature(), invalidByteOrder);
+    }
+
+    PentaxDngMnHeader::~PentaxDngMnHeader()
+    {
+    }
+
+    uint32_t PentaxDngMnHeader::size() const
+    {
+        return header_.size_;
+    }
+
+    uint32_t PentaxDngMnHeader::ifdOffset() const
+    {
+        return sizeOfSignature();
+    }
+
+    bool PentaxDngMnHeader::read(const byte* pData,
+                              uint32_t size,
+                              ByteOrder /*byteOrder*/)
+    {
+        if (!pData || size < sizeOfSignature()) return false;
+        header_.alloc(sizeOfSignature());
+        std::memcpy(header_.pData_, pData, header_.size_);
+        if (   static_cast<uint32_t>(header_.size_) < sizeOfSignature()
+            || 0 != memcmp(header_.pData_, signature_, 7)) {
+            return false;
+        }
+        return true;
+    } // PentaxDngMnHeader::read
+
+    uint32_t PentaxDngMnHeader::write(IoWrapper& ioWrapper,
+                                   ByteOrder /*byteOrder*/) const
+    {
+        ioWrapper.write(signature_, sizeOfSignature());
+        return sizeOfSignature();
+    } // PentaxDngMnHeader::write
+
     const byte PentaxMnHeader::signature_[] = {
         'A', 'O', 'C', 0x00, 'M', 'M'
     };
@@ -809,14 +860,24 @@ namespace Exiv2 {
 
     TiffComponent* newPentaxMn(uint16_t    tag,
                                IfdId       group,
-                               IfdId       mnGroup,
-                               const byte* /*pData*/,
+                               IfdId       /*mnGroup*/,
+                               const byte* pData,
                                uint32_t    size,
                                ByteOrder   /*byteOrder*/)
     {
-        // Require at least the header and an IFD with 1 entry
-        if (size < PentaxMnHeader::sizeOfSignature() + 18) return 0;
-        return newPentaxMn2(tag, group, mnGroup);
+	if (size > 8 && std::string(reinterpret_cast<const char*>(pData), 8)
+                        == std::string("PENTAX 

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list