Make it possible to switch off our TIFF/EP loader
Slightly repurpose the "enhance" toggle, which doesn't particularly make sense to run on a thumbnail.
This commit is contained in:
parent
a3a5eb33cf
commit
7dda3bd1ed
19
fiv-io.c
19
fiv-io.c
|
@ -1880,13 +1880,16 @@ fail:
|
||||||
// typically contain a nearly full-size JPEG preview.
|
// typically contain a nearly full-size JPEG preview.
|
||||||
//
|
//
|
||||||
// LibRaw takes too long a time to render something that will never be as good
|
// LibRaw takes too long a time to render something that will never be as good
|
||||||
// as the large preview, and libtiff can only read the horrible IFD0 thumbnail.
|
// as that large preview--e.g., due to exposure correction or denoising.
|
||||||
|
// While since version 0.21.0 the library provides an API that would allow us
|
||||||
|
// to extract the JPEG, a little bit of custom processing won't hurt either.
|
||||||
|
// TODO(p): Though it can also extract thumbnails from many more formats,
|
||||||
|
// so maybe keep this code as a fallback for old or missing LibRaw.
|
||||||
|
//
|
||||||
|
// Note that libtiff can only read the horrible IFD0 thumbnail.
|
||||||
// (TIFFSetSubDirectory() requires an ImageLength tag that's missing from JPEG
|
// (TIFFSetSubDirectory() requires an ImageLength tag that's missing from JPEG
|
||||||
// SubIFDs, and TIFFReadCustomDirectory() takes a privately defined struct that
|
// SubIFDs, and TIFFReadCustomDirectory() takes a privately defined struct that
|
||||||
// may not be omitted.)
|
// may not be omitted.)
|
||||||
//
|
|
||||||
// While LibRaw since 0.21.0 provides an API that would allow us to extract
|
|
||||||
// the JPEG, a little bit of custom processing won't hurt either.
|
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
tiffer_find(const struct tiffer *self, uint16_t tag, struct tiffer_entry *entry)
|
tiffer_find(const struct tiffer *self, uint16_t tag, struct tiffer_entry *entry)
|
||||||
|
@ -3234,15 +3237,19 @@ fiv_io_open_from_data(
|
||||||
surface = open_libwebp(data, len, ctx, error);
|
surface = open_libwebp(data, len, ctx, error);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// Try to extract full-size previews from TIFF/EP-compatible raws.
|
// Try to extract full-size previews from TIFF/EP-compatible raws,
|
||||||
|
// but allow for running the full render.
|
||||||
|
#ifdef HAVE_LIBRAW // ---------------------------------------------------------
|
||||||
|
if (!ctx->enhance) {
|
||||||
|
#endif // HAVE_LIBRAW ---------------------------------------------------------
|
||||||
if ((surface = open_tiff_ep(data, len, ctx, error)))
|
if ((surface = open_tiff_ep(data, len, ctx, error)))
|
||||||
break;
|
break;
|
||||||
if (error) {
|
if (error) {
|
||||||
g_debug("%s", (*error)->message);
|
g_debug("%s", (*error)->message);
|
||||||
g_clear_error(error);
|
g_clear_error(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_LIBRAW // ---------------------------------------------------------
|
#ifdef HAVE_LIBRAW // ---------------------------------------------------------
|
||||||
|
}
|
||||||
if ((surface = open_libraw(data, len, ctx, error)))
|
if ((surface = open_libraw(data, len, ctx, error)))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue