mirror of
https://github.com/storytold/lightcraft.git
synced 2026-11-01 14:07:34 -06:00
A HEIC imported with no capture time. `container::embedded` knew JPEG, PNG, WebP, TIFF-based files, RAF and CR3, but no ISO base media still image, so every HEIC produced an empty `Embedded` and carried no Exif at all (#1233). With no date in the file and none in a sidecar, the import falls back to the file's modification time, which LightCraft writes as UTC: a photo taken at 13:00 in UTC-5 was catalogued as 18:00, and one taken after 19:00 local time landed in the next day's folder. `meta::heif` reads the `meta` box's item information (`iinf`) and item location (`iloc`) boxes and returns the `Exif` item's TIFF stream and the XMP `mime` item. It parses the container only, so it is in every build and the HEVC decoder stays behind the `heif` feature. The box walker `cr3` already had is now shared instead of written twice. Camera, lens, ISO, GPS and keywords come through with the date. HEIF puts orientation in the container and its Exif tag only mirrors that, so the probe still takes the orientation from the container; a test checks that a HEIC whose Exif says 6 imports upright. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>