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

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:40:20 UTC 2017


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

The following commit has been merged in the master branch:
commit 3bd8cde75b85150dd4bf573d08951a8f3836fef0
Author: Andreas Huggel <ahuggel at gmx.net>
Date:   Tue Feb 3 09:46:34 2009 +0000

    Fixed ExifParser::encode to delete Panasonic RAW tags, filter duplicate tags when reading RW2 images.
---
 src/exif.cpp     |  3 ++-
 src/rw2image.cpp | 19 +++++++++++++++++--
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/src/exif.cpp b/src/exif.cpp
index 34f799d..9d9e907 100644
--- a/src/exif.cpp
+++ b/src/exif.cpp
@@ -497,6 +497,7 @@ namespace Exiv2 {
             subImage2Id,
             subImage3Id,
             subImage4Id,
+            panaRawIfdId,
             ifd2Id
         };
         for (unsigned int i = 0; i < EXV_COUNTOF(filteredIfds); ++i) {
@@ -510,7 +511,7 @@ namespace Exiv2 {
         const IptcData iptcData;
         const XmpData  xmpData;
 
-        // Encode and check if the results fits into a JPEG Exif APP1 segment
+        // Encode and check if the result fits into a JPEG Exif APP1 segment
         WriteMethod wm = TiffParser::encode(blob,
                                             pData,
                                             size,
diff --git a/src/rw2image.cpp b/src/rw2image.cpp
index e673c8e..674e603 100644
--- a/src/rw2image.cpp
+++ b/src/rw2image.cpp
@@ -143,8 +143,23 @@ namespace Exiv2 {
             return;
         }
         image->readMetadata();
-        for (ExifData::const_iterator pos = image->exifData().begin();
-             pos != image->exifData().end(); ++pos) {
+        ExifData& prevData = image->exifData();
+        if (!prevData.empty()) {
+            // Filter duplicate tags
+            for (ExifData::const_iterator pos = exifData_.begin(); pos != exifData_.end(); ++pos) {
+                if (pos->ifdId() == panaRawIfdId) continue;
+                ExifData::iterator dup = prevData.findKey(ExifKey(pos->key()));
+                if (dup != prevData.end()) {
+#ifdef DEBUG
+                    std::cerr << "Filtering duplicate tag " << pos->key()
+                              << " (values '" << pos->value()
+                              << "' and '" << dup->value() << "')
";
+#endif              
+                    prevData.erase(dup);
+                }
+            }
+        }
+        for (ExifData::const_iterator pos = prevData.begin(); pos != prevData.end(); ++pos) {
             exifData_.add(*pos);
         }
 

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list