Skip to content

feat(compat): SRT receive-profile validation — A/B matrix, FEC connect-matrix, srt-sink TS metrics - #36

Merged
andrescera merged 4 commits into
mainfrom
feat/srt-receive-profiles
Jun 25, 2026
Merged

feat(compat): SRT receive-profile validation — A/B matrix, FEC connect-matrix, srt-sink TS metrics#36
andrescera merged 4 commits into
mainfrom
feat/srt-receive-profiles

Conversation

@andrescera

Copy link
Copy Markdown
Member

What

Adds the srtla-side validation harness for the SRT receive-profile capability:

  • srt-sink TS-continuity metrics (task 5): ts_packets, ts_sync_errors, ts_cc_errors, pkt_rcv_loss, pkt_rcv_drop, pkt_retrans — TS-continuity signal replaces bytes-only as the regression gate. --retransmitalgo and --reorderfreeze flags added.
  • FEC connect-matrix (task 7): empirically proves the one-sided SRT FEC negotiation — a fec-accept listener accepts non-FEC callers plain (no reject), so FEC rides L1 with no separate listener needed. 4 cases, all pass. Documented in docs/COMPATIBILITY.md.
  • A/B profile validation matrix (task 6): paired baseline-vs-profile comparison for all 4 non-FEC profiles (Balanced/Low-Latency/Resilient/Classic) under reorder stress. Equal-gate: disconnects==0, ts_sync_errors==0, ts_cc_errors≤baseline, goodput≥99%, p95-drop≤baseline, wire-amp≤1.10×. All 4 PASS. LOSSMAXTTL sweep {30,200,1000} all PASS; recommended cap=30.
  • AGENTS.md updated with new compat harness capabilities.

Why

The A/B matrix is the regression gate that proves the SRTO_REORDERFREEZE option (CERALIVE/srt) does not degrade stream quality vs the patched BELABOX baseline. The FEC matrix proves the architectural decision that FEC rides L1 (no separate listener). Both are required before the receiver cutover.

How to verify

cmake -B build -DBUILD_COMPAT_TESTS=ON && cmake --build build -j
# FEC matrix
bash tests/compat/scenarios/fec-connect-matrix.sh
# A/B matrix (requires pre-built libsrt installs or BASELINE_LIBSRT/FREEZE_LIBSRT envs)
bash tests/compat/scenarios/profile-validation-matrix.sh

Risks

Low. All changes are under tests/compat/ (BUILD_COMPAT_TESTS=ON only) — no production code path touched. Default cmake build is unaffected (Rule E verified: existing compat pairs still pass).

@andrescera
andrescera merged commit 6963bdf into main Jun 25, 2026
9 checks passed
@andrescera
andrescera deleted the feat/srt-receive-profiles branch June 25, 2026 13:10
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.

1 participant