2d019a38

By: Michael Lynch <git@mtlynch.io>

Give all media conversion one shared signature

The prior slice gave video its own path-to-path converter (VideoTranscodeFunc
/ VideoFileToWebM) to avoid re-spilling an already-on-disk upload to a temp
file, and renamed the stream-based Converter to ImageConvertFunc. That left two
conversion signatures to reason about.

Collapse back to a single MediaConverter func(r io.Reader, w io.Writer) error
shared by photo, animated-photo, and video conversion, matching the name the
importers package already uses. Video streams through mediastore.WriteConverted
again, intentionally accepting the redundant filesystem copies; writeFullSizeVideo
documents why so the copies don't read as an oversight. The struct that bundles
the per-kind converters becomes MediaConverters to free up the MediaConverter name.

Drop the now-unused convert.VideoFileToWebM and littlemoments.TranscodedVideoPath.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

Suite timing

Time to Start Worker time Duration Time to finish
Config 2s 7s 7s 10s
Eval 10s 1m54s 1m54s 2m04s
Build 31s 10m00s 6m05s 6m37s
Suite 2s 12m02s 6m34s 6m37s

Timeline

0s1m2m3m4m5m6m