Release 2.0.0.0: Overhaul
Hello everyone
This release is a massive reworking of the underlying player. The most prominent changes are:
- Custom GPU-accelerated decoder modules
- Playback on browsers such as Firefox is now actually feasible
- Custom GPU-accelerated post processing passes
- The same kind of concept as MPV shaders.
- Performance improvements
- Server-side client defaults
- Accessible via the plugin's settings.
To install, add https://raw.githubusercontent.com/alchemyyy/jellyfin-plugin-webgpu-player/main/manifest.json as a plugin repository (Dashboard > Plugins), then install WebGPU Player from the catalog.
Pull Requests
- Preserve playback across early and overlapping seeks by Alexk2309 in #4
- Report only actual subtitle file fetching by Alexk2309 in #5
Commits since v1.1.0.1
210c894Split the release workflow into Validate, Build, Release notes, Publish release, and Update main jobs38947b5Update the engine for the Mediabunny fork's toolchain under NODE_ENV=productionf20bddcPreserve playback across early and overlapping seeks (#4)25d8f2dReport only actual subtitle file fetchingd230902Update README0d9865fUpdate webgpu-player3062e65Keep the display awake during custom playbackba9dfe1add docs8b245edShow the settings panel's descriptions from info buttons, and keep the panel above the shown OSD's controls40a70e2Install the engine's pinned decoder and pass releases instead of building the packagesf12fe45Update the engine for the AC-4 default downmixf339787Add deploy.sh, which builds the plugin and installs it on a Jellyfin server over SSH, and update the engine for its rendered diagrams63f795aUpdate the engine for the Anime4K pass file namese33ade0Serve this checkout's plugin, built again on every change, in the live development client76368afApply client defaults retroactively, and lay out the settings page at half width303204eUpdate the engine for single-substream TrueHD34f5ad5Update the engine for MPEG program streams, JPEG 2000 in Matroska, every DTS layout, and the library run's fixes1db49abUpdate the engine for H.264 High 10, 4:2:2, and 4:4:4, 7.1 audio, WMA, ASF, and Dolby Atmos78b00ecUpdate the engine for the Matroska seek fix66b5bdaFollow a read's redirect to another origin in the live development proxy0a42c48Name the live development port setting dev_client_portc81b8bfServe Jellyfin Web with the live add-on against a server of your own2a181bfExempt the backdrop mock's TRANSPARENCY_LEVEL from the naming rule2136224Add server-set client defaults, settings button placement, and a WebGPU player toggle9b544f0Update the engine for the Reinhard defaultbe67b18Update the engine for per-draw smooth motion06d2b67Update the engine for Mediabunny 1.62.16de0d5aUpdate the engine for smooth motion99006b7Update the engine for the TODO items closed on 10-27bf3ababAdvertise MPEG-4 Part 2, H.263, and MS-MPEG4 from their decoder package2683e06Give the player tests' presenter the first-use external Profile 8 wait8585968Expect the packet expression's error for a package header whose packet line is not one6684816Advertise AV1 raw formats and Profile 10 outside Main 10 from their own qualification0839137Let the add-on's controller stand-in take the frame loop's presentation preparerdf84990Give the player tests' presenter the AV1 external HDR wait and route codec5d0f89fExpect 10-bit BT.601 SDR AV1 to play through its own raw SDR key9e13510Expect Dolby Vision RPU reconstruction on the HEVC decoder package's route6c3c183Cover the probe store key and the warm-up in the add-on entry test346c28fWarm the capability probes at add-on load and offer a clear of their stored verdictsa829589Advertise HEVC in AVI, whose presentation times the fork's demuxer readsf89143aAdvertise VobSub as the Matroska subtitle file the server extracts and render it on both backendsddaa4e8Bound each decoder package route by the sizes and chroma its packages take on the device294dc5eCarry each video decoder package's header in the server's catalog5bc9786Advertise FLAC, Vorbis, and wide PCM in the AVI direct-play profile55bc1f2Offer double rate, single rate, or no deinterlacing in the WebGPU settings3e7548eInstall the engine's pinned Rust before the builds that use it3ff571bInstall the engine's emsdk from build.sh when the Emscripten check failsdc88f9bUpdate the engine for build.sh and its own emsdkda7bee0Keep the display awake during custom playbackfdfbca3Clear the add-on's npm audit and update the engine for Vitest 53fee27fUpdate the engine to keep the decode worker across queue items5dd76ecUpdate the engine to start a seek's decode run beside the stopped one23df9deOffer pass constants in the shader settings and update the engine for chroma upscaling4083740Advertise Dolby Vision items whose base a decoder package decodes4b3efe2Rewrite the add-on tests against the package-based enginea24c4bdAdd a GPU decode slicing setting and update the engine for Mediabunny v2e543b49Update the engine for GPU completion polling and two decode packets in flight8808d4aUpdate the engine for DTS in MPEG-TS and faster audio packagesd06ba63Direct-play interlaced video the engine deinterlaces0eb9ae3Offer the engine's decoders and passes from the server1794747Update the engine for the Mediabunny fork's lacing and close fixese71bec7Update the engine for the Mediabunny fork and the wgpud and wgpup foldersd966924Update the engine for the approved performance and RPU items5ec04deUpdate the engine for concealment, deinterlacing, and the VC-1 parser85d15c3Update the engine for the VC-1 decoder package9bae158Update the engine for decoder packagesfaf6fe4Store shader pass files in IndexedDBb449432Update the engine for sandbox default buttons3a20d21Update the engine for scroll-adjusted sandbox controlsad8b83aUpdate the engine for style.css, undrawn frame telemetry, and sandbox fixes53d9623Update the engine for the ffprobe exit code fix326b2a5Update the engine for the sandbox launch scriptb95fb8bLeave the vendored Jellyfin Web out of the add-on's linte77314cKeep the stream URL out of timing trace exports3edd10eUpdate the engine for sandbox playback through the engine917b333Run the engine's presentation setup and frame loop4c81fa4Add HDR output and WGSL shader pass settingsbd9e3bcUpdate the engine for the presentation pipeline core