Description
When an image is imported with extant duplicates (multiple XMP files per raw file) and fujifilm_dynamic_range is enabled, the raw exposure bias will be set for only the first of the duplicates.
Test case:
- Place in a directory a raw file which already has an XMP file from a previous import, e.g. _DSF0001.RAF and _DSF0001.RAF.xmp.
- Make a duplicate of the XMP, e.g. _DSF0001_01.RAF.xmp
- Start darktable with a clean database
- In the script manager, start script fujifilm_dynamic_range
- Import the raw file -- this will result in two images in the film roll, each a duplicate of the single raw file
- Examine the exposure bias of each image (either via image information panel, or in the exposure module in darkroom view)
The exposure bias of the two duplicates won't match. The first will be non-zero (-0.7, -1.7, or -2.7). The second will show a exposure bias of +0.0.
In the usual case of importing un-edited photographs and making duplicates, everything is fine -- the exposure bias is copied with the duplicate. But things break when importing a directory with extant sidecar files with duplicates. In this case, the exposure bias is lost for all but the first image.
The problem is that fujfilm_dynamic_range catches the post-import-image
signal on RAF file import, and then only sets the exposure bias for the first of the duplicates.
I haven't looked into a solution yet (is there an obvious way to traverse duplicates via the lua API?), but wanted to document this.
An underlying problem may be that exposure bias is stored in the database, but not in sidecar files. If it were stored in the sidecar, then perhaps fujifilm_dyamic_range could be coded to not set the exposure bias if an image has the is_altered
flag set to true.