feat(audio): add lossless HDMI passthrough - #20
Merged
Conversation
…ality - Added audio settings management to the UI state, allowing for persistence of audio configurations. - Introduced a new `useAudioOutput` composable for handling audio device states and settings. - Enhanced the `MpvHandle` to accept audio settings and configure mpv options accordingly. - Created a dedicated audio settings section in the settings panel, including device selection and passthrough toggle. - Updated player controls to reflect audio passthrough status and manage volume accordingly. - Implemented UI components for audio device selection and passthrough indication. - Added tests to ensure audio settings are correctly serialized and deserialized. - Refactored audio-related types and utility functions for better maintainability.
cjohnsto-nz
force-pushed
the
agent/audio-passthrough-pr
branch
from
August 2, 2026 06:10
04176bb to
cfb9deb
Compare
cjohnsto-nz
force-pushed
the
agent/audio-passthrough-pr
branch
from
August 2, 2026 07:41
a71dfe9 to
fde01fa
Compare
Owner
|
@cjohnsto-nz The new release of mpv v0.41.0-r16 with spdif muxer enabled in ffmpeg is ready now Also have two small suggestions for the Settings page:
|
cjohnsto-nz
force-pushed
the
agent/audio-passthrough-pr
branch
from
August 2, 2026 08:31
8d5002f to
5631d54
Compare
Author
|
@FengZeng I have addressed your feedback, and pushed a couple of additional fixes. |
cjohnsto-nz
marked this pull request as ready for review
August 2, 2026 08:50
Owner
|
There are still a few bugs on macOS. I’m also planning to redesign the Audio popup in the Playback UI, so I temporarily removed the audio passthrough settings from it |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
audio-out-params/formatbecomesspdif-*Why
Soia currently decodes all audio through the PC mixer. This adds an explicit path for sending supported encoded streams unchanged to an HDMI receiver while keeping the normal PCM path as the default.
Runtime
This branch pins the official mpv v0.41.0-r16 release, produced after FengZeng/mpv#3 enabled and verified FFmpeg's SPDIF muxer.
The normal compact dynamic-runtime architecture is unchanged. This does not introduce a conditional runtime source, fork-specific dependency, static binary overlay, or bundled diagnostic artifact.
The PR remains draft while the rewritten branch completes CI and final review.
Product behavior
modeplusoutputDevicecontract.Validation
pnpm buildpnpm setup:libsresolved and installed the official r16 Windows x64 releasepnpm bundle:win:releaseThe full Rust suite currently has three unrelated upstream failures. All reproduce on
upstream/main: two playlist/core state assertions and the existing Windows path-separator assertion.