docs(roadmap): surround 5.1/7.1 is shipped, not planned
ci / web (push) Successful in 43s
ci / docs-site (push) Successful in 1m10s
decky / build-publish (push) Successful in 27s
apple / swift (push) Successful in 4m20s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 39s
ci / bench (push) Successful in 6m53s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 9s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 6m0s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 1m30s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 6m56s
android / android (push) Successful in 12m10s
docker / deploy-docs (push) Successful in 23s
arch / build-publish (push) Successful in 14m55s
deb / build-publish (push) Successful in 16m5s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 12m59s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 14m24s
ci / rust (push) Successful in 23m13s
apple / screenshots (push) Successful in 19m9s
ci / web (push) Successful in 43s
ci / docs-site (push) Successful in 1m10s
decky / build-publish (push) Successful in 27s
apple / swift (push) Successful in 4m20s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 39s
ci / bench (push) Successful in 6m53s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 9s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 6m0s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 1m30s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 6m56s
android / android (push) Successful in 12m10s
docker / deploy-docs (push) Successful in 23s
arch / build-publish (push) Successful in 14m55s
deb / build-publish (push) Successful in 16m5s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 12m59s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 14m24s
ci / rust (push) Successful in 23m13s
apple / screenshots (push) Successful in 19m9s
5.1 and 7.1 surround now works end to end (host encodes multichannel via multistream Opus; native clients render >2 channels via AudioDec::Surround). Move it to Shipped + the at-a-glance table, and narrow the Planned entry to the genuinely-future object-based spatial audio work. Corrects the stale 'every path is stereo end to end / no client renders it yet' claim. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -25,6 +25,7 @@ see [Status & Progress](/docs/status).
|
|||||||
| Concurrent sessions (shared desktop) | ✅ |
|
| Concurrent sessions (shared desktop) | ✅ |
|
||||||
| Network speed test + bitrate | ✅ |
|
| Network speed test + bitrate | ✅ |
|
||||||
| HDR / 10-bit streaming | ✅ Windows host · ⛔ Linux host |
|
| HDR / 10-bit streaming | ✅ Windows host · ⛔ Linux host |
|
||||||
|
| Surround audio (5.1 / 7.1) | ✅ |
|
||||||
| Sub-frame pipelining (latency) | 🔭 |
|
| Sub-frame pipelining (latency) | 🔭 |
|
||||||
|
|
||||||
## ✅ Shipped
|
## ✅ Shipped
|
||||||
@@ -48,6 +49,8 @@ see [Status & Progress](/docs/status).
|
|||||||
mid-stream resolution renegotiation, a cross-machine clock-skew handshake, a 1 Gbps+ data plane,
|
mid-stream resolution renegotiation, a cross-machine clock-skew handshake, a 1 Gbps+ data plane,
|
||||||
an in-app network speed test that informs the bitrate picker, and **automatic adaptive bitrate**
|
an in-app network speed test that informs the bitrate picker, and **automatic adaptive bitrate**
|
||||||
(the encoder re-targets mid-stream when bitrate is set to Automatic).
|
(the encoder re-targets mid-stream when bitrate is set to Automatic).
|
||||||
|
- **Surround sound** — 5.1 and 7.1 end to end: the host encodes multichannel via multistream Opus and
|
||||||
|
the native clients render more than two channels, with clean, synchronous stereo where the path is stereo.
|
||||||
|
|
||||||
## 🟡 In progress
|
## 🟡 In progress
|
||||||
|
|
||||||
@@ -66,15 +69,12 @@ see [Status & Progress](/docs/status).
|
|||||||
an available host profile (likely behind a second per-user auth layer); on connect to an idle host,
|
an available host profile (likely behind a second per-user auth layer); on connect to an idle host,
|
||||||
the user lands in *their own* desktop/session, signed in, without touching the host. Turns one box
|
the user lands in *their own* desktop/session, signed in, without touching the host. Turns one box
|
||||||
into a personal, profile-aware streaming target for a household.
|
into a personal, profile-aware streaming target for a household.
|
||||||
- **Surround & spatial audio.** Today every path is stereo end to end (the Linux host already encodes
|
- **Object-based spatial audio.** With 5.1/7.1 surround shipped, the frontier is object-based sound.
|
||||||
5.1/7.1 via multistream Opus, but no client renders it yet). Near term: carry a **7.1 channel bed** —
|
Capturing game audio objects on native Windows is blocked by a closed renderer API, but **Proton
|
||||||
multichannel capture, surround Opus on every host, and clients that render more than two channels
|
already routes them through Wine's `ISpatialAudioClient`** — where it currently *discards* the
|
||||||
(macOS can then spatialize the bed to head-tracked AirPods audio). The moonshot is **object-based
|
dynamic/height objects and their 3D positions. Finishing that rendering would give every Proton gamer
|
||||||
spatial audio**: native-Windows Atmos/DTS:X object capture is blocked by a closed renderer API, but
|
real spatial sound, and tunnelling the objects + positions to the client would let punktfunk spatialize
|
||||||
**Proton already routes game audio objects through Wine's `ISpatialAudioClient`** — where it currently
|
them *on the client* — head-tracked remote spatial audio (to AirPods and the like) that no streaming
|
||||||
*discards* the dynamic/height objects and their 3D positions. Finishing that rendering would give
|
|
||||||
every Proton gamer real spatial sound, and tunnelling the objects + positions to the client would let
|
|
||||||
punktfunk spatialize them *on the client* — head-tracked remote Atmos-style audio that no streaming
|
|
||||||
stack does today.
|
stack does today.
|
||||||
- **Sub-frame pipelining.** Overlap encode and transmit within a single frame (a direct NVENC slice
|
- **Sub-frame pipelining.** Overlap encode and transmit within a single frame (a direct NVENC slice
|
||||||
path) — the next big latency lever at high resolutions.
|
path) — the next big latency lever at high resolutions.
|
||||||
|
|||||||
Reference in New Issue
Block a user