Add new comment

cam_xyz is not available for DNG files

Hello

I noticed that imgdata.color.cam_xyz is not available for DNG files, even for cameras for which it is available in their native format. It is written in adobe_coeff(). DCRaw jumps over the code that calls to adobe_coeff() when the file is DNG. Then, it loads the cam_xyz information in parse_tiff_ifd(), but it is not copied into imgdata.color.cam_xyz. So, I suggest you copy it at the end of parse_tiff_ifd(), similarly to what is done in adobe_coeff(). Something like:

  if (use_cm) {
    FORCC for (i=0; i < 3; i++)
      for (cam_xyz[c][i]=j=0; j < colors; j++)
#ifdef LIBRAW_LIBRARY_BUILD
        imgdata.color.cam_xyz[c][i] =
#endif
        cam_xyz[c][i] += cc[c][j] * cm[j][i] * xyz[i];
    cam_xyz_coeff (cam_xyz);
  }

Another posibility is to do this copy at the beginning of cam_xyz_coeff, which is called by both adobe_coeff() and parse_tiff_ifd().

Best

Forums: