From e3df1ff195d18544c60c7cf17bb79e10644579f3 Mon Sep 17 00:00:00 2001 From: justnullname <51329027+justnullname@users.noreply.github.com> Date: Fri, 3 Apr 2026 10:59:15 +0000 Subject: [PATCH] Fix AVIF HDR gain map decoding crash Explicitly set `decoder->imageContentToDecode |= AVIF_IMAGE_CONTENT_GAIN_MAP` after creating the AVIF decoder in `CImageLoader`. This is required for `libavif` version 1.4.0 (and newer), where gain maps are no longer parsed or decoded by default unless requested via the `imageContentToDecode` field. Without this, attempting to apply tone mapping via `avifImageApplyGainMap` results in a crash due to missing gain map data. --- QuickView/ImageLoader.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/QuickView/ImageLoader.cpp b/QuickView/ImageLoader.cpp index 03bfe69..12599b7 100644 --- a/QuickView/ImageLoader.cpp +++ b/QuickView/ImageLoader.cpp @@ -5922,6 +5922,8 @@ namespace QuickView { avifDecoder* decoder = avifDecoderCreate(); if (!decoder) return E_OUTOFMEMORY; + decoder->imageContentToDecode |= AVIF_IMAGE_CONTENT_GAIN_MAP; + decoder->strictFlags = AVIF_STRICT_DISABLED; const unsigned int threads = std::thread::hardware_concurrency(); decoder->maxThreads = threads > 0 ? threads : 4;