Commit Graph

38 Commits

Author SHA1 Message Date
Geoffrey McRae
8bbf9c3056 [client/idd] network: allow unencrypted 1-RTT payloads
Expose the insecure MsQuic draft API and add an opt-in setting on both
peers. Query the negotiated state after connection establishment so
one-sided opt-in remains encrypted and is logged accurately.
2026-11-06 19:28:18 +11:00
Geoffrey McRae
0b0f227c08 [client/idd] network: discard stale audio after stalls
Keep PCM and its clock sample in cancellable datagrams so recovery
cannot replay audio buffered before a Wi-Fi stall.

Drop blocked real-time packets with an explicit discontinuity and make
a newer reconnect supersede stale audio authorities.
2026-11-06 14:40:30 +11:00
Geoffrey McRae
b1dda92f09 [client/idd] input: complete network latency path
Isolate input sends from shared transport accounting and reserve
reliable capacity.

Prioritize QUIC execution and bound stale motion through the Windows
pipe and HID queues.
2026-11-06 14:40:30 +11:00
Geoffrey McRae
1af2f13440 [client/idd] input: reduce network latency
Route input through a dedicated high-priority stream, send pointer
motion as cumulative datagrams, and recover suspected loss reliably.

Reduce downstream input queuing with age-aware coalescing and input
thread scheduling.
2026-11-06 14:40:30 +11:00
Geoffrey McRae
ccff282cd0 [client/idd] network: preserve exact frame damage 2026-11-06 14:40:30 +11:00
Geoffrey McRae
5eca9a687f [client/idd] network: process only damaged PyroWave blocks
Limit GPU encoding and client decoding to damage-derived regions.
Preserve per-level sparse transform state and cover mirrored inverse
edges.

Keep cumulative canonical packets so dropped frames remain recoverable.
2026-11-06 14:40:30 +11:00
Geoffrey McRae
ccdcad14ca [client/idd] network: send cumulative PyroWave updates 2026-11-06 14:40:26 +11:00
Geoffrey McRae
0fecbe4989 [idd] network: bind clipboard to input authority 2026-11-06 14:40:26 +11:00
Geoffrey McRae
8ca2edbcc6 [idd] network: retain and replay the latest frame
Keep one pending source frame before the first subscriber connects.
Replay completed encodes with fresh delivery timing and frame IDs.
2026-11-06 14:37:38 +11:00
Geoffrey McRae
cbb7835158 [idd] clipboard: arbitrate ownership by active client 2026-11-06 14:37:38 +11:00
Geoffrey McRae
450d20c8d8 [client/idd] network: tolerate transient wireless stalls 2026-11-06 14:37:38 +11:00
Geoffrey McRae
50177afe79 [idd] network: enforce configurable video bitrate 2026-11-06 14:37:38 +11:00
Geoffrey McRae
6aea2496f0 [idd] network: make video chroma configurable 2026-11-06 14:37:38 +11:00
Geoffrey McRae
967b43f4a8 [idd] network: preserve desktop chroma detail 2026-11-06 14:37:38 +11:00
Geoffrey McRae
bdf5fed38d [client/idd] network: implement tiled video transport 2026-11-06 14:37:38 +11:00
Geoffrey McRae
b6e0bd55fc [idd] network: preserve video sessions during reconfigure
A video configuration epoch can advance while client feedback for the
previous epoch is still in flight. Treat structurally valid stale video
control packets as obsolete instead of terminating the QUIC session.
2026-11-06 14:37:38 +11:00
Geoffrey McRae
da5af3d478 [idd] network: recover video after display reconfiguration
Reset reusable D3D12 command queues before rebuilding the encoder.

Treat a committed frame graph as recovery from transient device loss.
2026-11-06 14:37:38 +11:00
Geoffrey McRae
abc0ed0654 [idd] network: finish fragmented video frames
Preserve a partially transmitted frame while replacing queued stale
frames. Continuous capture can otherwise discard every frame before the
client receives its final fragment.
2026-11-06 14:37:38 +11:00
Geoffrey McRae
0992f695ad [client/idd] network: publish guest information 2026-11-06 14:37:38 +11:00
Geoffrey McRae
b7f36f39a2 [idd] network: support software video capture 2026-11-06 14:37:38 +11:00
Geoffrey McRae
3b8f051164 [idd] network: accept acknowledged client requests 2026-11-06 14:37:38 +11:00
Geoffrey McRae
5f2e1e116c [client/idd] network: report connection shutdown errors 2026-11-06 14:37:38 +11:00
Geoffrey McRae
746a8d460d [idd] network: default to dual-stack listener 2026-11-06 14:37:38 +11:00
Geoffrey McRae
f47022d592 [idd] network: publish readiness after session setup 2026-11-06 14:37:38 +11:00
Geoffrey McRae
d1bbcbcb45 [idd] network: validate server certificate identity 2026-11-06 14:37:38 +11:00
Geoffrey McRae
1b9199355b [idd] network: handle invalid delivery values 2026-11-06 14:37:38 +11:00
Geoffrey McRae
9316493738 [idd] network: fix MSVC compilation 2026-11-06 14:37:38 +11:00
Geoffrey McRae
53c25dd5a9 [client/idd] network: add GPU video transport 2026-11-06 14:37:38 +11:00
Geoffrey McRae
d24d11c3b7 [client/idd] network: add clipboard and bulk transfer 2026-11-06 14:37:38 +11:00
Geoffrey McRae
a43227cba6 [client/idd] network: add bidirectional audio 2026-11-06 14:37:38 +11:00
Geoffrey McRae
ffa7f10085 [client/idd] network: bound pending QUIC sends 2026-11-06 14:37:38 +11:00
Geoffrey McRae
a67034b14f [client/idd] network: add recovery, cursor, and control 2026-11-06 14:37:38 +11:00
Geoffrey McRae
6dfba7519c [client/idd] network: add password authentication 2026-11-06 14:37:38 +11:00
Geoffrey McRae
5138f470b7 [client/idd] network: add negotiated input service 2026-11-06 14:37:38 +11:00
Geoffrey McRae
cd27ffb06e [idd] network: use shared identity constants 2026-11-06 14:37:38 +11:00
Geoffrey McRae
6eb7c1698c [common] network: use LGProtocol codecs 2026-11-06 14:37:38 +11:00
Geoffrey McRae
90d2867a78 [idd] network: start QUIC control server 2026-11-06 14:37:37 +11:00
Geoffrey McRae
5dcfad9bb0 [idd] network: add transport session foundation 2026-11-06 14:37:37 +11:00