Skip to content

NuvioLinux 0.1.15-alpha

Choose a tag to compare

@JJDizz1L JJDizz1L released this 01 Aug 00:08
· 64 commits to main since this release
d1ed986

NuvioLinux — first hard-fork release

This is the first release of the NuvioLinux hard fork, diverged from
NuvioMedia/NuvioDesktop (feat/hwaccel-libmpv-linux). It focuses exclusively
on Linux development; macOS/Windows code paths are slated for removal.

What's in this release

Native Linux playback via MPV (libmpv)

Replaces the old embedded player with a C++/JNI bridge that embeds mpv through
its render API, drawing video directly into the Compose scene so all overlay UI
works on X11 and Wayland. The app runs under XWayland; the embedded player is
display-agnostic (offscreen EGL) and works on both backends.

  • Dedicated offscreen EGL context + FBO + glReadPixels, with a software-renderer fallback
  • Per-player render thread owns the GL context; all other mpv access is confined to the event thread (observe-driven caches + command queue)
  • Fixes mpv 0.41 ABI mismatches (reply_userdata, shifted MPV_FORMAT_* enum, event IDs)
  • Frame pump reuses a fixed pool of skia bitmaps instead of allocating per frame

Hardware acceleration

Zero-copy decode via VA-API (Mesa/AMD/Intel) and NVDEC (NVIDIA), chosen
automatically by the app's decoder setting, with a software fallback. Verified:
hwdec-current=vaapi, decoded surfaces land in VRAM.

HDR support

The embedded player loads your mpv.conf wholesale, so HDR/color configuration —
tone-mapping, target-peak, inverse-tone-mapping, profiles — applies as-is.

Configurable streaming cache

New Streaming Cache Size setting (64 MB–2 GB) plus a Cache to Disk
toggle under Playback settings, wired through the JNI into
demuxer-max-bytes/demuxer-max-back-bytes. Android reads the same setting;
the cache stays bounded by demuxer-max-bytes.

Discord Rich Presence

Show what you're watching or browsing on your Discord profile. Configurable under
Settings → Integrations → Discord Rich Presence, with reconnect handling so a
dead IPC socket (Discord restart / another client) self-heals automatically.

Arch Linux distribution

First-class Arch packaging: dist/arch/PKGBUILD builds a self-contained
nuvio-linux package (bundled JRE, no system Java required) with a launcher
(/usr/bin/nuvio-linux), a desktop entry, and nuvio:///stremio:// URI handlers.

git clone https://github.com/JJDizz1L/NuvioLinux.git
cd NuvioLinux/dist/arch
makepkg -si

Commits since the fork point (upstream/Dev @ fe85aaa4)

  • 2629b468 feat(desktop): add Linux native mpv playback via JNI bridge
  • 153c6ddf chore(desktop): add debug logging for Linux native playback flow
  • c6cd8375 fix(desktop): set gpu-context=x11 instead of auto for wid embedding
  • beacbe30 feat(desktop): add Arch Linux PKGBUILD for local packaging
  • 9bc1e943 fix(desktop): empty sha256sums for empty source in PKGBUILD
  • cca53ab6 fix(desktop): remove paint-wait guard blocking Linux embed flow
  • 1e4523c3 feat(desktop): replace X11 wid embedding with libmpv GL render API on Linux
  • 8cc8114c feat(player): add configurable streaming cache and fix frame pump churn
  • f44def43 feat(desktop): add Discord Rich Presence with IPC reconnect handling
  • af4c8799 fix(dist/arch): rename package to nuvio-linux and add missing runtime deps
  • 2c8b0b76 fix(dist/arch): point desktop entry at /opt/nuvio-linux
  • d1ed986c docs: rewrite README for the NuvioLinux hard fork

⚠️ Alpha

Alpha-quality, intended for testers. Expect breaking changes with every update.