# daemon/ — daedalus-v4l2 userspace decoder daemon Userspace daemon that: 1. Connects to the kernel module's chardev 2. Receives bitstream + V4L2 control blobs 3. Parses bitstream via dlopen'd FFmpeg 4. Dispatches per-block work via `daedalus_dispatch_*` from sibling `daedalus-fourier` 5. Returns decoded frames to kernel ## Status Scaffold only. Phase 8.3 not yet started. ## Build dependencies (planned) - libdaedalus_core.a from sibling daedalus-fourier (static link) - FFmpeg dev headers (for AVPacket/AVCodec interface types) + runtime FFmpeg .so (loaded via dlopen) - libv4l2 (for V4L2 control struct definitions) - pthread ## Build (when implemented) ```sh mkdir build && cd build cmake .. -DDAEDALUS_FOURIER_DIR=/path/to/daedalus-fourier make ``` ## Layout (planned) - `CMakeLists.txt` - `src/main.c` — event loop, chardev connection - `src/parser.c` — FFmpeg dlopen wrapper + per-codec dispatch - `src/decode_vp9.c`, `src/decode_av1.c`, `src/decode_h264.c` — per-codec block walkers - `src/frame_io.c` — frame allocation, return to kernel ## License BSD-2-Clause (matches daedalus-fourier sibling). ## Phase 8.3 starting point A standalone program that: 1. Opens a .ivf or .mp4 2. Pulls codec packets via dlopen'd avformat 3. Calls dlopen'd avcodec to parse (without decoding) 4. Walks the block-level metadata 5. Validates output structure No kernel involvement yet — just confirm the parse path works.