You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
JxlEncoderFrameSettingsSetOption is called with exactly one enumerant, EFFORT (verified at c2df11b: crates/gamut-jxl/src/ffi.rs:204, :316). Every other JxlEncoderFrameSettingId is unreachable from JxlEncoder, and gamut-jxl-sys would need the enumerant transcribed before it could be set at all.
The public knobs are therefore effort, distance/lossless, container, colour spec, orientation, bit depth and metadata — no coding-tool control of any kind.
Deliver: modular-mode control on JxlEncoder, plus the minimal gamut-jxl-sys enumerant additions it requires. Opening the seam makes the rest of the frame-setting surface additive rather than another FFI change each time.
Priority note: low rate-distortion value on the VarDCT photo curve — --modular 1 generally loses above distance ~0.5, and libjxl already selects modular for lossless. The motivation is parity with the modular-on variant that https://github.com/justin13888/image-evaluation already sweeps, so gamut-jxl can be compared against libjxl-encode on equal terms.
JxlEncoderFrameSettingsSetOptionis called with exactly one enumerant,EFFORT(verified atc2df11b:crates/gamut-jxl/src/ffi.rs:204,:316). Every otherJxlEncoderFrameSettingIdis unreachable fromJxlEncoder, andgamut-jxl-syswould need the enumerant transcribed before it could be set at all.JxlEncoder, plus the minimalgamut-jxl-sysenumerant additions it requires. Opening the seam makes the rest of the frame-setting surface additive rather than another FFI change each time.--modular 1generally loses above distance ~0.5, and libjxl already selects modular for lossless. The motivation is parity with themodular-onvariant that https://github.com/justin13888/image-evaluation already sweeps, sogamut-jxlcan be compared againstlibjxl-encodeon equal terms.