Formats
HEIF and iPhone photos
Why the metadata always works, why the pictures sometimes do not, and how to fix that.
An unmodified iPhone writes HEIF. So do some cameras, next to the RAW. Cullant handles those files in two halves, and the halves behave differently.
The metadata always works
Capture time, dimensions, camera, lens, ISO, aperture, shutter, focal length. All of it is read from every HEIF file, on every platform, with nothing installed.
That means a library of nothing but iPhone photos sorts by real capture time and fills every filter facet, straight away. Grouping, rating, labelling, deleting, moving and sidecar export all work too.
The pictures depend on your machine
Cullant carries no HEVC decoder and is not going to get one. Every library that decodes HEVC is a C dependency, which would be the first in this project and would have to be built for four different Android processors.
So Cullant borrows a decoder from the system instead, and tries these in turn:
| Platform | What it uses | What you need |
|---|---|---|
| Android | The system image decoder | Android 9 or later |
| Windows | WIC | The HEIF and HEVC extensions from the Microsoft Store |
| Any desktop | ffmpeg |
Version 7.0 or later. Version 6 will not do, because it decodes HEVC but cannot read a still image out of the container. |
| iOS, iPadOS | none | Not built yet |
If one of them has the codec and still refuses a particular file, Cullant hands the file to the
next one. Decoders genuinely disagree about what a HEIF is: WIC wants the structure a camera
writes and refuses a single frame wrapped in an MP4, which ffmpeg reads without complaint.
Getting the pictures on Windows
Install the HEIF and HEVC extensions from the Microsoft Store, or put ffmpeg 7.0 or later on
your PATH. Either one is enough.
Nothing is ever marked as broken
When no decoder answers, the cell stays empty and Cullant remembers nothing about that file. Install a decoder afterwards and the picture appears the next time you look, with no rescan, no cache to clear, no setting to find.
That is deliberate. Cullant normally remembers a file it could not read, keyed on when the file last changed. Installing a decoder changes no file, so a note written here would keep every one of those photos blank forever.
A companion RAW outranks a HEIF
If a shot has both an .ORI and a .HIF, the grid shows you the .ORI, although the HEIF is
usually the better picture. The reason is certainty: the .ORI draws on every machine, and a
HEIF only draws where the system lends a decoder. A project has to look the same on every
computer you open it on.