dcraw: apply the fix for #4129 only for DNGs coming from the Adobe DNG Converter
This commit is contained in:
parent
3f525b7610
commit
7181f4b245
@ -6410,6 +6410,9 @@ guess_cfa_pc:
|
|||||||
}
|
}
|
||||||
if (!use_cm)
|
if (!use_cm)
|
||||||
FORCC pre_mul[c] /= cc[cm_D65][c][c];
|
FORCC pre_mul[c] /= cc[cm_D65][c][c];
|
||||||
|
|
||||||
|
RT_from_adobe_dng_converter = !strncmp(software, "Adobe DNG Converter", 19);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9690,14 +9693,16 @@ bw: colors = 1;
|
|||||||
}
|
}
|
||||||
dng_skip:
|
dng_skip:
|
||||||
if ((use_camera_matrix & (use_camera_wb || dng_version))
|
if ((use_camera_matrix & (use_camera_wb || dng_version))
|
||||||
&& cmatrix[0][0] > 0.125) {
|
&& cmatrix[0][0] > 0.125
|
||||||
|
&& !RT_from_adobe_dng_converter /* RT -- do not use the embedded
|
||||||
|
* matrices for DNGs coming from the
|
||||||
|
* Adobe DNG Converter, to ensure
|
||||||
|
* consistency of WB values between
|
||||||
|
* DNG-converted and original raw
|
||||||
|
* files. See #4129 */) {
|
||||||
memcpy (rgb_cam, cmatrix, sizeof cmatrix);
|
memcpy (rgb_cam, cmatrix, sizeof cmatrix);
|
||||||
raw_color = 0;
|
raw_color = 0;
|
||||||
if (dng_version && !use_camera_wb) { // RT
|
|
||||||
raw_color = 1;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
// RT -- TODO: check if these special cases are still needed!
|
|
||||||
if(!strncmp(make, "Panasonic", 9) && !strncmp(model, "DMC-LX100",9))
|
if(!strncmp(make, "Panasonic", 9) && !strncmp(model, "DMC-LX100",9))
|
||||||
adobe_coeff (make, model);
|
adobe_coeff (make, model);
|
||||||
if(!strncmp(make, "Samsung", 7) && !strncmp(model, "GX20",4))
|
if(!strncmp(make, "Samsung", 7) && !strncmp(model, "GX20",4))
|
||||||
|
@ -58,6 +58,7 @@ public:
|
|||||||
,RT_whitelevel_from_constant(0)
|
,RT_whitelevel_from_constant(0)
|
||||||
,RT_blacklevel_from_constant(0)
|
,RT_blacklevel_from_constant(0)
|
||||||
,RT_matrix_from_constant(0)
|
,RT_matrix_from_constant(0)
|
||||||
|
,RT_from_adobe_dng_converter(false)
|
||||||
,getbithuff(this,ifp,zero_after_ff)
|
,getbithuff(this,ifp,zero_after_ff)
|
||||||
{
|
{
|
||||||
memset(&hbd, 0, sizeof(hbd));
|
memset(&hbd, 0, sizeof(hbd));
|
||||||
@ -151,6 +152,7 @@ protected:
|
|||||||
int RT_whitelevel_from_constant;
|
int RT_whitelevel_from_constant;
|
||||||
int RT_blacklevel_from_constant;
|
int RT_blacklevel_from_constant;
|
||||||
int RT_matrix_from_constant;
|
int RT_matrix_from_constant;
|
||||||
|
bool RT_from_adobe_dng_converter;
|
||||||
|
|
||||||
float cam_mul[4], pre_mul[4], cmatrix[3][4], rgb_cam[3][4];
|
float cam_mul[4], pre_mul[4], cmatrix[3][4], rgb_cam[3][4];
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user