gonna write
  • Rust 99.5%
  • Shell 0.5%
Find a file
tna 509657c640 Lag protection: clock fix, back-channel re-handshake or drop, black screen on connect
The "video lags, audio recovers" stall: an audio underrun's padded silence was not counted,
so the A/V clock fell behind for good and every later frame was held waiting for it (ported
from the pirror app's ba69b19). Silence now advances the clock, and a skew beyond 1 s
re-anchors it instead of holding frames.

Fallback lag protection on an unstable link (the sender picks it, --lag-protection is the
default for senders that do not answer):
- drop: bump the link generation (the queued backlog is discarded), re-anchor the clock,
  and restart decoding at the next IDR.
- rehandshake: the same, plus RESYNC to the sender over the SRT back-channel; it flushes
  its queue, forces an IDR and replies RESYNC_ACK. The link stays connected throughout.
Receivers say HELLO after accept and the sender answers CONFIG with its chosen method
(wire format shared with the pirror app's PROTOCOL.md, "Back-channel").

When a sender connects the idle screen is replaced with plain black, so video that does not
fill the display (a portrait phone) is letterboxed in black instead of over "ready to
connect" (on DRM the video is an overlay above the primary plane).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 14:48:53 +02:00
.cargo Listen in SRT live mode with CHUNK framing; drop stale NALs by link generation 2026-09-19 20:26:21 +02:00
assets Add connection state machine: frozen-frame fix, waiting screen, unstable-connection banner 2026-09-18 11:05:05 +02:00
examples Listen in SRT live mode with CHUNK framing; drop stale NALs by link generation 2026-09-19 20:26:21 +02:00
scripts Listen in SRT live mode with CHUNK framing; drop stale NALs by link generation 2026-09-19 20:26:21 +02:00
src Lag protection: clock fix, back-channel re-handshake or drop, black screen on connect 2026-10-07 14:48:53 +02:00
.gitignore Initial implementation of the Pirror sink daemon 2026-07-07 00:12:42 +03:00
Cargo.lock Bump srt-rs to 0.2: 0.1 binds the byte-swapped port 2026-07-07 02:33:12 +03:00
Cargo.toml Scan out NV12 via DRM plane; skip CPU swscale on Pi 2026-09-17 23:57:46 +02:00
CLAUDE.md Listen in SRT live mode with CHUNK framing; drop stale NALs by link generation 2026-09-19 20:26:21 +02:00