a21812d3f6
cuframes-rtsp-source — standalone bridge между RTSP/file и cuframes IPC. Декодирует на CUDA (nvdec), копирует D2D в pre-allocated pool (EXTERNAL ownership), публикует через cuframes. --realtime для pacing файлового ввода, --loop для зацикливания. Альтернатива FFmpeg-фильтра до v0.2 (filter требует patch FFmpeg, конфликтует с Frigate's bundled build). examples/sub_count — reference subscriber на raw C API: counts frames, trackit gaps, выходит clean при disconnect/timeout/SIGINT. test_stress (4 subscribers × 2000 frames @ 120fps) — PASS на RTX 5090. 0 torn frames у всех consumers (включая 2 slow с 5ms sleep). Smoke-проверено: testsrc 25fps → cuframes-rtsp-source → cuframes IPC → sub_count (отдельный процесс) → 200/200 frames, 0 gaps, avg_fps=25.2.
21 lines
547 B
CMake
21 lines
547 B
CMake
cmake_minimum_required(VERSION 3.20)
|
|
project(cuframes_rtsp_source LANGUAGES CXX)
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
pkg_check_modules(FFMPEG REQUIRED IMPORTED_TARGET
|
|
libavformat
|
|
libavcodec
|
|
libavutil
|
|
)
|
|
find_package(CUDAToolkit REQUIRED)
|
|
|
|
add_executable(cuframes-rtsp-source main.cpp)
|
|
target_compile_features(cuframes-rtsp-source PRIVATE cxx_std_17)
|
|
target_compile_options(cuframes-rtsp-source PRIVATE -Wall -Wextra)
|
|
target_link_libraries(cuframes-rtsp-source
|
|
PRIVATE
|
|
cuframes
|
|
PkgConfig::FFMPEG
|
|
CUDA::cudart
|
|
)
|