[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