Skip to content

orbiscreen | feat: WebTransport Annex-B, VBV, reliable IDR, and FEC - #80

Merged
shadow-x78 merged 2 commits into
shadow-x78:mainfrom
sentinelt:feat/wt-vbv-fec
Sep 16, 2026
Merged

shadow-x78 merged 2 commits into
shadow-x78:mainfrom
sentinelt:feat/wt-vbv-fec

Conversation

@sentinelt

Copy link
Copy Markdown
Contributor

Summary

Two commits on top of v0.28.9:

  1. 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). Pins quinn-proto 0.11.16.

  2. 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

  • Rebased onto origin/main v0.28.9 (per-client displays + attach fallback kept).
  • cargo fmt --check, cargo test -p orbiscreen-transport --lib, node --test clients/web/annexb.test.js.
  • Android Tab S5e on Wi-Fi UDP (192.168.39.177:8789, PMTU 1472). Video playing. Tap bound to Virtual-Orbi-9548bd9a.
  • Brave Tab S5e on WebTransport https://192.168.39.191:8790. Daemon: webtransport video via QUIC datagrams. Finger Touch bound to Virtual-Orbi-6b5efbb0.
  • Reviewer: two tablets, confirm WT plays in Chromium and UDP Android stays smooth after a lossy hop.

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
sentinelt force-pushed the feat/wt-vbv-fec branch 3 times, most recently from 0b74486 to d77c01b Compare September 16, 2026 14:37
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.
@shadow-x78
shadow-x78 merged commit 46c5a64 into shadow-x78:main Sep 16, 2026
5 of 7 checks passed
@shadow-x78

Copy link
Copy Markdown
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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants