Conversation
Changes: - Gate all ICC_LOG_DEBUG/ICC_LOG_WARNING calls behind #ifdef ICC_SIGNATURE_VERBOSE so callers (analyzers, fuzzers) get silent validation by default - Add MCH A-F (icSigMCHAData through icSigMCHFData) for 10-15 channel profiles - Add v5/iccMAX N-channel (0x6e63xxxx) dynamic signature recognition - Add v5/iccMAX MCS (0x6d63xxxx) material channel set recognition - DescribeColorSpaceSignature() uses inline check instead of calling IsValidColorSpaceSignature() to avoid triggering log side-effects Fixes false ICC_WARN output on valid v5 profiles like 17ChanPart1.icc (sig 0x6e630011 = 17-channel N-channel) which was incorrectly flagged as 'Unknown' ColorSpace signature. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ChrisCoxArt
approved these changes
Mar 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
IccSignatureUtils.h V2 addresses three issues:
Noisy debug output on valid profiles —
ICC_LOG_DEBUGandICC_LOG_WARNINGcalls fired unconditionally on every signature validation, producing spurious stderr output (e.g.,ICC_WARN: ColorSpace signature: 0x6e630011 (Unknown)on valid 17-channel v5 profiles).Missing v5/iccMAX dynamic signatures — N-channel (
0x6e63xxxx) and MCS (0x6d63xxxx) signatures were not recognized, causing valid v5 profiles to be flagged as "Unknown".Missing MCH A-F —
icSigMCHADatathroughicSigMCHFData(10-15 channel profiles) were absent from bothColorSpaceSignatureToStr()andIsValidColorSpaceSignature().Changes
ColorSpaceSignatureToStr()"NChannel"/"MCS"IsValidColorSpaceSignature()#ifdef ICC_SIGNATURE_VERBOSEIsValidTechnologySignature()#ifdef ICC_SIGNATURE_VERBOSEDescribeColorSpaceSignature()IsValidColorSpaceSignature()to avoid log side-effectsBackward Compatibility
ICC_LOG_DEBUG/ICC_LOG_WARNINGoutput is now silent unless the caller definesICC_SIGNATURE_VERBOSEbefore including the header. This eliminates spurious stderr output that interfered with tools, analyzers, and fuzzers.truefor valid v5/iccMAX signatures that V1 incorrectly rejected.Reproduction
Testing
17ChanPart1.icc(17-channel, sig0x6e630011) — zero false warnings