v0.5.4
Fixed
- DVD MPEG-2 (and any non-h264 source) files treated as already-converted in the queue estimation modal — savings showed
0 MB, the job got dispatched ascleanup_only, and only flipping "Force re-encode all files (including x265)" actually transcoded them. Root cause:scan_results.needs_conversionis a derived field (video_codec × source_codecs setting) but stored at scan time. When users widened "Convert From (source codecs)" in Settings to enable MPEG-2 / MPEG-4 / VC-1 after their files were first scanned, the storedneeds_conversion=0values stayed stale. The queue's estimation loop reads the stored field (routes/jobs.py:1773), returns 0 savings, and dispatches as cleanup-only. Fix: (1) newrecompute_needs_conversionhelper inscanner.pythat recomputes the field for everyconverted=0row against any source_codecs list (using the canonicalCODEC_FAMILIESmapping); (2) one-shot heal_v0_5_4_recompute_needs_conversionruns once on upgrade and realigns existing rows against the user's current setting; (3) settings PUT handler now calls the same recompute wheneversource_codecschanges, so this can't recur on the next setting tweak. Symptom-matching behavior — including the "MPEG-2 file with no estimated savings" you'd see on DVD rips — fixes itself on first container restart.
Docker images
Pinned to this release:
docker pull ghcr.io/i-ial9000/shrinkerr:0.5.4 # portable (amd64 + arm64, CPU)
docker pull ghcr.io/i-ial9000/shrinkerr:0.5.4-nvenc # x86_64 + NVIDIA GPU (NVENC)
docker pull ghcr.io/i-ial9000/shrinkerr:0.5.4-edge # as above but ffmpeg master
docker pull ghcr.io/i-ial9000/shrinkerr:0.5.4-edge-nvencFloating tags (:latest, :edge, :nvenc, :edge-nvenc) track the most recent release of each lineage.