Commit 7dc8570d for libheif
commit 7dc8570df1def44dff4d5697b3a5ced26411e4f1
Author: Dirk Farin <dirk.farin@gmail.com>
Date: Fri May 15 02:54:52 2026 +0200
fix decoder initialization order
diff --git a/libheif/context.cc b/libheif/context.cc
index b91468f2..9b24343d 100644
--- a/libheif/context.cc
+++ b/libheif/context.cc
@@ -614,6 +614,11 @@ Error HeifContext::interpret_heif_file_images()
imageItem = std::make_shared<ImageItem_Error>(imageItem->get_infe_type(), id, err);
imageItem->set_properties(properties);
} else {
+ // The decoder's input data extent must be set before any codec-config
+ // query: some decoders (e.g. JPEG, whose jpgC box is optional) read the
+ // actual bitstream to answer colorspace/bit-depth queries.
+ imageItem->set_decoder_input_data();
+
// After initialize_decoder, codec-config queries (colorspace, bit depth)
// are available, so visual-codec items can now populate their component
// descriptions. Idempotent for items already populated by set_properties
@@ -631,8 +636,6 @@ Error HeifContext::interpret_heif_file_images()
m_top_level_images.push_back(imageItem);
}
-
- imageItem->set_decoder_input_data();
}
if (!m_primary_image) {