Replaces ffmpeg subprocess with direct V4L2 mmap capture using the `v4l` Rust crate. Supports MJPG (decoded via jpeg-decoder) and YUYV formats. Key changes: - Primary backend: v4l::io::mmap::Stream (no subprocess, no orphans) - Fallback: ffmpeg with 10-second timeout + kill on hang - MJPG → RGB via jpeg-decoder, YUYV → RGB inline conversion - Device released cleanly on drop (no zombie processes) Fixes the recurring stale ffmpeg issue (killed ~8 times in 61 hours of continuous monitoring). The ffmpeg subprocess would hang on V4L2 device access and become an orphan consuming 99%+ CPU. Co-Authored-By: claude-flow <ruv@ruv.net> |
||
|---|---|---|
| .. | ||
| .claude-flow | ||
| crates | ||
| data | ||
| docs | ||
| examples | ||
| patches/ruvector-crv | ||
| Cargo.lock | ||
| Cargo.toml | ||