-
released this
2026-07-02 23:10:39 -04:00 | 216 commits to main since this releaseThe fixed-tier era is over: every seat now runs a per-viewer adaptive AIMD controller by default.
Adaptive quality-setpoint controller (seat-streamer)
- fps notch ladder 60→72→84→100→120→144→170→200: one notch per healthy heartbeat up, ×0.75-snap down on distress; encoder-saturation hold protects the capture export pool.
- Decode-vs-link classifier on measured signatures: backlog slope = client decode ceiling (cut fps); unrecovered loss / jbuf blowout = link overload (cut quality). NACK/RTX recovering transient loss is the transport working — it is telemetry, not distress.
- The controller IS the rate controller: CQP with live qp stepping. qp never chases content — a quiet scene at 0.3 Mbps and a battle at 8 Mbps at the same qp are both correct. Quality degrades only on real loss (proportional) or sustained output above the fps-coupled budget (the burst-bomb guard — vulkanh264enc exposes no HRD peak cap), and relaxes toward the setpoint on healthy heartbeats. (RADV's hardware VBR undershoots its target >2× on real content and starves P-frames — unusable for this.)
- Keepalive/panic/recovery: viewer silence parks the encode at the floor; recovery re-ramps, never blind-resumes.
- Burst-flushed datachannel stats are discarded, not diffed into phantom telemetry.
- Tuning: GSE_FPS_FLOOR, GSE_ADAPT_MBPS_PER_100FPS, GSE_ADAPT_MAX_MBPS, GSE_ADAPT_QP_BEST, GSE_ADAPT_HEARTBEAT_SECS; GSE_ADAPTIVE_FPS=0 reverts to static CQP.
Client (ui41)
- adapt-ack liveness → fast ka probes → buffering screen; re-ramp on recovery.
- Delta-proportional telemetry cadence (1s steady, 400ms while correcting).
- Decode-capability probe (mc:hw / mc:sw): detects software-decoding browsers from inside the viewer — a software decoder caps ~84fps at 1080p where the same phone does 175+ in hardware. If the overlay says mc:sw, switch to a Chromium browser or enable hardware video decoding.
Validated
Pixel 9 Pro Fold, 1080p, real cellular link: reached the 200 ceiling with the encoder streaming 167–175fps at 5–10 Mbps floating with scene content, quality recovering after every disturbance.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads