From b92dc7c8c94b8bba75000d170bf34df86ac88783 Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Sun, 20 Dec 2015 16:49:01 +0000 Subject: [PATCH] #1140 Fix submitted. --- src/canonmn.cpp | 28 +++++++++++++++++++++++++--- test/bugfixes-test.sh | 7 +++++++ test/data/bugfixes-test.out | Bin 1844373 -> 1844671 bytes test/data/exiv2-bug1140.exv | Bin 0 -> 8375 bytes 4 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 test/data/exiv2-bug1140.exv diff --git a/src/canonmn.cpp b/src/canonmn.cpp index c9083cda..731b9859 100644 --- a/src/canonmn.cpp +++ b/src/canonmn.cpp @@ -69,6 +69,9 @@ namespace Exiv2 { std::ostream& printCsLensByFocalLengthTC(std::ostream& os, const Value& value, const ExifData* metadata); + std::ostream& printCsLensFFFF(std::ostream& os, + const Value& value, + const ExifData* metadata); //! ModelId, tag 0x0010 extern const TagDetails canonModelId[] = { @@ -990,7 +993,9 @@ namespace Exiv2 { { 250, printCsLensByFocalLength }, // not tested { 255, printCsLensByFocalLength }, // not tested { 493, printCsLensByFocalLength }, // not tested - { 4143,printCsLensByFocalLength } // not tested + { 4143,printCsLensByFocalLength }, // not tested + { 4154,printCsLensByFocalLength }, // not tested + {0xffff,printCsLensFFFF } }; //! FlashActivity, tag 0x001c @@ -1391,8 +1396,8 @@ namespace Exiv2 { //! Tone Curve Values extern const TagDetails canonToneCurve[] = { { 0, N_("Standard") }, - { 1, N_("Manual") }, - { 2, N_("Custom") } + { 1, N_("Manual") }, + { 2, N_("Custom") } }; //! Sharpness Frequency Values @@ -1575,6 +1580,23 @@ namespace Exiv2 { return os; } + std::ostream& printCsLensFFFF(std::ostream& os, + const Value& value, + const ExifData* metadata) + { + try { + # 1140 + if( metadata->findKey(ExifKey("Exif.Image.Model" ))->value().toString() == "Canon EOS 30D" + && metadata->findKey(ExifKey("Exif.CanonCs.Lens" ))->value().toString() == "24 24 1" + && metadata->findKey(ExifKey("Exif.Photo.FocalLength" ))->value().toString() == "24/1" + ){ + return os << "Canon EF-S 24mm f/2.8 STM" ; + } + } catch (std::exception& e) {}; + + return EXV_PRINT_TAG(canonCsLensType)(os, value, metadata); + } + //! Helper structure struct LensTypeAndFocalLengthAndMaxAperture { long lensType_; //!< Lens type diff --git a/test/bugfixes-test.sh b/test/bugfixes-test.sh index b799a305..b110e961 100755 --- a/test/bugfixes-test.sh +++ b/test/bugfixes-test.sh @@ -448,6 +448,13 @@ source ./functions.source runTest exiv2 -PkV --grep GPSL http://dev.exiv2.org/attachments/download/805/DSC_7154.jpg | runTest exiv2 -m- $filename runTest exiv2 -pa $filename + num=1140 + filename=exiv2-bug$num.exv + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pv -g Lens $filename + ) 3>&1 > $results 2>&1 diff --git a/test/data/bugfixes-test.out b/test/data/bugfixes-test.out index e9ab4e85661ac32c649b6f97bff3f539b7478f31..d68903399f82130e0bc3fdc584765970e208c296 100644 GIT binary patch delta 162 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 Xp^o=+3~I;Gb4~s|u%-|%h!_6?Vvhm3 literal 0 HcmV?d00001