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

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:45:53 UTC 2017


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

The following commit has been merged in the master branch:
commit fe0a04cd3bb1a0e282d4d569cd0228cf56cf2c2e
Author: Robin Mills <robin at clanmills.com>
Date:   Fri Nov 13 18:43:35 2015 +0000

    #816.  Fix submitted.  Thank you Simon for working with me on this and for providing test files.
---
 src/pentaxmn.cpp            |  33 ++++++++++++++++++++++++++-------
 test/bugfixes-test.sh       |   9 +++++++++
 test/data/bugfixes-test.out | Bin 1842213 -> 1842806 bytes
 test/data/exiv2-bug816a.exv | Bin 0 -> 60177 bytes
 test/data/exiv2-bug816b.exv | Bin 0 -> 54547 bytes
 5 files changed, 35 insertions(+), 7 deletions(-)

diff --git a/src/pentaxmn.cpp b/src/pentaxmn.cpp
index a492471..96fd6b9 100644
--- a/src/pentaxmn.cpp
+++ b/src/pentaxmn.cpp
@@ -1148,26 +1148,39 @@ namespace Exiv2 {
 
     // ----------------------------------------------------------------------
     // #816 begin
-    std::ostream& resolveLensType(std::ostream& os, const Value& value,
+    std::ostream& resolveLensTypeSigma(std::ostream& os, const Value& value,
                                                  const ExifData* metadata)
     {
         try {
             unsigned long lensID = value.toLong(0)*256 + value.toLong(1);
 			unsigned long index  = 0;
 
-            if ( lensID == 0x3ff ) { // lensType Sigma
+            if ( value.count() == 2 ) {
+			    // http://dev.exiv2.org/attachments/download/326/IMGP4432.PEF
+			    // exiv2 -pv --grep Lens ~/Downloads/IMGP4432.PEF
+                // 0x003f Pentax       LensType  Byte        2 3 255
+                // 0x0207 Pentax       LensInfo  Undefined  36 3 255 0 0 40 148 71 152 80 6 241 65 237 153 88 36 1 76 107 251 255 255 255 0 0 80 6 241 0 0 0 0 0 0 0 0
 				unsigned long base   = 1;
 
 				// http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Pentax.html#LensData
 				const ExifData::const_iterator lensInfo = metadata->findKey(ExifKey("Exif.Pentax.LensInfo"));
-				if ( lensID == 0x3ff && lensInfo->count() > 5 ) {
+				if ( lensInfo->count() > 5 ) {
 					unsigned int  autoAperture     = lensInfo->toLong(base+1) & 0x01 ;
 					unsigned int  minAperture      = lensInfo->toLong(base+2) & 0x06 ;
 					unsigned int  minFocusDistance = lensInfo->toLong(base+3) & 0xf8 ;
+					unsigned int  dontKnow         = lensInfo->toLong(base+4);
 
-					// os << "autoAperture = " << autoAperture << " minAperture = " << minAperture << " minFocusDistance = " << minFocusDistance << " " ;
-
-					if ( autoAperture == 0x0 && minAperture == 0x0 && minFocusDistance == 0x28 ) index = 8;
+					if ( autoAperture == 0x0 && minAperture == 0x0 && minFocusDistance == 0x28 && dontKnow == 148) index = 8;
+				}
+			} else if ( value.count() == 3 ) {
+			    // http://dev.exiv2.org/attachments/download/858/_IGP9032.DNG
+                // $ exiv2 -pv --grep Lens ~/Downloads/_IGP9032.DNG
+                // 0x003f PentaxDng    LensType  Byte        3    3 255 0
+                // 0x0207 PentaxDng    LensInfo  Undefined  69  131   0 0 255 0 40 148 68 244 ...
+                //                                                0   1 2   3 4  5   6
+				const ExifData::const_iterator lensInfo = metadata->findKey(ExifKey("Exif.PentaxDng.LensInfo"));
+				if ( lensInfo->count() > 5 ) {
+					if ( lensInfo->toLong(4) == 0 && lensInfo->toLong(5) == 40 && lensInfo->toLong(6) == 148 ) index = 8;
 				}
 			}
 
@@ -1180,6 +1193,12 @@ namespace Exiv2 {
         return EXV_PRINT_COMBITAG_MULTI(pentaxLensType, 2, 1, 2)(os, value, metadata);
     }
 
+    std::ostream& resolveLensType(std::ostream& os, const Value& value,
+                                                 const ExifData* metadata)
+    {
+        return EXV_PRINT_COMBITAG_MULTI(pentaxLensType, 2, 1, 2)(os, value, metadata);
+    }
+
     struct LensIdFct {
        long     id_;                           //!< Lens id
        PrintFct fct_;                          //!< Pretty-print function
@@ -1199,7 +1218,7 @@ namespace Exiv2 {
        {   0x032c, resolveLensType },
        {   0x032e, resolveLensType },
        {   0x0334, resolveLensType },
-       {   0x03ff, resolveLensType },
+       {   0x03ff, resolveLensTypeSigma },
        {   0x041a, resolveLensType },
        {   0x042d, resolveLensType },
        {   0x08ff, resolveLensType },
diff --git a/test/bugfixes-test.sh b/test/bugfixes-test.sh
index 7c6bff3..efc1963 100755
--- a/test/bugfixes-test.sh
+++ b/test/bugfixes-test.sh
@@ -219,6 +219,15 @@ source ./functions.source
 	runTest exiv2 -u -v -M"set Exif.Photo.UserComment Test Bug $num modified" bug$num.jpg
 	runTest exiv2 -PE -g UserComment bug${num}*.jpg
 
+	num=816 # test Camera: Pentax + Lens:Sigma 55-200mm F4-5.6 DC is correctly reported
+	printf "$num " >&3
+	echo '------>' Bug $num '<-------' >&2
+	for X in a b; do
+		file=exiv2-bug${num}${X}.exv
+		copyTestFile $file
+		runTest exiv2 -pa --grep Lens $file
+	done
+
 	num=831
 	filename=exiv2-bug$num.tif
 	printf "$num " >&3
diff --git a/test/data/bugfixes-test.out b/test/data/bugfixes-test.out
index 7880b1c..66f4528 100644
Binary files a/test/data/bugfixes-test.out and b/test/data/bugfixes-test.out differ
diff --git a/test/data/exiv2-bug816a.exv b/test/data/exiv2-bug816a.exv
new file mode 100644
index 0000000..c76409d
Binary files /dev/null and b/test/data/exiv2-bug816a.exv differ
diff --git a/test/data/exiv2-bug816b.exv b/test/data/exiv2-bug816b.exv
new file mode 100644
index 0000000..6e9adcf
Binary files /dev/null and b/test/data/exiv2-bug816b.exv differ

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list