I think I'm slowly starting to get the hang of all these tags, but please correct me if I'm wrong in anything
Barney's program overwrites some standard EXIF tag contents by values from Canon's MakerNotes data using the exiftool utility. There several good reasons to do this:
1) The standard EXIF tag values will be incorrect if CHDK has overrided ISO/Tv/Av. They show whatever would have happened if CHDK hadn't changed things instead of the real values.
2) The standard EXIF tag values are nicely rounded, "market values" everyone has gotten used to seeing in their camera's menus and photography in general (such as ISO 80 or Tv 1/60 s), while the real values may be for example ISO 75 and Tv 1/72. This means the values written to standard EXIF locations by Canon are often slightly inaccurate even when CHDK isn't running.
3) For many Canon camera models, the EXIF:ISO value may be useless if you shoot in Auto ISO mode, because it contains "Auto" instead of the ISO value chosen by the camera. This doesn't seem to be true for my A570IS, but I'm guessing it is for other models because otherwise there wouldn't be utilities to fix EXIF:ISO...?
There's one thing I think should be looked at in Barney's program: It's mildly destructive. I mean, (if I'm not mistaken), the EXIF tags originally show the market values and whether an automatic ISO mode was enabled. That information is lost forever. I think it would be nice to know that I should set the camera to Tv 1/60 to repeat the shot later and that I used Auto ISO mode.
I was thinking the MakerNotes:CameraISO/FNumber/ExposureTime fields could be used to store what was deleted from the standard EXIF tags (effectively swapping stuff from EXIF to MakerNotes and vice versa), but then figured that running the program twice on the same file would screw things up majorly.
One solution would be to just write these to the UserComment field, so that it would read something like "SubjectDistance 0.432 m, CanonISO Auto, CanonTv 1/60 s, CanonAv 1/2.6"
Also, I think composite:iso shouldn't be written to MakerNotes:CameraISO unless it's really necessary.
If I'm not mistaken, for my A570IS
- EXIF:ISO contains Canon's "market" ISO value (chosen from menus or selected by Auto ISO mode) and is incorrect if CHDK overrides have been used and for some ISO settings it's also slightly inaccurate as it's a rounded "standard" value,
- MakerNotes:CameraISO contains the name of the camera ISO setting (such as Auto or 200), and
- composite:iso is a value calculated by exiftool from the Canon MakerNotes values CameraISO, BaseISO and AutoISO.
It is an accurate ISO value which we can trust unless the camera isn't capable of the overrided value set using CHDK.
Similarly, MakerNotes:FNumber is the real aperture value and EXIF:FNumber is a market value and the same goes for MakerNotes:ExposureTime and EXIF:ExposureTime.
I think the above is the same whether CHDK was running or not at the time of shooting (for example an old pic shot at Auto ISO without CHDK gets me composite iso of 75).
Is this not true for the S3IS or other models? I mean, I got the impression that Canon didn't use EXIF:ISO at all, but I think my camera does? Not that this matters much, since CHDK overrides make tag manipulation necessary.
If other models have different usage of the tags, maybe they need to be treated differently (the model can be tested from exif:model)?