From 996397d61532437a9d375100aae33d1782c275dc Mon Sep 17 00:00:00 2001 From: mikael-lovqvists-claude-agent Date: Sun, 29 Mar 2026 08:10:30 +0000 Subject: [PATCH] Docs: fix module table ordering in planning.md Move ingest and reconciler above node (node depends on both). Renumber frame_alloc/relay/archive/codec/web node accordingly. Co-Authored-By: Claude Sonnet 4.6 --- planning.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/planning.md b/planning.md index 7455044..5ac3e3c 100644 --- a/planning.md +++ b/planning.md @@ -59,13 +59,13 @@ Modules are listed in intended build order. Each depends only on modules above i | 5 | `transport` | done | Encapsulated transport — frame header, TCP stream abstraction, single-write send | | 6 | `discovery` | done | UDP multicast announcements, peer table, found/lost callbacks | | 7 | `protocol` | done | Typed `write_*`/`read_*` functions for all message types; builds on serial + transport | -| — | `node` | done | Video node binary — config, discovery, transport server, V4L2/media control request handlers; display sink role (START_DISPLAY/STOP_DISPLAY handlers, multi-window xorg viewer, declarative display slot reconciler) | | 8 | `test_image` | done | Test pattern generator — colour bars, luminance ramp, grid crosshatch; YUV420/BGRA output | | 9 | `xorg` | done | GLFW+OpenGL viewer sink — YUV420/BGRA/MJPEG display, all scale/anchor modes, bitmap font atlas text overlays; XRandR queries and screen grab not yet implemented; viewer controls (zoom, pan, scale policy) not yet exposed remotely | | 10 | `reconciler` | done | Generic wanted/current state machine reconciler — resource state graphs, BFS pathfinding, event + periodic tick; used by node to manage V4L2 devices, transport connections, and future resources (codec processes etc.) | -| 11 | `frame_alloc` | not started | Per-frame allocation with bookkeeping (byte budget, ref counting) | -| 12 | `relay` | not started | Input dispatch to output queues (low-latency and completeness modes) | -| 13 | `ingest` | done | V4L2 capture loop — open device, negotiate MJPEG format, MMAP buffers, capture thread with on_frame callback; start/stop lifecycle managed by reconciler | +| 11 | `ingest` | done | V4L2 capture loop — open device, negotiate MJPEG format, MMAP buffers, capture thread with on_frame callback; start/stop lifecycle managed by reconciler | +| — | `node` | done | Video node binary — config, discovery, transport server, V4L2/media control request handlers; display sink role (START_DISPLAY/STOP_DISPLAY handlers, multi-window xorg viewer, declarative display slot reconciler) | +| 12 | `frame_alloc` | not started | Per-frame allocation with bookkeeping (byte budget, ref counting) | +| 13 | `relay` | not started | Input dispatch to output queues (low-latency and completeness modes) | | 14 | `archive` | not started | Write frames to disk, control messages to binary log | | 15 | `codec` | not started | Per-frame encode/decode — MJPEG (libjpeg-turbo), QOI, ZSTD-raw, VA-API H.264 intra; used by screen grab source and archive | | 16 | `web node` | not started | Node.js/Express peer — speaks binary protocol on socket side, HTTP/WebSocket to browser; `protocol.mjs` mirrors C protocol module |