-
v0.15.0
Stablereleased this
2026-09-24 23:19:44 -04:00 | 88 commits to main since this releaseg2gMsis measured for the first time, and the seat now reports how old a frame is at each stage, so the ~130 ms glass-to-glass figure can be split per stage before any of it is tuned.- g2gMs fixed. The encoder shifts every output pts forward 1000 h (
min_pts); the wire pts andenc-latencyread that raw pts as running time, so the client was 164,026,163 ms off andenc-latencyread −3.6×10¹² µs. The seat now reads pts through the pad's segment. The client's clock offset also had the wrong sign; fixed. Readings outside 0–5000 ms are dropped and counted aswc.g2gBad, which is what a pre-0.15 seat produces. - Per-stage age on the seat.
stage.ageMs={src, vr, cap, encin, encout, sent}, each[p50, p99]ms: capture source → after the rate stage → after upload → encoder in → encoder out → last chunk handed to quinn.ageNegcounts negative ages (should be absent).stage.vratehas videorate's in/out/dup/drop per window. - Client rungs. The
wcblock addsg2g50/99,dLat50/99(decode submit → output),train50/99(first → last chunk of a frame) anddisp90Mbps(delivery rate on frames of 16+ chunks). - Parity carry bounded. For a source slightly faster than the panel the carry never ended, and the draw sat a frame (16.7 ms) behind on 71% of paints. It now releases after two consecutive carries;
wc.carRelcounts them. - Input counters at every session end.
gaps/stale/dupsare logged and written asinput-sessionon viewer leave, input close, and seat shutdown. They used to be written only when the viewer left.
No change to STUN/TURN. Client build
ui79.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- g2gMs fixed. The encoder shifts every output pts forward 1000 h (