-
v0.1.0 — Foundation Stable
released this
2026-05-18 21:13:06 +01:00 | 35 commits to main since this releaseПервый функциональный release. Production-deployed на multi-camera CCTV-стeке (Frigate 0.17 + custom C++ processor, оба обслуживаются одним publisher'ом на одном NVDEC).
Что внутри
libcuframes.so— main shared library: CUDA IPC ring buffer + handshake protocol + cross-process sync черезcudaIpcEventHandle_tcuframes.hpp— header-only C++17 RAII wrapper над C APIcuframes-rtsp-source— standalone tool: RTSP → NVDEC → cuframes IPC- FFmpeg input demuxer
cuframes://— out-of-tree patch для FFmpeg n7.1 (filter/) - CMake install rules, Docker runtime image, integration guides
Tested
- Stress: 1 publisher × 4 consumer × 2000 frames @ 120 fps — 0 torn, 0 gaps
- E2E real camera (Dahua 1920×1080 HEVC 25fps) — 100/100 frames, 0 drops
- Production: 24h uptime, 1 NVDEC обслуживает Frigate detect + custom processor одновременно
Известные ограничения (v0.2 решит)
- Только NV12 frame format
- GPU→CPU copy в FFmpeg demuxer (zero-copy через AVHWFramesContext — v0.2)
- Только encoded path для decoded frames; для record (mux без decode) consumer открывает свой RTSP — это решает v0.2 encoded packet sharing (см. issue #2)
- Cross-container CUDA IPC требует ipc+pid namespace share (s6-overlay не совместим — нужен workaround или Frigate-image patch)
- Только Linux + NVIDIA GPU compute capability ≥ 7.5
Документация
- README.md — quickstart
- docs/architecture.md — design + IPC internals
- docs/integration.md — guides для downstream проектов
- filter/README.md — FFmpeg demuxer
- CHANGELOG.md — release notes
- ROADMAP.md — что дальше (v0.2, v0.3, v1.0)
- BENCHMARKS.md — измерения
Reference deployments
- gx/cctv PR #20 — C++ cctv-processor через
CuframesSource gx/frigate:cuframesDocker image — Frigate с patched FFmpeg (instructions in filter/README.md)
License
LGPL-2.1+
Downloads