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

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:38:16 UTC 2017


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

The following commit has been merged in the master branch:
commit b2f2b95bcbda17aec76bddd8dfd342671cb3ba7b
Author: Andreas Huggel <ahuggel at gmx.net>
Date:   Mon Feb 5 14:33:25 2007 +0000

    Added Fujifilm read-support for RAF images.
---
 src/Makefile                       |   3 +-
 src/image.cpp                      |   6 ++-
 src/{mrwimage.cpp => rafimage.cpp} | 108 +++++++++++++++----------------------
 src/{mrwimage.hpp => rafimage.hpp} |  51 +++++++++---------
 4 files changed, 74 insertions(+), 94 deletions(-)

diff --git a/src/Makefile b/src/Makefile
index 069f3ac..249d2a5 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -80,7 +80,8 @@ ifdef HAVE_LIBZ
 CCSRC += pngimage.cpp         \
 	 pngchunk.cpp
 endif
-CCSRC += sigmamn.cpp          \
+CCSRC += rafimage.cpp         \
+	 sigmamn.cpp          \
 	 sonymn.cpp           \
 	 tags.cpp             \
 	 tiffcomposite.cpp    \
diff --git a/src/image.cpp b/src/image.cpp
index 75451b8..ef42b50 100644
--- a/src/image.cpp
+++ b/src/image.cpp
@@ -44,14 +44,15 @@ EXIV2_RCSID("@(#) $Id$")
 #include "error.hpp"
 #include "futils.hpp"
 
-#include "jpgimage.hpp"
 #include "cr2image.hpp"
 #include "crwimage.hpp"
+#include "jpgimage.hpp"
 #include "mrwimage.hpp"
-#include "tiffimage.hpp"
 #ifdef EXV_HAVE_LIBZ
 # include "pngimage.hpp"
 #endif // EXV_HAVE_LIBZ
+#include "rafimage.hpp"
+#include "tiffimage.hpp"
 
 // + standard includes
 #include <cerrno>
@@ -83,6 +84,7 @@ namespace Exiv2 {
 #ifdef EXV_HAVE_LIBZ
         { ImageType::png,  newPngInstance,  isPngType,  amRead,      amRead,      amNone      },
 #endif // EXV_HAVE_LIBZ
+        { ImageType::raf,  newRafInstance,  isRafType,  amRead,      amRead,      amNone      },
         // End of list marker
         { ImageType::none, 0,               0,          amNone,      amNone,      amNone      }
     };
diff --git a/src/mrwimage.cpp b/src/rafimage.cpp
similarity index 58%
copy from src/mrwimage.cpp
copy to src/rafimage.cpp
index 1e21561..543c725 100644
--- a/src/mrwimage.cpp
+++ b/src/rafimage.cpp
@@ -1,6 +1,6 @@
 // ***************************************************************** -*- C++ -*-
 /*
- * Copyright (C) 2006-2007 Andreas Huggel <ahuggel at gmx.net>
+ * Copyright (C) 2007 Andreas Huggel <ahuggel at gmx.net>
  *
  * This program is part of the Exiv2 distribution.
  *
@@ -19,10 +19,10 @@
  * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110-1301 USA.
  */
 /*
-  File:      mrwimage.cpp
+  File:      rafimage.cpp
   Version:   $Rev$
   Author(s): Andreas Huggel (ahu) <ahuggel at gmx.net>
-  History:   13-May-06, ahu: created
+  History:   05-Feb-07, ahu: created
   Credits:   See header file
  */
 // *****************************************************************************
@@ -37,7 +37,7 @@ EXIV2_RCSID("@(#) $Id$")
 # include "exv_conf.h"
 #endif
 
-#include "mrwimage.hpp"
+#include "rafimage.hpp"
 #include "tiffparser.hpp"
 #include "image.hpp"
 #include "basicio.hpp"
@@ -54,153 +54,133 @@ EXIV2_RCSID("@(#) $Id$")
 // class member definitions
 namespace Exiv2 {
 
-    MrwImage::MrwImage(BasicIo::AutoPtr io, bool create)
+    RafImage::RafImage(BasicIo::AutoPtr io, bool create)
         : Image(mdExif | mdIptc), io_(io)
     {
         if (create) {
             IoCloser closer(*io_);
             io_->open();
         }
-    } // MrwImage::MrwImage
+    } // RafImage::RafImage
 
-    bool MrwImage::good() const
+    bool RafImage::good() const
     {
         if (io_->open() != 0) return false;
         IoCloser closer(*io_);
         return isThisType(*io_, false);
     }
 
-    AccessMode MrwImage::checkMode(MetadataId metadataId) const
+    AccessMode RafImage::checkMode(MetadataId metadataId) const
     {
-        return ImageFactory::checkMode(ImageType::mrw, metadataId);
+        return ImageFactory::checkMode(ImageType::raf, metadataId);
     }
 
-    void MrwImage::clearMetadata()
+    void RafImage::clearMetadata()
     {
         clearExifData();
         clearIptcData();
     }
 
-    void MrwImage::setMetadata(const Image& image)
+    void RafImage::setMetadata(const Image& image)
     {
         setExifData(image.exifData());
         setIptcData(image.iptcData());
     }
 
