Skip to content

Strip gain-map metadata from linked Extended XMP - #496

Open
gregbenz wants to merge 1 commit into
google:feat/preserve-xmp-metadatafrom
gregbenz:codex/strip-linked-extended-xmp
Open

gregbenz wants to merge 1 commit into
google:feat/preserve-xmp-metadatafrom
gregbenz:codex/strip-linked-extended-xmp

Conversation

@gregbenz

@gregbenz gregbenz commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

uhdr_strip_gain_map() can remove the gain-map image but leave its metadata in Extended XMP. This happens when the linked packet contains gain-map properties alongside ordinary user metadata.

This change removes those properties while preserving the user metadata and updating the packet digest and its link in standard XMP. If nothing remains in the packet, its chunks and link are removed. The JPEG image data is unchanged, and unrelated extension segments are preserved.

Incomplete or inconsistent linked chunks are rejected before writing to the output buffer.

Validation: 20 focused tests pass in the dual XMP/ISO build, 15 in the ISO-only build, and five with AddressSanitizer and UndefinedBehaviorSanitizer. An independent JPEG check also confirms valid updated XMP, preserved user metadata, and identical compressed image data and decoded pixels.

Clean linked extension packets while preserving user metadata, updating the digest and standard XMP link, and removing empty packets. Validate linked chunk coverage before writing output and cover preservation and malformed input with regression tests.
DichenZhang1 pushed a commit that referenced this pull request Oct 9, 2026
Clean linked extension packets while preserving user metadata, updating the digest and standard XMP link, and removing empty packets. Validate linked chunk coverage before writing output and cover preservation and malformed input with regression tests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant