From 072457edd8bab29770646f3d664d1088df743e54 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Mon, 8 Apr 2024 21:29:40 -0400 Subject: [PATCH] LibGfx/JPEG2000: Decode tile-part COM marker segment data We don't do anything with this (except log the contents if JPEG2000_DEBUG is 1). --- .../Libraries/LibGfx/ImageFormats/JPEG2000Loader.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibGfx/ImageFormats/JPEG2000Loader.cpp b/Userland/Libraries/LibGfx/ImageFormats/JPEG2000Loader.cpp index f0c09b16349..eb839864a8c 100644 --- a/Userland/Libraries/LibGfx/ImageFormats/JPEG2000Loader.cpp +++ b/Userland/Libraries/LibGfx/ImageFormats/JPEG2000Loader.cpp @@ -440,6 +440,7 @@ static ErrorOr read_comment(ReadonlyBytes data) struct TilePartData { StartOfTilePart sot; + Vector coms; ReadonlyBytes data; }; @@ -631,9 +632,13 @@ static ErrorOr parse_codestream_tile_header(JPEG2000LoadingContext& contex case J2K_PPT: case J2K_PLT: case J2K_COM: { - // FIXME: These are valid tile part header markers. Parse contents. auto marker = TRY(read_marker_at_cursor(context)); - dbgln("JPEG2000ImageDecoderPlugin: marker {:#04x} not yet implemented in tile header", marker.marker); + if (marker.marker == J2K_COM) { + tile_part.coms.append(TRY(read_comment(marker.data.value()))); + } else { + // FIXME: These are valid main header markers. Parse contents. + dbgln("JPEG2000ImageDecoderPlugin: marker {:#04x} not yet implemented in tile header", marker.marker); + } break; } default: