v0.5.2
Install
docker pull ghcr.io/corveck79/mycelium:0.5.2Added
- Web Player VA-API: hardware-accelerated HEVC transcoding via VA-API (
renderD128); reduces CPU usage significantly on supported hardware - Web Player HEVC-always: HEVC is always transcoded to HLS regardless of codec; direct serve only for H264 to avoid browser incompatibility
- Docker Compose:
videodriverGID 937 added for VA-APIrenderD128access - Spore wrapper EAE detection: also detects EAE need from output encoder args (e.g. Shield TV requesting
eac3_eaeoutput via eARC); skips injecting native decoder hint when output iscopyto prevent EAE init failures on HTTP input
Fixed
Web Player
- Black screen / corrupt green output on 10-bit HEVC with VA-API (Apollo Lake J3455)
scale_vaapifailure on 10-bit HEVC sources- Stale segments causing black screen after seek or restart
- Missing
/direct,/convert-hls,/hls-statusroutes - HLS buffer increased to prevent stalls on slow CDN
- Temp directory leak when HLS conversion crashes before session registration
ffmpeg.logfile handle not closed onPopenfailureshutil.rmtreecalled before ffmpeg process exits (race condition)
Security
- Session fixation:
session.clear()now called before writing new session keys on login /torbox-webhookand/ui/api/repair-strmsnow require authentication/setup/savenow validates against a known-key allowlist (previously accepted arbitrary keys)/healthno longer leaks internal exception details in the response body
Data integrity
cleanup.py: new strm written viaprocess_torrentbefore the old one is deletedupgrader.py: season-pack strms written before per-episode strms are removedmp4_faststart.py:.fshcache written atomically via temp-file + rename; ftyp box fetched at actual size instead of hardcoded 64 bytes
Logic
torbox.py:metaDL_donestate never matched becausedownload_stateis lowercased before comparison — fixed tometadl_donetorbox.py: createtorrent quota now recorded after HTTP success, not before (prevented quota inflation on network errors)torrentio.py: season-pack regexs0?N→s0*N(?!\d)to correctly match zero-padded season codescatbox.py:release_idle()no longer aborts on first network error — each torrent deletion is now wrapped in try/exceptmonitor.py: aired episodes without a strm are now markedwantedin the DB (were silently left without status)retry_queue.py: startup crash on undefined_CREATETORRENT_LIMITconstant (should be_CREATETORRENT_LIMIT_HOUR)db.py:_migrate()ALTER TABLE loop now catches per-column errors instead of aborting remaining migrations
Fresh install
- Fixed crash
sqlite3.OperationalError: no such table: settingson first boot when the DB is empty (#34)