orbiscreen | feat: WebTransport Annex-B, VBV, reliable IDR, and FEC - #80
Merged
Merged
Conversation
Serve the UI over HTTPS on signaling+2 and play Annex-B access units with WebTransport plus WebCodecs. Persist the self-signed certificate so the browser pin survives a daemon restart. Pin quinn-proto 0.11.16 so dropped datagrams do not abort the process.
sentinelt
force-pushed
the
feat/wt-vbv-fec
branch
3 times, most recently
from
September 16, 2026 14:37
0b74486 to
d77c01b
Compare
Cap the encoder VBV at one frame of CBR. Send IDR plus SPS/PPS on a reliable stream and Reed-Solomon FEC on P-frame datagrams. Hold the decoder until the next IDR instead of dropping mid-GOP P-frames.
sentinelt
force-pushed
the
feat/wt-vbv-fec
branch
from
September 16, 2026 14:56
d77c01b to
c62876e
Compare
Owner
|
Just merged this into main and tagged v0.29.0, thanks @sentinelt. WebTransport, the VBV tweaks, and Reed-Solomon FEC cut latency way down across both web and Android. Nice on the test coverage and docs in docs/FRAME_TRANSPORT.md too. Appreciate the PR, great addition to the project. |
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
Two commits on top of v0.28.9:
WebTransport Annex-B web client — Chromium plays Annex-B over WebTransport + WebCodecs on
signaling+2. P-frames are QUIC datagrams; hello/ping/IDR stay on the control stream. HTTPS serves the UI; the self-signed cert is persisted (14-day WebTransport cap). Pinsquinn-proto0.11.16.One-frame VBV, reliable IDR, and P-frame FEC — Encoder CPB is one frame of CBR. IDR + SPS/PPS go on the reliable stream (
GET /idr/ WT control). Reed-Solomon FEC covers P-frame datagrams. Android holds until the next IDR instead of dropping mid-GOP P-frames.Test plan
origin/mainv0.28.9 (per-client displays + attach fallback kept).cargo fmt --check,cargo test -p orbiscreen-transport --lib,node --test clients/web/annexb.test.js.192.168.39.177→:8789, PMTU 1472). Video playing. Tap bound toVirtual-Orbi-9548bd9a.https://192.168.39.191:8790. Daemon:webtransport video via QUIC datagrams. FingerTouchbound toVirtual-Orbi-6b5efbb0.