@@ -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