Summary: | Digikam not detecting my OLYMPUS M.14-42mm F3.5-5.6 II R lens | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | urcindalo |
Component: | Plugin-Editor-LensCorrection | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | caulier.gilles, sreedharpalayil, tpr |
Priority: | NOR | ||
Version: | 2.9.0 | ||
Target Milestone: | --- | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/digikam/1a29366d743eccd0e8126e0c87d9aa1d00864be7 | Version Fixed In: | 3.2.0 |
Sentry Crash Report: | |||
Attachments: |
sample picture
installed lensfun file describing my lens |
Description
urcindalo
2012-12-07 10:38:49 UTC
I forgot. This is the corresponding exif data from my pictures, as reported by exiftool: ===================================================== Image Description : OLYMPUS DIGITAL CAMERA Make : OLYMPUS IMAGING CORP. Camera Model Name : E-PM1 ... ---- Olympus ---- Special Mode : Normal, Sequence: 0, Panorama: (none) Camera ID : OLYMPUS DIGITAL CAMERA Equipment Version : 0100 Camera Type 2 : E-PM1 Serial Number : BB9501686 Internal Serial Number : 4134108006711001 Focal Plane Diagonal : 21.6 mm Body Firmware Version : 1.301 Lens Type : Olympus M.Zuiko Digital ED 14-42mm F3.5-5.6 II R Lens Serial Number : ABG235236 Lens Model : OLYMPUS M.14-42mm F3.5-5.6 II R Lens Firmware Version : 1.102 ===================================================== Created attachment 75676 [details]
sample picture
Sample picture
digiKAm use LensFun library in background to handle lens properties. This report must be moved to Lensfun project... We don't touch lensfun code, we use it only. Look here : http://lensfun.berlios.de/ Gilles Caulier Created attachment 75679 [details] installed lensfun file describing my lens (In reply to comment #3) > digiKAm use LensFun library in background to handle lens properties. This > report must be moved to Lensfun project... We don't touch lensfun code, we > use it only. First of all, let me express how grateful I am for such a stunning software digikam is. Secondly, I don't want to argue, just to learn. Should I infer from your words both Darktable and Rawstudio touch the lensfun code? That's the only explanation I can think of for the fact those programs can detect my lens using lensfun but digikam can not. I find it strange. I'm no programmer, but if digikam reads the exif tags and there is one of them labelled "Lens Model" which says "OLYMPUS M.14-42mm F3.5-5.6 II R", and this same entry is found in the /usr/share/lensfun/mil-olympus.xml attached file from my lensfun-0.2.6 installation, why is it that digikam can't find the lens description just by using the lensfun installation? I would like you to clarify the issue before going to the lensfun site to file a bug against it, because I'm not completely convinced right now this is the case. Gilles, there seems to be something wrong with the way that we handle lensfun for this case. Please note that the lens information comes from a Makernote field which we do not read currently, so loading from metadata fails in this case. As the bug reporter points out, various lenses can be found in the mentioned database xml, these lenses are not filled into the lens combo. Why? Shouldn't all lenses with the matching mount (micro 4/3) be listed? Marcel, > Please note that the lens information comes from a Makernote field which we do not read >currently, so loading from metadata fails in this case. There is a small wrapper in digiKam. Look into libs/dimg/filters/lens/lensfiface::findFromMetadata(). It miss probably a rule to check this Olympus Makernotes. >As the bug reporter points out, various lenses can be found in the mentioned database xml, >these lenses are not filled into the lens combo. Why? Shouldn't all lenses with the matching >mount (micro 4/3) be listed? I suspect that user use internal digiKam lensfun, and user look in external source code (current one) which can be different than internal. In fact internal code is the last lensfun stable. It can be updated of course... but i think that we can always use now an external depency. In the past, i add lensfun code to digiKam because it have not very available everywhere. This is completly different now... Gilles Caulier (In reply to comment #6) > I suspect that user use internal digiKam lensfun, and user look in external > source code (current one) which can be different than internal. In fact > internal code is the last lensfun stable. It can be updated of course... but > i think that we can always use now an external depency. In the past, i add > lensfun code to digiKam because it have not very available everywhere. This > is completly different now... I am a Gentoo user. My digikam-2.9.0 is compiled with an "external" lensfun, or at least is seems so. You can find this in Gentoo's digikam-2.9.0.ebuild (remember it's a source "distro", we compile everything): ============ CDEPEND=" $(add_kdebase_dep kdelibs 'semantic-desktop=') .... media-libs/lensfun ... " ============ On the other hand, I don't know which lensfun version you use for its "internal" support in digikam (I believe for the precompiled binaries you perhaps provide), but micro-4/3 support in lensfun is only available starting from version 0.2.6. Hope this info helps. I checked my system lensfun and then had the same idea as you. But it's identical on my system, both 0.2.6 and both databases have the Olympus lenses which are not shown. Marcel, Does it not show lens : 1/ in digiKam command line test tool "testlensfuniface" ? 2/ in Image Editor ? 3/ in both ? => 1/ & 2/ i suspect a bug in digiKam lensfuniface => 3/ i suspect a bug in lensfun. Gilles Gilles (In reply to comment #9) > 1/ in digiKam command line test tool "testlensfuniface" ? How can I test that? In the Image Editor no lens detection [the reason for this bug :)] On the other hand, in my box I have two mil-olympus.xml files, but both are the same and identical to the file I previously attached: ====== $ locate mil-olympus.xml /usr/share/apps/digikam/lensfun/mil-olympus.xml /usr/share/lensfun/mil-olympus.xml $ ls -la /usr/share/apps/digikam/lensfun/mil-olympus.xml -rw-r--r-- 1 root root 8200 sep 2 12:37 /usr/share/apps/digikam/lensfun/mil-olympus.xml $ ls -la /usr/share/lensfun/mil-olympus.xml -rw-r--r-- 1 root root 8200 abr 20 2012 /usr/share/lensfun/mil-olympus.xml ====== It seems digikam in Gentoo does not use the system's lensfun but its own. I think I should file a bug to Gentoo bugzilla, but that's another story. urcindalo, My comment #9 is for Marcel. digiKam testlensfuniface is a simple command line tool compiled with digiKam source when TEST code is enabled. So it's a specific case... where code need to ce compiled by yourself in your computer... Gilles Caulier (In reply to comment #11) > My comment #9 is for Marcel. Yeah, I noticed that :) I was only trying to be helpful and thought of running the test myself. Anyway, thanks for taking the time to clarify the issue. I really appreciate it. tests/testlensfuniface.shell ~/Sample\ Images/Digikam\ Sample/JPEG/digikam-bug-311295.jpg unnamed app(13461)/digikam (core) _lf_get_database_dir: Lensfun database dir: "/usr/share/kde4/apps/digikam/lensfun" unnamed app(13461)/digikam (core) Digikam::LensFunIface::findCamera: Search for camera "OLYMPUS IMAGING CORP." - "E-PM1" ==> false unnamed app(13461)/digikam (core) Digikam::LensFunIface::findFromMetadata: Cannot find Lensfun camera device for ( "OLYMPUS IMAGING CORP." - "E-PM1" ) unnamed app(13461)/digikam (core) Digikam::LensFunIface::findFromMetadata: Focal Length : 22 unnamed app(13461)/digikam (core) Digikam::LensFunIface::findFromMetadata: Aperture : 10 unnamed app(13461)/digikam (core) Digikam::LensFunIface::findFromMetadata: Subject dist. : NOT FOUND unnamed app(13461)/digikam (core) Digikam::LensFunIface::findFromMetadata: Metadata match : "Partial Match" In digikam's sidebar, the lense is listed as "unavailable". Git commit 6b07fcfc298729a5a05ffd9a4ef6f428e43b30e3 by Gilles Caulier. Committed on 08/01/2013 at 10:21. Pushed by cgilles into branch 'master'. Remove internal LensFun library code and xml lens database. Set only an optional and external dependency to last 0.2.6 release. This will spimply internal code and maintainance. Related: bug 256466 M +36 -58 CMakeLists.txt M +1 -0 NEWS M +47 -39 cmake/modules/FindLensFun.cmake M +0 -1 data/CMakeLists.txt D +0 -90 data/lensfun/6x6.xml D +0 -3 data/lensfun/CMakeLists.txt D +0 -5 data/lensfun/README D +0 -1261 data/lensfun/compact-canon.xml D +0 -204 data/lensfun/compact-casio.xml D +0 -614 data/lensfun/compact-fujifilm.xml D +0 -31 data/lensfun/compact-kodak.xml D +0 -347 data/lensfun/compact-konica-minolta.xml D +0 -81 data/lensfun/compact-leica.xml D +0 -586 data/lensfun/compact-nikon.xml D +0 -465 data/lensfun/compact-olympus.xml D +0 -423 data/lensfun/compact-panasonic.xml D +0 -178 data/lensfun/compact-pentax.xml D +0 -110 data/lensfun/compact-ricoh.xml D +0 -48 data/lensfun/compact-sigma.xml D +0 -702 data/lensfun/compact-sony.xml D +0 -106 data/lensfun/generic.xml D +0 -187 data/lensfun/mil-olympus.xml D +0 -122 data/lensfun/mil-panasonic.xml D +0 -83 data/lensfun/mil-samsung.xml D +0 -55 data/lensfun/mil-sony.xml D +0 -154 data/lensfun/rf-leica.xml D +0 -1282 data/lensfun/slr-canon.xml D +0 -36 data/lensfun/slr-contax.xml D +0 -31 data/lensfun/slr-hasselblad.xml D +0 -106 data/lensfun/slr-konica-minolta.xml D +0 -1110 data/lensfun/slr-nikon.xml D +0 -326 data/lensfun/slr-olympus.xml D +0 -17 data/lensfun/slr-panasonic.xml D +0 -419 data/lensfun/slr-pentax.xml D +0 -30 data/lensfun/slr-samsung.xml D +0 -45 data/lensfun/slr-schneider.xml D +0 -497 data/lensfun/slr-sigma.xml D +0 -317 data/lensfun/slr-sony.xml D +0 -285 data/lensfun/slr-tamron.xml D +0 -108 data/lensfun/slr-tokina.xml D +0 -136 data/lensfun/slr-ussr.xml M +1 -1 digikam/utils/config-digikam.h.cmake M +3 -3 imageplugins/enhance/CMakeLists.txt M +2 -2 imageplugins/enhance/imageplugin_enhance.cpp D +0 -25 libs/3rdparty/lensfun/README D +0 -620 libs/3rdparty/lensfun/auxfun.cpp D +0 -100 libs/3rdparty/lensfun/camera.cpp D +0 -44 libs/3rdparty/lensfun/config-lensfun.cpp D +0 -32 libs/3rdparty/lensfun/config-lensfun.h D +0 -168 libs/3rdparty/lensfun/cpuid.cpp D +0 -1293 libs/3rdparty/lensfun/database.cpp D +0 -1646 libs/3rdparty/lensfun/lens.cpp D +0 -2165 libs/3rdparty/lensfun/lensfun.h D +0 -539 libs/3rdparty/lensfun/lensfunprv.h D +0 -369 libs/3rdparty/lensfun/mod-color.cpp D +0 -1167 libs/3rdparty/lensfun/mod-coord.cpp D +0 -350 libs/3rdparty/lensfun/mod-subpix.cpp D +0 -163 libs/3rdparty/lensfun/modifier.cpp D +0 -73 libs/3rdparty/lensfun/mount.cpp M +5 -7 libs/dialogs/libsinfodlg.cpp M +1 -1 libs/dimg/filters/dimgfiltermanager.cpp M +7 -7 libs/dimg/filters/lens/lensfuniface.cpp M +6 -6 libs/dimg/filters/lens/lensfuniface.h M +2 -2 tests/CMakeLists.txt M +2 -2 utilities/queuemanager/CMakeLists.txt M +2 -2 utilities/queuemanager/manager/batchtoolsmanager.cpp http://commits.kde.org/digikam/6b07fcfc298729a5a05ffd9a4ef6f428e43b30e3 urcindalo, To be clean with Lensfun project, digiKam 3.0.0 will drop internal lensfun code and will use an external dependency (optional). Minimal lensfun version to use will be 0.2.6. It will be nice to report if problem still exist with current implementation (published with 3.0.0 release) Best Gilles Caulier I have the same lens (according to the writings on the lens, exif/makernote says different) and the dropdown menu is now filled correctly, but the lens itself is not detected. Running Digikam 3.0.0 and lensfun from svn (doc path indicates the version 0.2.7.0). From exiftool: $ exiftool P2070135.JPG|grep -i lens Lens Type : Olympus M.Zuiko Digital 14-42mm F3.5-5.6 II Lens Serial Number : ABGA07554 Lens Model : OLYMPUS M.14-42mm F3.5-5.6 II Lens Firmware Version : 1.103 Lens Properties : 0xc140 Conversion Lens : Lens ID : Olympus M.Zuiko Digital 14-42mm F3.5-5.6 II And information from MakerNote tab inside photo editor: Lens Firmware Version : 4355 Lens Model : OLYMPUS M.14-42mm F3.5-5.6 II Lens Properties : 49472 Lens Serial Number : ABGA07554 Lens Type : 0 0 9 16 0 0 In the dropdown there is OLYMPUS M.14-42mm F3.5-5.6 II available, but it is not selected automatically. Also the label for detected information is just empty, while for Make and Model they are correctly selected. Okay, I did some research today Also, anyone knows why LensType is used instead of LensModel for detecting the lens? It looks like recent change has added LensType parsing (which was also mentioned in the sources, http://dev.exiv2.org/issues/879 is the change). The problem is though that Lensfun expects a "cutted" version for which there's a special case for Nikon lenses in LensFunIface. LensModel seems to be the correct for Olympus though. I have submitted a patch to reviewboard to add LensModel for checked tags, url: https://git.reviewboard.kde.org/r/109017/ Output from exiv2 -pt: Exif.OlympusEq.LensType Byte 6 Olympus M.Zuiko Digital 14-42mm F3.5-5.6 II Exif.OlympusEq.LensSerialNumber Ascii 32 ABGA07554 Exif.OlympusEq.LensModel Ascii 32 OLYMPUS M.14-42mm F3.5-5.6 II Unfortunately for me the detection algorithm will give two results, both for "normal" and "R" version of the lens and doesn't thus autoselect anything. Git commit 1a29366d743eccd0e8126e0c87d9aa1d00864be7 by Teemu Rytilahti. Committed on 18/02/2013 at 22:46. Pushed by rytilahti into branch 'master'. Search Olympus' LensModel from Lensfun database, probably fixes #311295. M +3 -6 libs/dmetadata/dmetadata.cpp http://commits.kde.org/digikam/1a29366d743eccd0e8126e0c87d9aa1d00864be7 |