Yesterday I was using my Canon R5, RF 100-500 and RF 2x extender. The camera, lens and exposure info in the panel at top left was correct. Today I was using the same but without the 2x, but ART still reports the 2x as present. The EXIF info is correct in both images:
I think it would be better if you do it, since you have the equipment, in case the exiv2 guys need more samples/tests to figure out what is going on…
I don’t know if ART gets partial lens ID from only Exiv2 or partially from its own parsing of EXIF data, but sometimes the lens detail is correct, sometimes not.
I believe the “LensID” is just a number and that number is then mapped onto the lens name. Since the teleconverter doesn’t modify the number it is impossible to discern what is using the teleconverter and what isn’t.
This is definitely an exiv2 bug. ART gets the info via exiv2::lensName, if exiv2 can’t be sure about LensID, it should use something else. Now, I can certainly think of working around that, but this doesn’t mean it’s not a bug
lensName() is just a convenience function that works most of the time for vanilla cases. The internal exiv2 (and exiftool btw) ID number to string lookup databases are mostly guesswork unfortunately and don’t/can’t really handle ID clashes.
If you’re aware of the exceptions to these simple mappings, you’ll need to dig through the Exif and MakerNote data yourself to create a better mapping (i.e. try to figure out via some other tag if a teleconverter has been used). For example, in dt there are many exceptions in lens identification, and Canon ones (like this case) are still not covered perfectly…
Thank all the camera and lens vendors for having (or have had) a custom lens identification and metadata storage scheme. For example, only recently have some of them started using the standard Exif.Photo.LensModel and Exif.Photo.LensMake as expected.
Thanks for the explanation. I understand the issue, but my opinion is that, in principle, what you describe should be done by exiv2 inside the implementation of lensName. Otherwise, they should deprecate the function or at least warn about its limitations. I see no mention of this in the API docs though.
This is the principle. Then, in practice, I’m already adding exceptions and workarounds when people report them…
I’m sorry if you took it that way. Exiv2 does genuinely need help, and can’t be realistically expected to deal w/ this lens identification shenanigans “perfectly” on everyone’s behalf.
Just lobbing “exiv2 bugs” over when it comes to lens identification isn’t necessarily always constructive (hope you can see that perspective as well).