Darktable unable to process DNG converted from Panasonic LX1 raw
DT shows only skull and can't open DNG file converted from RAW of LX1. Error: Can't read WB.
RawSpeed submodule update: LJpegDecompressor: support degenerate raws with width % 2 != 0
This is needed e.g for DNG's converted from Panasonic DMC-LX1 raws.
I have no words. What were they (Adobe) thinking.
They discard padding columns, that were garbage,
and end up with such an odd raw, where the tiles
(LJPEG-compressed) still have padding,
yet the DNG image sizes specify that it has to be discarded.
What is even worse, the image width is not multiple of two,
and the LJPEG's components-per-pixel is 2, so we have to
very-special-handle this case, to not completely discard
that last required block (then we'd be producing
nondeterministic garbage in those last few columns),
but also not fully decode it, because we don't have
anywhere to write it,
We could, of course, introduce something like
"internal padding columnts", in fact we already
pad the rows to be 16-byte aligned, but that padding
is used for ASAN overflow detection.
So right now i'm not seeing any more reasonable fix.
#1 Updated by Roman Lebedev 7 months ago
- Assignee set to Roman Lebedev
- Affected Version changed from 2.4.4 to git master branch
- System changed from Windows to all
(as disscussed in https://discuss.pixls.us/t/darktable-unable-to-process-dng-from-panasonic-lx1/8025/15) Please contribute a CC0-licensed raw sample (straight from camera) to the https://raw.pixls.us/
#6 Updated by Roman Lebedev 7 months ago
- % Done changed from 10 to 100
- Status changed from Confirmed to Fixed
Applied in changeset darktable|68348c2ffc61c3b79008e4dbd81af23ba74a9af6.