[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:06 UTC 2017
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=5fd43e9
The following commit has been merged in the master branch:
commit 5fd43e998cc9eb02b891375c3d7143d7e6ec4cbd
Author: Andreas Huggel <ahuggel at gmx.net>
Date: Tue Nov 11 15:06:55 2008 +0000
Fixed writing of TiffImageEntry previews in the Makernote (Exif.OlympusCs.PreviewImageStart).
---
src/tiffcomposite.cpp | 43 +++++++++++++++++++++++++++++++++++++------
src/tiffcomposite_int.hpp | 17 +++++++++++++++--
2 files changed, 52 insertions(+), 8 deletions(-)
diff --git a/src/tiffcomposite.cpp b/src/tiffcomposite.cpp
index eba97c3..7282429 100644
--- a/src/tiffcomposite.cpp
+++ b/src/tiffcomposite.cpp
@@ -927,23 +927,30 @@ namespace Exiv2 {
uint32_t TiffImageEntry::doWrite(Blob& blob,
ByteOrder byteOrder,
- int32_t /*offset*/,
+ int32_t offset,
uint32_t /*valueIdx*/,
- uint32_t /*dataIdx*/,
+ uint32_t dataIdx,
uint32_t& imageIdx)
{
+ uint32_t o2 = imageIdx;
+ // For makernotes, write TIFF image data to the data area
+ if (group() > Group::mn) o2 = offset + dataIdx;
#ifdef DEBUG
std::cerr << "TiffImageEntry, Directory " << tiffGroupName(group())
<< ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << tag() << std::dec
- << ": Writing offset " << imageIdx << "
";
+ << ": Writing offset " << o2 << "
";
#endif
DataBuf buf(static_cast<long>(strips_.size()) * 4);
uint32_t idx = 0;
for (Strips::const_iterator i = strips_.begin(); i != strips_.end(); ++i) {
- idx += writeOffset(buf.pData_ + idx, imageIdx, tiffType(), byteOrder);
- imageIdx += i->second;
- imageIdx += i->second & 1; // Align strip data to word boundary
+ idx += writeOffset(buf.pData_ + idx, o2, tiffType(), byteOrder);
+ o2 += i->second;
+ o2 += i->second & 1; // Align strip data to word boundary
+ if (!(group() > Group::mn)) {
+ imageIdx += i->second;
+ imageIdx += i->second & 1; // Align strip data to word boundary
+ }
}
append(blob, buf.pData_, buf.size_);
return buf.size_;
@@ -1081,6 +1088,20 @@ namespace Exiv2 {
return 0;
} // TiffEntryBase::doWriteData
+ uint32_t TiffImageEntry::doWriteData(Blob& blob,
+ ByteOrder byteOrder,
+ int32_t /*offset*/,
+ uint32_t /*dataIdx*/,
+ uint32_t& /*imageIdx*/) const
+ {
+ uint32_t len = 0;
+ // For makernotes, write TIFF image data to the data area
+ if (group() > Group::mn) {
+ len = writeImage(blob, byteOrder);
+ }
+ return len;
+ } // TiffImageEntry::doWriteData
+
uint32_t TiffDataEntry::doWriteData(Blob& blob,
ByteOrder /*byteOrder*/,
int32_t /*offset*/,
@@ -1282,6 +1303,16 @@ namespace Exiv2 {
return 0;
} // TiffEntryBase::doSizeData
+ uint32_t TiffImageEntry::doSizeData() const
+ {
+ uint32_t len = 0;
+ // For makernotes, TIFF image data is written to the data area
+ if (group() > Group::mn) {
+ len = sizeImage();
+ }
+ return len;
+ } // TiffImageEntry::doSizeData
+
uint32_t TiffDataEntry::doSizeData() const
{
if (!pValue()) return 0;
diff --git a/src/tiffcomposite_int.hpp b/src/tiffcomposite_int.hpp
index 33381b9..f5d478e 100644
--- a/src/tiffcomposite_int.hpp
+++ b/src/tiffcomposite_int.hpp
@@ -726,7 +726,19 @@ namespace Exiv2 {
//@}
//! @name Write support (Accessors)
//@{
- // Using doWriteData from base class
+ /*!
+ @brief Implements writeData(). Write the image data area to the blob.
+ Return the number of bytes written.
+
+ This function writes the image data to the data area of the current
+ directory. It is used for TIFF image entries in the makernote (large
+ preview images) so that the image data remains in the makernote IFD.
+ */
+ virtual uint32_t doWriteData(Blob& blob,
+ ByteOrder byteOrder,
+ int32_t offset,
+ uint32_t dataIdx,
+ uint32_t& imageIdx) const;
/*!
@brief Implements writeImage(). Write the image data area to the blob.
Return the number of bytes written.
@@ -735,7 +747,8 @@ namespace Exiv2 {
ByteOrder byteOrder) const;
//! Implements size(). Return the size of the strip pointers.
virtual uint32_t doSize() const;
- // Using doSizeData from base class
+ //! Implements sizeData(). Return the size of the image data area.
+ virtual uint32_t doSizeData() const;
//! Implements sizeImage(). Return the size of the image data area.
virtual uint32_t doSizeImage() const;
//@}
--
exiv2 packaging
More information about the pkg-kde-commits
mailing list