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

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:41:58 UTC 2017


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

The following commit has been merged in the master branch:
commit f25fca88088899ea2d1ca3a081b008cf35baff6a
Author: Andreas Huggel <ahuggel at gmx.net>
Date:   Tue Sep 21 15:45:07 2010 +0000

    #726: Added support for thumbnail found in sub-IFD of IFD1 of Samsung .SRW files.
---
 src/error.cpp       |  2 +-
 src/exif.cpp        |  1 +
 src/preview.cpp     | 16 ++++++++++------
 src/tags.cpp        |  2 ++
 src/tags_int.hpp    |  1 +
 src/tiffimage.cpp   | 12 ++++++++++++
 src/tiffvisitor.cpp |  5 ++++-
 7 files changed, 31 insertions(+), 8 deletions(-)

diff --git a/src/error.cpp b/src/error.cpp
index 2507db1..faac04a 100644
--- a/src/error.cpp
+++ b/src/error.cpp
@@ -123,7 +123,7 @@ namespace Exiv2 {
         case LogMsg::info:  break;
         case LogMsg::warn:  std::cerr << "Warning: "; break;
         case LogMsg::error: std::cerr << "Error: "; break;
-        case LogMsg::mute:  assert(true);
+        case LogMsg::mute:  assert(false);
         }
         std::cerr << s;
     }
