darktable-org/darktable — pull request #699 by pedrocr (2014-10-14 00:58:10+00:00)
Title: Fix raw parsing race condition

I think I have a simple fix for this. We get the initial dt_image_t from the database and then read the raw. The settings that come from the raw but not the database are not there at this point, so on first run we get a wrong image. On second run the dt_image_t has been updated and everything works well.

In the past we've papered over this by adding things to the db that have no business being there (e.g., raw_black and raw_maximum). Instead we can swap the correct dt_image_t into the pipeline at the same point we introduce the buffer itself into the pipe. Let the metadata flow together with the data.

If this is indeed the right fix we should be able to drop a bunch of fields from the "images" and make the image_cache much simpler.