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.
25 lines
1011 B
CMake
25 lines
1011 B
CMake
find_package(CUDAToolkit REQUIRED)
|
|
|
|
# Standalone test executables (без catch2 — простой ctest)
|
|
|
|
add_executable(test_pingpong test_pingpong.cu)
|
|
target_link_libraries(test_pingpong PRIVATE cuframes CUDA::cudart)
|
|
target_include_directories(test_pingpong PRIVATE
|
|
${CMAKE_SOURCE_DIR}/include)
|
|
add_test(NAME pingpong_basic COMMAND test_pingpong)
|
|
set_tests_properties(pingpong_basic PROPERTIES TIMEOUT 60)
|
|
|
|
add_executable(test_multi test_multi.cu)
|
|
target_link_libraries(test_multi PRIVATE cuframes CUDA::cudart)
|
|
target_include_directories(test_multi PRIVATE
|
|
${CMAKE_SOURCE_DIR}/include)
|
|
add_test(NAME multi_consumer COMMAND test_multi)
|
|
set_tests_properties(multi_consumer PROPERTIES TIMEOUT 60)
|
|
|
|
add_executable(test_stress test_stress.cu)
|
|
target_link_libraries(test_stress PRIVATE cuframes CUDA::cudart)
|
|
target_include_directories(test_stress PRIVATE
|
|
${CMAKE_SOURCE_DIR}/include)
|
|
add_test(NAME stress_4consumer COMMAND test_stress)
|
|
set_tests_properties(stress_4consumer PROPERTIES TIMEOUT 120)
|