From e07eecd689347c300b13ff13181d2382a9183a24 Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Sun, 20 Dec 2015 21:31:41 +0000 Subject: [PATCH] #816. Fix for Pentax K-3 Camera. --- src/pentaxmn.cpp | 12 +++++++++--- test/bugfixes-test.sh | 2 +- test/data/bugfixes-test.out | Bin 1844671 -> 1845112 bytes test/data/exiv2-bug816e.exv | Bin 0 -> 19049 bytes 4 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 test/data/exiv2-bug816e.exv diff --git a/src/pentaxmn.cpp b/src/pentaxmn.cpp index 097330df..dd3f1d49 100644 --- a/src/pentaxmn.cpp +++ b/src/pentaxmn.cpp @@ -1181,10 +1181,16 @@ namespace Exiv2 { } 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 + // 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 if ( lensInfo->toLong(4) == 0 && lensInfo->toLong(5) == 40 && lensInfo->toLong(6) == 148 ) index = 8; + + } else if ( value.count() == 4 ) { + // http://dev.exiv2.org/attachments/download/868/IMGP2221.JPG + // 0x0207 PentaxDng LensInfo Undefined 128 0 131 128 0 0 255 1 184 0 0 0 0 0 + // 0 1 2 3 4 5 6 + if ( lensInfo->count() == 128 && lensInfo->toLong(1) == 131 && lensInfo->toLong(2) == 128 ) index = 8; } if ( index > 0 ) { diff --git a/test/bugfixes-test.sh b/test/bugfixes-test.sh index b110e961..4becf91b 100755 --- a/test/bugfixes-test.sh +++ b/test/bugfixes-test.sh @@ -222,7 +222,7 @@ source ./functions.source 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 c d; do + for X in a b c d e; do filename=exiv2-bug${num}${X}.exv copyTestFile $filename runTest exiv2 -pa --grep Lens $filename diff --git a/test/data/bugfixes-test.out b/test/data/bugfixes-test.out index d68903399f82130e0bc3fdc584765970e208c296..62add7203dfcacd656370a6e7e857e398f024b0a 100644 GIT binary patch delta 249 zcmXxcI|{-;5C&jIjhgs=8*QetvdG5GW>bmBu<;D(Z0$V4-XTJ;5QJEG0LAlIiGLz8 zd@wWoGxtaQe#M6i-BR;OC?aXr2`$X-M9Z!4HM7TJB{*+Alph3)Ny}o&H~*3dO3k6* zP#5tKX(?F+tRwtTtTij#vXbVRkn7|>e<8E6>3qymf)bRW0v1%E26eE(fd(|81#Rd+ X7kbc#0SsXTW0=4cT$o+6bZ+gxdRSP+ delta 121 zcmWN=xe0(U06if~_A+CKhR?wkKNsm4Q dhKv|9Vakj-3o4eZShHcvjy(sCoK9nBx%^e@HT?hp diff --git a/test/data/exiv2-bug816e.exv b/test/data/exiv2-bug816e.exv new file mode 100644 index 0000000000000000000000000000000000000000..1f7a1af6c9ee8ad89583206ddc5189d2d4b5aac4 GIT binary patch literal 19049 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 C@{Cvj literal 0 HcmV?d00001