Covers all layers: TCP → transport frame → message type dispatcher → payload schemas. Documents frame format (6-byte header), all message types, STREAM_OPEN/CLOSE lifecycle, codec/pixel_format/origin tables, stream events, and discovery announcement wire format. Also fixes stale channel_id reference in audio section of architecture.md. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
46 lines
1.8 KiB
Markdown
46 lines
1.8 KiB
Markdown
# video-setup
|
|
|
|
A graph-based multi-peer video routing system written in C11. Nodes are media processes connected by typed transport edges; the graph carries video streams between sources, relays, and sinks with **priority** as a first-class property — so a low-latency monitoring feed and a high-quality archival feed can coexist on the same source.
|
|
|
|
Designed to run on resource-constrained hardware (Raspberry Pi capturing raw MJPEG, forwarding over TCP) alongside more capable machines that handle processing, relay, display, and archival.
|
|
|
|
## Documentation
|
|
|
|
- [architecture.md](architecture.md) — system design: graph model, transport protocol, relay design, codec layer, discovery, multi-site plan, device resilience, X11 integration
|
|
- [docs/protocol.md](docs/protocol.md) — wire protocol reference: frame format, all message types, payload schemas, stream lifecycle, discovery
|
|
- [planning.md](planning.md) — module build order and current status
|
|
- [conventions.md](conventions.md) — C code and project conventions
|
|
|
|
### CLI Tools
|
|
|
|
- [docs/cli/media_ctrl_cli.md](docs/cli/media_ctrl_cli.md) — media device and topology tool
|
|
- [docs/cli/v4l2_ctrl_cli.md](docs/cli/v4l2_ctrl_cli.md) — V4L2 camera control tool
|
|
|
|
## Structure
|
|
|
|
```
|
|
src/modules/ C modules, one directory each
|
|
include/ public headers
|
|
dev/cli/ CLI driver programs for each module
|
|
dev/web/ development web UI (Node.js/Express, depends on protocol)
|
|
docs/ documentation
|
|
```
|
|
|
|
## Status
|
|
|
|
| Module | Status |
|
|
|---|---|
|
|
| `common` | done |
|
|
| `media_ctrl` | done |
|
|
| `v4l2_ctrl` | done |
|
|
| `serial` | done |
|
|
| `transport` | not started |
|
|
| `protocol` | not started |
|
|
| `frame_alloc` | not started |
|
|
| `relay` | not started |
|
|
| `ingest` | not started |
|
|
| `archive` | not started |
|
|
| `codec` | not started |
|
|
| `xorg` | not started |
|
|
| `web node` | not started |
|