Skip to content

Commit d6dfb5e

Browse files
Tag problematic DNG image files
As commented in commit cf9d9f6 there a dng files still problematic for darktable. While reading exif data they now automatically are tagged with "darktable|issue|no-samples" so they can be found easily by the user.
1 parent 7dbd9e6 commit d6dfb5e

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

src/common/exif.cc

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1802,6 +1802,8 @@ static bool _exif_decode_exif_data(dt_image_t *img, Exiv2::ExifData &exifData)
18021802
// Read embedded color matrix and DNG related tags.
18031803
if(FIND_EXIF_TAG("Exif.Image.DNGVersion"))
18041804
{
1805+
gboolean missing_sample = FALSE;
1806+
18051807
// initialize matrixes and data with noop / defaults
18061808
float CM[3][9];
18071809
float FM[3][9];
@@ -1933,12 +1935,13 @@ static bool _exif_decode_exif_data(dt_image_t *img, Exiv2::ExifData &exifData)
19331935
{
19341936
const gboolean anymat = has_CM[k] || has_CC[k] || has_FM[k];
19351937

1936-
// Currently dt does not support DT_LS_Other so we do a fallback but backreport and request a github issue
1938+
// Currently dt does not support DT_LS_Other so we do a fallback but backreport and request samples
19371939
if(illu[k] == DT_LS_Other)
19381940
{
19391941
dt_control_log(_("detected OtherIlluminant in `%s`, please report via darktable github"), img->filename);
19401942
dt_print(DT_DEBUG_IMAGEIO, "detected not-implemented OtherIlluminant in `%s`, please report via darktable github", img->filename);
19411943
illu[k] = DT_LS_D65;
1944+
missing_sample = TRUE;
19421945
}
19431946

19441947
if(illu[k] != DT_LS_Unknown)
@@ -1986,6 +1989,7 @@ static bool _exif_decode_exif_data(dt_image_t *img, Exiv2::ExifData &exifData)
19861989
{
19871990
dt_control_log(_("special exif illuminants in `%s`, please report via darktable github"), img->filename);
19881991
dt_print(DT_DEBUG_ALWAYS, "special exif illuminants in `%s`, please report via darktable github", img->filename);
1992+
missing_sample = TRUE;
19891993
}
19901994

19911995

@@ -2012,6 +2016,7 @@ static bool _exif_decode_exif_data(dt_image_t *img, Exiv2::ExifData &exifData)
20122016
if(forward_suggested)
20132017
{
20142018
dt_control_log(_("forward matrix in `%s`, please report via darktable github"), img->filename);
2019+
missing_sample = TRUE;
20152020
}
20162021
dt_print(DT_DEBUG_IMAGEIO,
20172022
"[exif] %s%s%s: selected from [1] %s (%iK), [2] %s (%iK), [3] %s (%iK)",
@@ -2031,6 +2036,14 @@ static bool _exif_decode_exif_data(dt_image_t *img, Exiv2::ExifData &exifData)
20312036
mat3mul(img->d65_color_matrix, illuminant_data[illuminant].CA, cameratoXYZ);
20322037
_print_matrix_data("dt_image_t d65_color_matrix", 0, img->d65_color_matrix);
20332038
}
2039+
if(missing_sample)
2040+
{
2041+
guint tagid = 0;
2042+
char tagname[32];
2043+
snprintf(tagname, sizeof(tagname), "darktable|issue|no-samples");
2044+
dt_tag_new(tagname, &tagid);
2045+
dt_tag_attach(tagid, img->id, FALSE, FALSE);
2046+
}
20342047
}
20352048

20362049
gboolean is_monochrome = FALSE;

0 commit comments

Comments
 (0)