This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to branch geoapi-4.0 in repository https://gitbox.apache.org/repos/asf/sis.git
commit 9ead214688e4949ac1d24e64903bc3f938cfadb8 Author: Martin Desruisseaux <[email protected]> AuthorDate: Thu Jul 2 11:03:09 2026 +0200 Fix the interleave type of RGB profile in HEIF files. --- .../apache/sis/storage/isobmff/mpeg/UncompressedFrameConfig.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/incubator/src/org.apache.sis.storage.geoheif/main/org/apache/sis/storage/isobmff/mpeg/UncompressedFrameConfig.java b/incubator/src/org.apache.sis.storage.geoheif/main/org/apache/sis/storage/isobmff/mpeg/UncompressedFrameConfig.java index dc7f535791..b939c4bd93 100644 --- a/incubator/src/org.apache.sis.storage.geoheif/main/org/apache/sis/storage/isobmff/mpeg/UncompressedFrameConfig.java +++ b/incubator/src/org.apache.sis.storage.geoheif/main/org/apache/sis/storage/isobmff/mpeg/UncompressedFrameConfig.java @@ -55,6 +55,7 @@ public final class UncompressedFrameConfig extends FullBox { /** * Numerical representation of the {@code "rgb3"} profile. + * Interleave type is 1 (pixel interleave). * * @see ComponentType#RGB */ @@ -62,6 +63,7 @@ public final class UncompressedFrameConfig extends FullBox { /** * Numerical representation of the {@code "rgba"} profile. + * Interleave type is 1 (pixel interleave). * * @see ComponentType#RGBA */ @@ -69,6 +71,7 @@ public final class UncompressedFrameConfig extends FullBox { /** * Numerical representation of the {@code "abgr"} profile. + * Interleave type is 1 (pixel interleave). * * @see ComponentType#ABGR */ @@ -209,6 +212,8 @@ public final class UncompressedFrameConfig extends FullBox { * Field values predefined by the profile from table 5 in ISO 23001-17:2024. * This switch statement supports only the few cases that we can map to RGBA. * Unsupported profiles are variants of YUV (Luma, Chroma Cb/U, Chroma Cr/V). + * Note: each profile implies also pre-defined values for `interleaveType`, + * `pixelSize`, etc. These values are currently hard-coded in version 1. */ switch (profile) { case RGB: predefined = ComponentType.RGB; break; @@ -256,7 +261,7 @@ public final class UncompressedFrameConfig extends FullBox { } numTileCols = 1; numTileRows = 1; - interleaveType = InterleavingMode.COMPONENT; + interleaveType = InterleavingMode.PIXEL; // Type of RGB, RGBA and ABGR profiles. components = new Component[predefined.length]; for (int i=0; i<predefined.length; i++) { components[i] = new Component(predefined[i]);
