Commit 43464fbe for libheif
commit 43464fbeb9b7e23c4ca41d8d6af397a5315195f6
Author: Dirk Farin <dirk.farin@gmail.com>
Date: Tue Apr 7 21:23:06 2026 +0200
unci: resolve mapping component id to cmpd index for unc_encoder_component_interleave
diff --git a/libheif/codecs/uncompressed/unc_encoder_component_interleave.cc b/libheif/codecs/uncompressed/unc_encoder_component_interleave.cc
index f8027f5a..8ccc2d62 100644
--- a/libheif/codecs/uncompressed/unc_encoder_component_interleave.cc
+++ b/libheif/codecs/uncompressed/unc_encoder_component_interleave.cc
@@ -126,7 +126,7 @@ unc_encoder_component_interleave::unc_encoder_component_interleave(const std::sh
}
for (const auto& comp : m_components) {
- m_uncC->add_component({comp.component_idx, comp.bpp, comp.component_format, 0});
+ m_uncC->add_component({m_map_id_to_cmpd_index[comp.component_id], comp.bpp, comp.component_format, 0});
}
m_uncC->set_interleave_type(interleave_mode_component);
@@ -191,12 +191,12 @@ std::vector<uint8_t> unc_encoder_component_interleave::encode_tile(const std::sh
uint64_t out_pos = 0;
for (const auto& comp : m_components) {
- uint32_t plane_width = src_image->get_component_width(comp.component_idx);
- uint32_t plane_height = src_image->get_component_height(comp.component_idx);
+ uint32_t plane_width = src_image->get_component_width(comp.component_id);
+ uint32_t plane_height = src_image->get_component_height(comp.component_id);
uint16_t bpp = comp.bpp;
size_t src_stride;
- const uint8_t* src_data = src_image->get_component(comp.component_idx, &src_stride);
+ const uint8_t* src_data = src_image->get_component(comp.component_id, &src_stride);
if (m_use_memcpy) {
assert(comp.byte_aligned);
diff --git a/libheif/codecs/uncompressed/unc_encoder_component_interleave.h b/libheif/codecs/uncompressed/unc_encoder_component_interleave.h
index 834a093f..481a2945 100644
--- a/libheif/codecs/uncompressed/unc_encoder_component_interleave.h
+++ b/libheif/codecs/uncompressed/unc_encoder_component_interleave.h
@@ -40,7 +40,7 @@ public:
private:
struct channel_component
{
- uint32_t component_idx;
+ uint32_t component_id;
heif_channel channel;
heif_unci_component_type component_type;
heif_uncompressed_component_format component_format;