Files
cvmmap-streamer/docs/compat_matrix.md
T

77 lines
2.3 KiB
Markdown

# Compatibility Matrix
## Mandatory Acceptance Matrix
The deterministic acceptance matrix is driven by tester binaries, not by a dummy pipeline source.
Run it with:
```bash
cmake -B build -S .
cmake --build build
./scripts/acceptance_standalone.sh
```
Covered rows:
| Row | Protocol | Codec | Transport | Runner |
|-----|----------|-------|-----------|--------|
| 1 | RTP | H.264 | UDP RTP | `./scripts/acceptance_standalone.sh` |
| 2 | RTP | H.265 | UDP RTP | `./scripts/acceptance_standalone.sh` |
| 3 | RTMP | H.264 | `libavformat` | `./scripts/acceptance_standalone.sh` |
| 4 | RTMP | H.265 | `libavformat` | `./scripts/acceptance_standalone.sh` |
| 5 | RTMP | H.264 | `ffmpeg_process` | `./scripts/acceptance_standalone.sh` |
| 6 | RTMP | H.265 | `ffmpeg_process` | `./scripts/acceptance_standalone.sh` |
Notes:
- RTMP is Enhanced RTMP only.
- The custom RTMP packetizer and domestic mode are removed.
- `encoder.backend` remains `auto|ffmpeg`; both resolve to FFmpeg.
## Optional Checks (Non-Blocking)
These are useful interoperability checks, but they are not part of the mandatory acceptance gate:
- `./scripts/rtmp_srs_smoke.sh`
- `./scripts/live_srs_forward_smoke.sh '<cvmmap-uri>'`
- manual WHEP playback through SRS
- manual ZLMediaKit interoperability checks
- live MCAP capture, validation, and paced replay
## Recording Coverage
MCAP support is validated separately with:
- `./build/mcap_reader_tester`
- `./build/mcap_replay_tester`
- `./build/mcap_body_record_tester`
- `./scripts/replay_mcap.sh`
Current recording scope:
| Output | Codec | Notes |
|--------|-------|-------|
| MCAP `foxglove.CompressedVideo` | H.264 | Stored as Annex B access units |
| MCAP `foxglove.CompressedVideo` | H.265 | Stored as Annex B access units |
| MCAP raw body packets | `cvmmap.body_tracking.v1` | Payload bytes are identical to the cv-mmap ZED body PUB packet |
## Current Defaults
| Setting | Value |
|---------|-------|
| Encoder backend | `auto` -> FFmpeg |
| RTMP transport | `libavformat` |
| RTMP mode | Enhanced only |
| Encoder device | `auto` |
| Low-latency GOP | `30` |
| B-frames | `0` |
## What Is No Longer Supported
- GStreamer encoder backend
- custom RTMP packetizer
- RTMP domestic mode
- dummy input flags in the main runtime
- direct in-repo RTSP/WebRTC publishing