Commit 95b8a6c7 for libheif

commit 95b8a6c75b1d1baeb701f73b346d907c2a3f8977
Author: Brad Hards <bradh@frogmouth.net>
Date:   Tue Jun 23 09:36:35 2026 +1000

    Fix pixi writing for multi-channel cases

    Resolves #1847

diff --git a/libheif/image-items/image_item.cc b/libheif/image-items/image_item.cc
index ef813535..7495d766 100644
--- a/libheif/image-items/image_item.cc
+++ b/libheif/image-items/image_item.cc
@@ -333,14 +333,14 @@ Result<Encoder::CodedImageData> ImageItem::encode_to_bitstream_and_boxes(const s
     valid_pixi = pixi->add_channel_bits(image->get_bits_per_pixel(heif_channel_Y));
   }
   else if (colorspace == heif_colorspace_YCbCr) {
-    valid_pixi = (pixi->add_channel_bits(image->get_bits_per_pixel(heif_channel_Y)) ||
-                  pixi->add_channel_bits(image->get_bits_per_pixel(heif_channel_Cb)) ||
+    valid_pixi = (pixi->add_channel_bits(image->get_bits_per_pixel(heif_channel_Y)) &&
+                  pixi->add_channel_bits(image->get_bits_per_pixel(heif_channel_Cb)) &&
                   pixi->add_channel_bits(image->get_bits_per_pixel(heif_channel_Cr)));
   }
   else if (colorspace == heif_colorspace_RGB) {
     if (chroma == heif_chroma_444) {
-      valid_pixi = (pixi->add_channel_bits(image->get_bits_per_pixel(heif_channel_R)) ||
-                    pixi->add_channel_bits(image->get_bits_per_pixel(heif_channel_G)) ||
+      valid_pixi = (pixi->add_channel_bits(image->get_bits_per_pixel(heif_channel_R)) &&
+                    pixi->add_channel_bits(image->get_bits_per_pixel(heif_channel_G)) &&
                     pixi->add_channel_bits(image->get_bits_per_pixel(heif_channel_B)));
     }
     else if (chroma == heif_chroma_interleaved_RGB ||
@@ -350,8 +350,8 @@ Result<Encoder::CodedImageData> ImageItem::encode_to_bitstream_and_boxes(const s
              chroma == heif_chroma_interleaved_RRGGBBAA_LE ||
              chroma == heif_chroma_interleaved_RRGGBBAA_BE) {
       uint16_t bpp = image->get_bits_per_pixel(heif_channel_interleaved);
-      valid_pixi = (pixi->add_channel_bits(bpp) ||
-                    pixi->add_channel_bits(bpp) ||
+      valid_pixi = (pixi->add_channel_bits(bpp) &&
+                    pixi->add_channel_bits(bpp) &&
                     pixi->add_channel_bits(bpp));
     }
   }