feat: add streamer-owned recording control service
Introduce a dedicated streamer-side recording control plane instead of sharing the producer recorder API. - register streamer-owned recorder endpoints as a NATS micro service - add explicit MP4 and MCAP recorder control protobufs and subject helpers - wire recorder lifecycle handling into the pipeline runtime - add MP4 writer and depth-alignment support files used by the new recording flow
This commit is contained in:
+18
-1
@@ -176,6 +176,14 @@ protobuf_generate(
|
||||
"${CMAKE_CURRENT_LIST_DIR}/proto/cvmmap_streamer/DepthMap.proto"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/proto/cvmmap_streamer/BundleManifest.proto"
|
||||
IMPORT_DIRS "${CMAKE_CURRENT_LIST_DIR}")
|
||||
add_library(cvmmap_streamer_control_proto STATIC)
|
||||
protobuf_generate(
|
||||
TARGET cvmmap_streamer_control_proto
|
||||
LANGUAGE cpp
|
||||
PROTOC_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
PROTOS
|
||||
"${CMAKE_CURRENT_LIST_DIR}/proto/cvmmap_streamer/recorder_control.proto"
|
||||
IMPORT_DIRS "${CMAKE_CURRENT_LIST_DIR}")
|
||||
add_library(cvmmap_streamer_protobuf INTERFACE)
|
||||
target_include_directories(cvmmap_streamer_foxglove_proto
|
||||
PUBLIC
|
||||
@@ -187,6 +195,11 @@ target_include_directories(cvmmap_streamer_depth_proto
|
||||
"${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/proto"
|
||||
${Protobuf_INCLUDE_DIRS})
|
||||
target_include_directories(cvmmap_streamer_control_proto
|
||||
PUBLIC
|
||||
"${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/proto"
|
||||
${Protobuf_INCLUDE_DIRS})
|
||||
target_include_directories(cvmmap_streamer_protobuf
|
||||
INTERFACE
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/proto"
|
||||
@@ -203,6 +216,7 @@ if (TARGET PkgConfig::PROTOBUF_PKG)
|
||||
endif()
|
||||
target_link_libraries(cvmmap_streamer_foxglove_proto PUBLIC cvmmap_streamer_protobuf)
|
||||
target_link_libraries(cvmmap_streamer_depth_proto PUBLIC cvmmap_streamer_protobuf)
|
||||
target_link_libraries(cvmmap_streamer_control_proto PUBLIC cvmmap_streamer_protobuf)
|
||||
|
||||
add_library(cvmmap_streamer_mcap_runtime STATIC
|
||||
src/record/mcap_runtime.cpp)
|
||||
@@ -218,7 +232,8 @@ add_library(cvmmap_streamer_record_support STATIC
|
||||
src/encode/encoder_backend.cpp
|
||||
src/encode/ffmpeg_encoder_backend.cpp
|
||||
src/record/protobuf_descriptor.cpp
|
||||
src/record/mcap_record_sink.cpp)
|
||||
src/record/mcap_record_sink.cpp
|
||||
src/record/mp4_record_writer.cpp)
|
||||
target_include_directories(cvmmap_streamer_record_support
|
||||
PUBLIC
|
||||
"${CMAKE_CURRENT_LIST_DIR}/include"
|
||||
@@ -250,6 +265,7 @@ add_library(cvmmap_streamer_common STATIC
|
||||
src/core/frame_source.cpp
|
||||
src/core/ingest_runtime.cpp
|
||||
src/ipc/contracts.cpp
|
||||
src/protocol/nats_request_reply_server.cpp
|
||||
src/protocol/wire_codec.cpp
|
||||
src/metrics/latency_tracker.cpp
|
||||
src/pipeline/pipeline_runtime.cpp
|
||||
@@ -293,6 +309,7 @@ elseif (TARGET spdlog)
|
||||
endif()
|
||||
|
||||
list(APPEND CVMMAP_STREAMER_LINK_DEPS cvmmap_streamer_protobuf)
|
||||
list(APPEND CVMMAP_STREAMER_LINK_DEPS cvmmap_streamer_control_proto)
|
||||
if (TARGET PkgConfig::PROTOBUF_PKG)
|
||||
list(APPEND CVMMAP_STREAMER_LINK_DEPS PkgConfig::PROTOBUF_PKG)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user