Add a comment about TIFF/EP vs libtiff
This commit is contained in:
parent
121c63e35e
commit
2147dba8c4
20
fastiv-io.c
20
fastiv-io.c
|
@ -1492,6 +1492,26 @@ open_libtiff(const gchar *data, gsize len, const gchar *path, GError **error)
|
||||||
if (!tiff)
|
if (!tiff)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
// In Nikon NEF files, IFD0 is a tiny uncompressed thumbnail with SubIFDs--
|
||||||
|
// two of them JPEGs, the remaining one is raw. libtiff cannot read either
|
||||||
|
// of those better versions.
|
||||||
|
//
|
||||||
|
// TODO(p): If NewSubfileType is ReducedImage, and it has SubIFDs compressed
|
||||||
|
// as old JPEG (6), decode JPEGInterchangeFormat/JPEGInterchangeFormatLength
|
||||||
|
// with libjpeg-turbo and insert them as the starting pages.
|
||||||
|
//
|
||||||
|
// This is not possible with libtiff directly, because TIFFSetSubDirectory()
|
||||||
|
// requires an ImageLength tag that's missing, and TIFFReadCustomDirectory()
|
||||||
|
// takes a privately defined struct that cannot be omitted.
|
||||||
|
uint32_t subtype = 0;
|
||||||
|
uint16_t subifd_count = 0;
|
||||||
|
const uint64_t *subifd_offsets = NULL;
|
||||||
|
if (TIFFGetField(tiff, TIFFTAG_SUBFILETYPE, &subtype) &&
|
||||||
|
(subtype & FILETYPE_REDUCEDIMAGE) &&
|
||||||
|
TIFFGetField(tiff, TIFFTAG_SUBIFD, &subifd_count, &subifd_offsets) &&
|
||||||
|
subifd_count > 0 && subifd_offsets) {
|
||||||
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
// We inform about unsupported directories, but do not fail on them.
|
// We inform about unsupported directories, but do not fail on them.
|
||||||
GError *err = NULL;
|
GError *err = NULL;
|
||||||
|
|
Loading…
Reference in New Issue