diff --git a/src/exif.cpp b/src/exif.cpp
index 1fe153f..e325397 100644
--- a/src/exif.cpp
+++ b/src/exif.cpp
@@ -693,6 +693,7 @@ namespace Exiv2 {
             subImage7Id,
             subImage8Id,
             subImage9Id,
+            subThumb1Id,
             panaRawId,
             ifd2Id,
             ifd3Id
diff --git a/src/preview.cpp b/src/preview.cpp
index c967589..d4dc77a 100644
--- a/src/preview.cpp
+++ b/src/preview.cpp
@@ -255,14 +255,16 @@ namespace {
         { 0,                   createLoaderTiff,         3 },
         { 0,                   createLoaderTiff,         4 },
         { 0,                   createLoaderTiff,         5 },
+        { 0,                   createLoaderTiff,         6 },
         { 0,                   createLoaderExifJpeg,     0 },
         { 0,                   createLoaderExifJpeg,     1 },
         { 0,                   createLoaderExifJpeg,     2 },
         { 0,                   createLoaderExifJpeg,     3 },
         { 0,                   createLoaderExifJpeg,     4 },
         { 0,                   createLoaderExifJpeg,     5 },
-        { "image/x-canon-cr2", createLoaderExifJpeg,     6 },
-        { 0,                   createLoaderExifJpeg,     7 }
+        { 0,                   createLoaderExifJpeg,     6 },
+        { "image/x-canon-cr2", createLoaderExifJpeg,     7 },
+        { 0,                   createLoaderExifJpeg,     8 }
     };
 
     const LoaderExifJpeg::Param LoaderExifJpeg::param_[] = {
@@ -271,9 +273,10 @@ namespace {
         { "Exif.SubImage2.JPEGInterchangeFormat", "Exif.SubImage2.JPEGInterchangeFormatLength", 0 }, // 2
         { "Exif.SubImage3.JPEGInterchangeFormat", "Exif.SubImage3.JPEGInterchangeFormatLength", 0 }, // 3
         { "Exif.SubImage4.JPEGInterchangeFormat", "Exif.SubImage4.JPEGInterchangeFormatLength", 0 }, // 4
-        { "Exif.Image2.JPEGInterchangeFormat",    "Exif.Image2.JPEGInterchangeFormatLength",    0 }, // 5
-        { "Exif.Image.StripOffsets",              "Exif.Image.StripByteCounts",                 0 }, // 6
-        { "Exif.OlympusCs.PreviewImageStart",     "Exif.OlympusCs.PreviewImageLength",          "Exif.MakerNote.Offset"}  // 7
+        { "Exif.SubThumb1.JPEGInterchangeFormat", "Exif.SubThumb1.JPEGInterchangeFormatLength", 0 }, // 5
+        { "Exif.Image2.JPEGInterchangeFormat",    "Exif.Image2.JPEGInterchangeFormatLength",    0 }, // 6
+        { "Exif.Image.StripOffsets",              "Exif.Image.StripByteCounts",                 0 }, // 7
+        { "Exif.OlympusCs.PreviewImageStart",     "Exif.OlympusCs.PreviewImageLength",          "Exif.MakerNote.Offset"}  // 8
     };
 
     const LoaderExifDataJpeg::Param LoaderExifDataJpeg::param_[] = {
@@ -294,7 +297,8 @@ namespace {
         { "SubImage2", "Exif.SubImage2.NewSubfileType", "1" },  // 2
         { "SubImage3", "Exif.SubImage3.NewSubfileType", "1" },  // 3
         { "SubImage4", "Exif.SubImage4.NewSubfileType", "1" },  // 4
-        { "Thumbnail", 0,                               0   }   // 5
+        { "SubThumb1", "Exif.SubThumb1.NewSubfileType", "1" },  // 5
+        { "Thumbnail", 0,                               0   }   // 6
     };
 
     Loader::AutoPtr Loader::create(PreviewId id, const Image &image)
diff --git a/src/tags.cpp b/src/tags.cpp
index c394071..6331c20 100644
--- a/src/tags.cpp
+++ b/src/tags.cpp
@@ -99,6 +99,7 @@ namespace Exiv2 {
         { subImage7Id,     "SubImage7", "SubImage7",    ifdTagList                     },
         { subImage8Id,     "SubImage8", "SubImage8",    ifdTagList                     },
         { subImage9Id,     "SubImage9", "SubImage9",    ifdTagList                     },
+        { subThumb1Id,     "SubThumb1", "SubThumb1",    ifdTagList                     },
         { panaRawId,       "PanaRaw",   "PanasonicRaw", PanasonicMakerNote::tagListRaw },
         { mnId,            "Makernote", "MakerNote",    mnTagList                      },
         { canonId,         "Makernote", "Canon",        CanonMakerNote::tagList        },
@@ -1956,6 +1957,7 @@ namespace Exiv2 {
         case subImage7Id:
         case subImage8Id:
         case subImage9Id:
+        case subThumb1Id:
         case panaRawId: rc = true; break;
         default:           rc = false; break;
         }
diff --git a/src/tags_int.hpp b/src/tags_int.hpp
index 37c4c31..8559482 100644
--- a/src/tags_int.hpp
+++ b/src/tags_int.hpp
@@ -71,6 +71,7 @@ namespace Exiv2 {
         subImage7Id,
         subImage8Id,
         subImage9Id,
+        subThumb1Id,
         panaRawId,
         mnId,
         canonId,
diff --git a/src/tiffimage.cpp b/src/tiffimage.cpp
index c602d68..75b22cb 100644
--- a/src/tiffimage.cpp
+++ b/src/tiffimage.cpp
@@ -1100,6 +1100,7 @@ namespace Exiv2 {
         { Tag::root, ifd3Id,           ifd2Id,           Tag::next },
         { Tag::root, olympusId,        exifId,           0x927c    },
         { Tag::root, olympus2Id,       exifId,           0x927c    },
+        { Tag::root, subThumb1Id,      ifd1Id,           0x014a    },
         { Tag::root, olympusEqId,      olympus2Id,       0x2010    },
         { Tag::root, olympusCsId,      olympus2Id,       0x2020    },
         { Tag::root, olympusRdId,      olympus2Id,       0x2030    },
@@ -1321,11 +1322,22 @@ namespace Exiv2 {
         {    0x0117, ifd1Id,           newTiffThumbSize<0x0111, ifd1Id>          },
         {    0x0144, ifd1Id,           newTiffImageData<0x0145, ifd1Id>          },
         {    0x0145, ifd1Id,           newTiffImageSize<0x0144, ifd1Id>          },
+        {    0x014a, ifd1Id,           newTiffSubIfd<subThumb1Id>                },
         {    0x0201, ifd1Id,           newTiffThumbData<0x0202, ifd1Id>          },
         {    0x0202, ifd1Id,           newTiffThumbSize<0x0201, ifd1Id>          },
         { Tag::next, ifd1Id,           newTiffDirectory<ifd2Id>                  },
         {  Tag::all, ifd1Id,           newTiffEntry                              },
 
+        // Subdir subThumb1
+        {    0x0111, subThumb1Id,      newTiffImageData<0x0117, subThumb1Id>     },
+        {    0x0117, subThumb1Id,      newTiffImageSize<0x0111, subThumb1Id>     },
+        {    0x0144, subThumb1Id,      newTiffImageData<0x0145, subThumb1Id>     },
+        {    0x0145, subThumb1Id,      newTiffImageSize<0x0144, subThumb1Id>     },
+        {    0x0201, subThumb1Id,      newTiffImageData<0x0202, subThumb1Id>     },
+        {    0x0202, subThumb1Id,      newTiffImageSize<0x0201, subThumb1Id>     },
+        { Tag::next, subThumb1Id,      newTiffDirectory<ignoreId>                },
+        {  Tag::all, subThumb1Id,      newTiffEntry                              },
+
         // IFD2 (eg, in Pentax PEF and Canon CR2 files)
         {    0x0111, ifd2Id,           newTiffImageData<0x0117, ifd2Id>          },
         {    0x0117, ifd2Id,           newTiffImageSize<0x0111, ifd2Id>          },
diff --git a/src/tiffvisitor.cpp b/src/tiffvisitor.cpp
index f1d984d..7c1afd7 100644
--- a/src/tiffvisitor.cpp
+++ b/src/tiffvisitor.cpp
@@ -1337,6 +1337,9 @@ namespace Exiv2 {
         if (   (object->tiffType() == ttUnsignedLong || object->tiffType() == ttSignedLong
                 || object->tiffType() == ttTiffIfd)
             && object->count() >= 1) {
+            // Todo: Fix hack
+            uint32_t maxi = 9;
+            if (object->group() == ifd1Id) maxi = 1;
             for (uint32_t i = 0; i < object->count(); ++i) {
                 int32_t offset = getLong(object->pData() + 4*i, byteOrder());
                 if (   baseOffset() + offset > size_
@@ -1350,7 +1353,7 @@ namespace Exiv2 {
 #endif
                     return;
                 }
-                if (object->newGroup_ + i == subImage9Id + 1) {
+                if (i >= maxi) {
 #ifndef SUPPRESS_WARNINGS
                     EXV_WARNING << "Directory " << groupName(object->group())
                                 << ", entry 0x" << std::setw(4)

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list