Imported HEIC photos had no camera, capture time or All Metadata rows:
lightcraft_meta::embedded had no HEIF branch, and only the decoder read the
EXIF, while decoding pixels. crates/meta/src/heif.rs reads the primary
image's Exif item and XMP (mime) item from the ISO BMFF item structure
(meta: pitm, iinf, iref cdsc, iloc versions 0 to 2 with construction
methods 0 and 1 and idat) and honours the Exif item's TIFF-header offset.
No picture is decoded, so it works without the heif feature, and AVIF goes
through the same code. Offsets and lengths are checked; boxes, candidates
and item sizes are bounded. The CR3 box walker is reused.
Tests: the issue sweep's synthetic-metadata.heic case, EXIF offsets,
extents and construction methods, primary-image association, malformed
bounds, and a truncation, byte-damage and property sweep (meta); HEIC
import to the catalog and All Metadata, and AVIF export metadata reading
back (engine).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>