Dolby Vision thumbnails SHOULD just work
Dolby Vision Profile 5 content used to produce thumbnails with a green
rectangle on one side, or sometimes no thumbnails at all on certain
hardware setups. The pipeline now uses the right tone-mapping path per
GPU brand:
- NVIDIA — software decode with libplacebo
- Intel — VAAPI decode with jellyfin-ffmpeg's patched OpenCL tonemap
- AMD — VAAPI decode with Vulkan libplacebo
If your GPU driver can't do the colour conversion, the app falls back
to a safer filter chain that produces dim-but-correct thumbnails
instead of broken ones, and flags a notification in the dashboard.
Multi-GPU hosts pick the right card
Running both NVIDIA and Intel/AMD GPUs in the same machine used to
sometimes route work to the wrong card. The app now correctly
prioritises NVIDIA over Intel for Vulkan work on dual-GPU hosts, and
won't confuse two GPUs that share a vendor name.
CPU fallback is now automatic
If you upgrade from 3.4: the "CPU Fallback Workers" setting is
gone. GPU workers now automatically retry a file on CPU when they hit
an unsupported codec — no extra pool to configure. If you had files
that only ever decoded on CPU, just raise CPU Workers in Settings
and they'll route straight there.
Fixes
- Dark / crushed HDR thumbnails caused by the wrong tone-mapping curve
- Green overlay on DV5 thumbnails when the Vulkan driver falls back to
software rendering — you now get a yellow dashboard notification
explaining the problem instead of silently-broken images - NVIDIA CUDA on Windows hosts now works (previously fell back to
D3D11VA) - GPU detection works in containers that don't expose
/sys/class/drm
(TrueNAS Scale, Kubernetes) - Job cancellation actually kills the underlying FFmpeg process
- ETA no longer shows a misleading "0s" when items are skipped
- WebSocket connections no longer hang on page refresh
- "Processing paused" no longer silently starts queued jobs
Security
- Dependency update closes five known vulnerabilities in the HTTP
stack (urllib3 CVEs — redirect handling, chunked encoding, proxy
auth). No action needed — automatic on upgrade. - Notification messages in the dashboard are now sanitised before
rendering, closing a potential script-injection vector. - Session cookies honour the
HTTPSenvironment variable more
reliably when deployed behind a reverse proxy.
Under the hood
- Faster test suite and CI (10 min → under 1 min)
- Cleaner code layout — unchanged behaviour, but new contributors will
find their way around more easily
Migrating from 3.4
The container and settings file are unchanged. On first start-up, any
legacy environment variables you had (CPU_THREADS, PLEX_LIBRARIES,
…) are migrated into settings.json automatically. Configure
everything through the Settings page in the web UI from then on.
The --cli command-line mode is gone — the web UI is the only
interface.