-    void MrwImage::clearExifData()
+    void RafImage::clearExifData()
     {
         exifData_.clear();
     }
 
-    void MrwImage::setExifData(const ExifData& exifData)
+    void RafImage::setExifData(const ExifData& exifData)
     {
         exifData_ = exifData;
     }
 
-    void MrwImage::clearIptcData()
+    void RafImage::clearIptcData()
     {
         iptcData_.clear();
     }
 
-    void MrwImage::setIptcData(const IptcData& iptcData)
+    void RafImage::setIptcData(const IptcData& iptcData)
     {
         iptcData_ = iptcData;
     }
 
-    void MrwImage::clearComment()
+    void RafImage::clearComment()
     {
         // not supported, do nothing
     }
 
-    void MrwImage::setComment(const std::string& /*comment*/)
+    void RafImage::setComment(const std::string& /*comment*/)
     {
         // not supported
-        throw(Error(32, "Image comment", "MRW"));
+        throw(Error(32, "Image comment", "RAF"));
     }
 
-    void MrwImage::readMetadata()
+    void RafImage::readMetadata()
     {
 #ifdef DEBUG
-        std::cerr << "Reading MRW file " << io_->path() << "
";
+        std::cerr << "Reading RAF file " << io_->path() << "
";
 #endif
-        if (io_->open() != 0) {
-            throw Error(9, io_->path(), strError());
-        }
+        if (io_->open() != 0) throw Error(9, io_->path(), strError());
         IoCloser closer(*io_);
         // Ensure that this is the correct image type
-        if (!isThisType(*io_, false)) {
+        if (!isThisType(*io_, true)) {
             if (io_->error() || io_->eof()) throw Error(14);
-            throw Error(3, "MRW");
+            throw Error(3, "RAF");
         }
-        clearMetadata();
-
-        // Find the TTW block and read it into a buffer
-        uint32_t const len = 8;
-        byte tmp[len];
-        io_->read(tmp, len);
-        uint32_t pos = len;
-        uint32_t const end = getULong(tmp + 4, bigEndian);
-
-        pos += len;
-        if (pos > end) throw Error(14);
-        io_->read(tmp, len);
+        if (io_->seek(84, BasicIo::beg) != 0) throw Error(14);
+        byte tmp[4];
+        io_->read(tmp, 4);
         if (io_->error() || io_->eof()) throw Error(14);
-
-        while (memcmp(tmp + 1, "TTW", 3) != 0) {
-            uint32_t const siz = getULong(tmp + 4, bigEndian);
-            pos += siz;
-            if (pos > end) throw Error(14);
-            io_->seek(siz, BasicIo::cur);
-            if (io_->error() || io_->eof()) throw Error(14);
-
-            pos += len;
-            if (pos > end) throw Error(14);
-            io_->read(tmp, len);
-            if (io_->error() || io_->eof()) throw Error(14);
-        }
-
-        DataBuf buf(getULong(tmp + 4, bigEndian));
+        uint32_t const pos = getULong(tmp, bigEndian) + 4;
+        if (io_->seek(pos, BasicIo::beg) != 0) throw Error(14);
+        io_->read(tmp, 2);
+        if (io_->error() || io_->eof()) throw Error(14);
+        DataBuf buf(getUShort(tmp, bigEndian) - 10);
+        if (io_->seek(pos + 8, BasicIo::beg) != 0) throw Error(14);
         io_->read(buf.pData_, buf.size_);
         if (io_->error() || io_->eof()) throw Error(14);
-
+        clearMetadata();
         TiffParser::decode(this, buf.pData_, buf.size_,
                            TiffCreator::create, TiffDecoder::findDecoder);
-    } // MrwImage::readMetadata
+    } // RafImage::readMetadata
 
-    void MrwImage::writeMetadata()
+    void RafImage::writeMetadata()
     {
         /*
           Todo: implement me!
          */
-        throw(Error(31, "metadata", "MRW"));
-    } // MrwImage::writeMetadata
+        throw(Error(31, "metadata", "RAF"));
+    } // RafImage::writeMetadata
 
-    bool MrwImage::isThisType(BasicIo& iIo, bool advance) const
+    bool RafImage::isThisType(BasicIo& iIo, bool advance) const
     {
-        return isMrwType(iIo, advance);
+        return isRafType(iIo, advance);
     }
 
     // *************************************************************************
     // free functions
 
-    Image::AutoPtr newMrwInstance(BasicIo::AutoPtr io, bool create)
+    Image::AutoPtr newRafInstance(BasicIo::AutoPtr io, bool create)
     {
-        Image::AutoPtr image(new MrwImage(io, create));
+        Image::AutoPtr image(new RafImage(io, create));
         if (!image->good()) {
             image.reset();
         }
         return image;
     }
 
-    bool isMrwType(BasicIo& iIo, bool advance)
+    bool isRafType(BasicIo& iIo, bool advance)
     {
-        const int32_t len = 4;
+        const int32_t len = 8;
         byte buf[len];
         iIo.read(buf, len);
         if (iIo.error() || iIo.eof()) {
             return false;
         }
-        int rc = memcmp(buf, "

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list