bd4db25e

Author: Michael Lynch <git@mtlynch.io>

Committer: Michael Lynch <mtlynch@noreply.codeberg.org>

Make convert package fully stream-based (#291)

writeConvertedFile mixed two representations of the same data: the source
was both an io.Reader and a srcPath, and the destination both an io.Writer
and a dstPath. Replace it with runFFmpeg, which confines all temp-file and
path handling to one internal helper. Callers and per-format converters now
deal only in io.Reader/io.Writer.

ffmpeg still needs real seekable files (its AVIF muxer rejects non-seekable
output), so runFFmpeg does the stream-to-temp-file bookkeeping and supplies
the input (-i), output path, and output format (-f). The per-format
converters supply only path-free codec args.

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

Reviewed-on: https://codeberg.org/mtlynch/little-moments/pulls/291

Suite timing

Time to Start Worker time Duration Time to finish
Config 2s 27s 27s 30s
Eval 26s 37s 37s 1m04s
Build 46s 6m37s 2m19s 3m05s
Deploy 3m42s 3m53s 3m53s 7m36s
Suite 2s 11m36s 7m33s 7m36s

Timeline

0s1m2m3m4m5m6m7m