Nothing reads a photo's EXIF, so every column upstream fills is empty #209
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A photo is resolved and filed, but nothing reads the file itself, so every column
Emby.Photos/PhotoProvider.csfills is left empty. Split out of #194, which covered the resolvers.grep -rn "exif\|Exif" crates/ephyra-app/src/scan/ crates/ephyra-images/src/returns nothing.What upstream fills
upstream/Emby.Photos/PhotoProvider.cs, ~175 lines, overTagLib:Width,Height(:95-96) — fromimage.Properties, and the one pair that does not need an EXIF tagCameraMake,CameraModel(:92-93),Aperture(:79),ShutterSpeed(:84),ExposureTime,FocalLength(:129-130)Latitude,Longitude,Altitude(:132…)DateCreated,PremiereDate,ProductionYear, all offdateTaken(:111-113) — noteDateCreatedis.ToUniversalTime()andPremiereDateis notNamefromImageTag.Titlewhen there is one (:105),OverviewfromComment(:100),Genres,TagsfromKeywords(:116-117),Software(:118)CommunityRatingfromImageTag.Rating(:98),Orientation(:122-126, explicitly nulled for one value)Width/Heightare the ones with reach beyond the detail page: a client sizes a grid from them.Also named in #194 and not done
PhotoAlbumtakes no folder image. The artwork name list is right (crates/ephyra-app/src/scan/images.rsnow matchesLocalImageProvider.cs:260'sitem is MusicAlbum || MusicArtist || PhotoAlbum), but nothing walks a photo album for one.LibraryOptions.EnablePhotosexists in the DTO (crates/ephyra-dto/src/generated/models.rs:4208) and is consulted nowhere. Upstream uses it to decide whether photos in a non-photo library are resolved at all.Where it goes
crates/ephyra-imagesalready decodes; this is metadata rather than pixels, so the question worth settling first is whether the EXIF read belongs there or beside the other providers incrates/ephyra-app/src/metadata/.Verifying
cargo xtask reference gen-library-kinds(xtask/src/reference/kinds.rs) lays a tree down, stands up its own container, scans, and writes upstream's rows intocrates/ephyra-app/corpus/library-kinds.json;crates/ephyra-app/tests/library_kinds.rsreplays our walk against it. It already registers ahomevideoslibrary — but the tree's images are placeholders, so the fixture needs photos carrying real EXIF before any of this can be diffed. A generated JPEG with known tags is enough and is reproducible, which a downloaded one is not.Fixed, and landed on
mainat7bbf49e0.What is read
eXIf/iTXt), WebP and XMP tags are read incrates/ephyra-images/src/exif.rs, behindImageStore::tags.Write::photographedapplies them the wayPhotoProvider.csdoes:DateCreated,PremiereDateandProductionYear;Overview, with""when there is none;.avif) is left untouched, as upstream's TagLib failure leaves it.LibraryOptions.EnablePhotosgates pictures, photo albums, and the album beside a rip, the same three resolvers upstream gates.Verified
The library-kinds tree carries a generated JPEG with known EXIF and XMP.
cargo xtask reference gen-library-kindsrecords what upstream read under areadblock. A comparison test inxtask/src/reference/kinds.rsholds all twelve stored photo fields, plus width, height, name, year and date, to our reader.Filed separately
BaseItemDto.EnablePhotosreads asfalse.