Summary
IOoiio advertises HEIC/HEIF (heic, heif, hif) as writable whenever OpenImageIO has a heif output plugin. But writing HEIC needs an HEVC encoder, which our Windows dependencies deliberately don't include (no x265; see AGENTS.md §1.4). So on Windows utvio -formats lists HEIC as (Read, Write) and the write then fails with OIIO: Unable to open "...heic" for writing: Unknown error (#67).
Proposal
- When the plugin loads, find out whether HEVC encoding is actually available. For example, do a one-time 1×1 write of a HEIC image to a temporary file, or query libheif directly (
heif_have_encoder_for_format(heif_compression_HEVC)) if we link it. Register heic/heif/hif as read-only if not.
- AVIF (
avif) uses the AV1 encoder and should stay writable when available; probe it separately.
- Then drop the
heic/heif/hif Windows xfail entries in src/test/CliSmokeTest/format_roundtrip.py. The test only round-trips formats advertised as writable.
Related: #67, AGENTS.md §1.4.
Code of Conduct
Summary
IOoiioadvertises HEIC/HEIF (heic,heif,hif) as writable whenever OpenImageIO has aheifoutput plugin. But writing HEIC needs an HEVC encoder, which our Windows dependencies deliberately don't include (no x265; seeAGENTS.md§1.4). So on Windowsutvio -formatslists HEIC as(Read, Write)and the write then fails withOIIO: Unable to open "...heic" for writing: Unknown error(#67).Proposal
heif_have_encoder_for_format(heif_compression_HEVC)) if we link it. Registerheic/heif/hifas read-only if not.avif) uses the AV1 encoder and should stay writable when available; probe it separately.heic/heif/hifWindowsxfailentries insrc/test/CliSmokeTest/format_roundtrip.py. The test only round-trips formats advertised as writable.Related: #67,
AGENTS.md§1.4.Code of Conduct