Skip to content

mpv-omniphony v0.5.0

Choose a tag to compare

@mgth mgth released this 15 Aug 20:25
7347cb9

What's new since mpv-v0.4.3

  • Engine synced to Omniphony v0.5.0 — the bundled fallback liborender is the v0.5.0 engine released today (out-of-hull rendering modes, cascaded binaural, speaker/object test tools, and the rest of the v0.5.0 changes).
  • Fixed: loud crackling on ASIO output at full-scale peaks (#64). The ASIO Int32 conversion wrapped samples at exactly +1.0 to negative full scale — a polarity flip on every clipped peak. It could hit any content hot enough to clip; opus just made it easy to reproduce. Root cause fixed in double-precision scaling (mgth/mpv#13) — no decoder workaround needed.
  • ad_orender: DTS:X silence in host mode fixed (track classification now comes from decoded frames), and the decode scratch is sized for the widest layout instead of the current mode.
  • FEL/master bundles now build ffmpeg with --enable-libopus, so the libopus decoder is available there too (second finding of #64).

mpv-omniphony v0.5.0 — mpv with the ad_orender
spatial audio decoder.

What's in each archive: mpv (or mpv.exe), a fallback engine
library (liborender.so.* / orender.dll), orender.h, plus the
bundled MinGW runtime DLLs on Windows. The live overlay is built
into mpv itself — no script to install.

Engine loading: mpv no longer links the engine — it loads
liborender at runtime with an ABI version check, searching:
--ad-orender-library / $ORENDER_LIBRARY → the engine deployed
by Omniphony Studio (per-user data dir) → the copy bundled next to
mpv → the system library path. Updating Omniphony Studio therefore
updates the engine mpv uses, with no new mpv build; an
incompatible library is rejected with a clear log line and mpv
falls back to its native decoders.

macOS (Apple Silicon): …-macos-arm64.zip contains a
self-contained, double-clickable mpv-omniphony.app (built with
mpv's own bundler — every dylib incl. ffmpeg and MoltenVK is bundled,
no Homebrew required). CLI users run
mpv-omniphony.app/Contents/MacOS/mpv. It is ad-hoc signed, not
notarized, so the first launch is blocked by Gatekeeper — clear the
download quarantine once with
xattr -dr com.apple.quarantine /path/to/mpv-omniphony.app, or
right-click → Open the first time.

Embedding (Windows): libmpv-omniphony-v0.5.0-windows-x86_64.zip
carries libmpv-2.dll from this same build, with libmpv.dll.a (MinGW),
mpv.def (run lib /def:mpv.def /name:libmpv-2.dll /out:mpv.lib /MACHINE:X64
for MSVC), the mpv/ headers and the runtime DLLs. Spatial decoding works
there too, but the engine is searched next to the host executable, not next
to libmpv-2.dll — set $ORENDER_LIBRARY or the ad-orender-library option
if you put orender.dll elsewhere.

Upgrading? The overlay is now built in: delete any
omniphony-overlay.lua you previously copied into your mpv
scripts/ directory. A leftover copy is harmless (it self-disables
on these PUC-Lua builds), but it is no longer needed.

NOT bundled: the decoder bridge plugin
(omniphony_bridge.so / .dll). Licensing constraints on the
underlying codec mean users must obtain it themselves from
harletty-bridge,
and point mpv at it with
--ad-orender-bridge-path=/path/to/bridge.{so,dll,dylib}.

liborender built from source at Omniphony v0.5.0.

License — GPL-3.0-or-later. This build combines mpv
(GPL-2.0-or-later) with liborender (GPL-3.0-or-later), so the
combined work is GPLv3. Corresponding source: mpv
v0.41.0 + this repo's patches/ at commit
8df17fd31c90fb274010723e233d8a5dfba729c9, and liborender at Omniphony
v0.5.0 (https://github.com/mgth/Omniphony).
Bundled third-party libraries: see THIRD-PARTY-NOTICES.md.