mikael-lovqvists-claude-agent fe350e531e Add discovery module: UDP multicast announcements and peer tracking
Sends 6-byte framed announcements to 224.0.0.251:5353 on startup and
every interval_ms (default 5s). Receive thread maintains a peer table
(max 64 entries); fires on_peer_found for new peers, on_peer_lost when
a peer misses timeout_intervals (default 3) consecutive intervals.

Own announcements are filtered by name+site_id. SO_REUSEADDR+REUSEPORT
allows multiple processes on the same host for testing.

discovery_cli: announce <name> <tcp_port> [flags] — prints found/lost events.

Also notes future config module in planning.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 22:19:56 +00:00
2026-03-26 22:03:02 +00:00

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 — system design: graph model, transport protocol, relay design, codec layer, discovery, multi-site plan, device resilience, X11 integration
  • docs/protocol.md — wire protocol reference: frame format, all message types, payload schemas, stream lifecycle, discovery
  • planning.md — module build order and current status
  • conventions.md — C code and project conventions

CLI Tools

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
Description
Graph-based multi-peer video routing system
Readme 1 MiB
Languages
C 83.7%
JavaScript 8.3%
Makefile 3.7%
Python 2.1%
CSS 1.7%
Other 0.5%