Add ZED SVO to MCAP conversion tool
This commit is contained in:
+80
-20
@@ -10,12 +10,6 @@ find_package(Threads REQUIRED)
|
||||
find_package(cppzmq QUIET)
|
||||
set(CVMMAP_LOCAL_ROOT "${CMAKE_CURRENT_LIST_DIR}/../cv-mmap" CACHE PATH "Path to a local cv-mmap checkout")
|
||||
set(CVMMAP_LOCAL_BUILD "${CVMMAP_LOCAL_ROOT}/build/core" CACHE PATH "Path to local cv-mmap build artifacts")
|
||||
if (
|
||||
NOT cvmmap-core_DIR
|
||||
AND EXISTS "${CVMMAP_LOCAL_BUILD}/cvmmap-coreConfig.cmake"
|
||||
AND EXISTS "${CVMMAP_LOCAL_BUILD}/cvmmap-coreTargets.cmake")
|
||||
set(cvmmap-core_DIR "${CVMMAP_LOCAL_BUILD}")
|
||||
endif()
|
||||
if (cvmmap-core_DIR)
|
||||
find_package(cvmmap-core CONFIG QUIET)
|
||||
endif()
|
||||
@@ -24,6 +18,9 @@ find_package(spdlog REQUIRED)
|
||||
find_package(Protobuf REQUIRED)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
find_package(rvl CONFIG QUIET)
|
||||
set(ZED_DIR "/usr/local/zed" CACHE PATH "Path to the local ZED SDK")
|
||||
find_package(ZED REQUIRED)
|
||||
find_package(CUDA ${ZED_CUDA_VERSION} REQUIRED)
|
||||
|
||||
add_subdirectory(third_party)
|
||||
|
||||
@@ -48,7 +45,7 @@ if (NOT TARGET cvmmap::client)
|
||||
endif()
|
||||
|
||||
if (NOT TARGET rvl::rvl)
|
||||
set(RVL_LOCAL_ROOT "/home/crosstyan/Code/rvl_impl")
|
||||
set(RVL_LOCAL_ROOT "${CMAKE_CURRENT_LIST_DIR}/../rvl_impl" CACHE PATH "Path to a local rvl_impl checkout")
|
||||
set(RVL_LOCAL_BUILD "${RVL_LOCAL_ROOT}/build/core")
|
||||
if (
|
||||
EXISTS "${RVL_LOCAL_ROOT}/core/include/rvl/rvl.hpp"
|
||||
@@ -66,7 +63,13 @@ add_library(cvmmap_streamer_foxglove_proto STATIC)
|
||||
protobuf_generate(
|
||||
TARGET cvmmap_streamer_foxglove_proto
|
||||
LANGUAGE cpp
|
||||
PROTOS "${CMAKE_CURRENT_LIST_DIR}/proto/foxglove/CompressedVideo.proto"
|
||||
PROTOS
|
||||
"${CMAKE_CURRENT_LIST_DIR}/proto/foxglove/CompressedVideo.proto"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/proto/foxglove/CameraCalibration.proto"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/proto/foxglove/PoseInFrame.proto"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/proto/foxglove/Pose.proto"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/proto/foxglove/Quaternion.proto"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/proto/foxglove/Vector3.proto"
|
||||
IMPORT_DIRS "${CMAKE_CURRENT_LIST_DIR}/proto")
|
||||
add_library(cvmmap_streamer_depth_proto STATIC)
|
||||
protobuf_generate(
|
||||
@@ -78,13 +81,16 @@ add_library(cvmmap_streamer_protobuf INTERFACE)
|
||||
target_include_directories(cvmmap_streamer_foxglove_proto
|
||||
PUBLIC
|
||||
"${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/proto"
|
||||
${Protobuf_INCLUDE_DIRS})
|
||||
target_include_directories(cvmmap_streamer_depth_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"
|
||||
${Protobuf_INCLUDE_DIRS})
|
||||
if (TARGET protobuf::libprotobuf)
|
||||
target_link_libraries(cvmmap_streamer_protobuf INTERFACE protobuf::libprotobuf)
|
||||
@@ -106,8 +112,38 @@ target_include_directories(cvmmap_streamer_mcap_runtime
|
||||
target_link_libraries(cvmmap_streamer_mcap_runtime
|
||||
PUBLIC
|
||||
mcap::mcap
|
||||
PkgConfig::ZSTD
|
||||
PkgConfig::LZ4)
|
||||
|
||||
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)
|
||||
target_include_directories(cvmmap_streamer_record_support
|
||||
PUBLIC
|
||||
"${CMAKE_CURRENT_LIST_DIR}/include"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}")
|
||||
target_link_libraries(cvmmap_streamer_record_support
|
||||
PUBLIC
|
||||
cvmmap_streamer_foxglove_proto
|
||||
cvmmap_streamer_depth_proto
|
||||
cvmmap_streamer_mcap_runtime
|
||||
PkgConfig::FFMPEG
|
||||
PkgConfig::ZSTD
|
||||
PkgConfig::LZ4)
|
||||
PkgConfig::LZ4
|
||||
rvl::rvl
|
||||
mcap::mcap
|
||||
msft_proxy4::proxy
|
||||
cvmmap_streamer_protobuf)
|
||||
if (TARGET spdlog::spdlog)
|
||||
target_link_libraries(cvmmap_streamer_record_support PUBLIC spdlog::spdlog)
|
||||
elseif (TARGET spdlog)
|
||||
target_link_libraries(cvmmap_streamer_record_support PUBLIC spdlog)
|
||||
endif()
|
||||
if (TARGET PkgConfig::PROTOBUF_PKG)
|
||||
target_link_libraries(cvmmap_streamer_record_support PUBLIC PkgConfig::PROTOBUF_PKG)
|
||||
endif()
|
||||
|
||||
add_library(cvmmap_streamer_common STATIC
|
||||
src/ipc/help.cpp
|
||||
@@ -119,11 +155,7 @@ add_library(cvmmap_streamer_common STATIC
|
||||
src/metrics/latency_tracker.cpp
|
||||
src/pipeline/pipeline_runtime.cpp
|
||||
src/protocol/rtmp_output.cpp
|
||||
src/protocol/rtp_publisher.cpp
|
||||
src/encode/encoder_backend.cpp
|
||||
src/encode/ffmpeg_encoder_backend.cpp
|
||||
src/record/protobuf_descriptor.cpp
|
||||
src/record/mcap_record_sink.cpp)
|
||||
src/protocol/rtp_publisher.cpp)
|
||||
|
||||
target_include_directories(cvmmap_streamer_common
|
||||
PUBLIC
|
||||
@@ -132,18 +164,14 @@ target_include_directories(cvmmap_streamer_common
|
||||
|
||||
set(CVMMAP_STREAMER_LINK_DEPS
|
||||
Threads::Threads
|
||||
cvmmap_streamer_foxglove_proto
|
||||
cvmmap_streamer_depth_proto
|
||||
cvmmap_streamer_mcap_runtime
|
||||
cvmmap_streamer_record_support
|
||||
PkgConfig::FFMPEG
|
||||
PkgConfig::ZSTD
|
||||
PkgConfig::LZ4
|
||||
rvl::rvl
|
||||
cvmmap::client
|
||||
CLI11::CLI11
|
||||
tomlplusplus::tomlplusplus
|
||||
mcap::mcap
|
||||
msft_proxy4::proxy)
|
||||
mcap::mcap)
|
||||
|
||||
if (TARGET cppzmq::cppzmq)
|
||||
list(APPEND CVMMAP_STREAMER_LINK_DEPS cppzmq::cppzmq)
|
||||
@@ -193,6 +221,7 @@ add_cvmmap_binary(ipc_snapshot_tester src/testers/ipc_snapshot_tester.cpp)
|
||||
add_cvmmap_binary(mcap_depth_record_tester src/testers/mcap_depth_record_tester.cpp)
|
||||
add_cvmmap_binary(mcap_body_record_tester src/testers/mcap_body_record_tester.cpp)
|
||||
add_cvmmap_binary(mcap_body_inspector src/testers/mcap_body_inspector.cpp)
|
||||
add_cvmmap_binary(mcap_pose_record_tester src/testers/mcap_pose_record_tester.cpp)
|
||||
|
||||
add_executable(mcap_reader_tester src/testers/mcap_reader_tester.cpp)
|
||||
target_include_directories(mcap_reader_tester
|
||||
@@ -247,3 +276,34 @@ endif()
|
||||
set_target_properties(mcap_replay_tester PROPERTIES
|
||||
OUTPUT_NAME "mcap_replay_tester"
|
||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
|
||||
|
||||
add_executable(
|
||||
zed_svo_to_mcap
|
||||
src/tools/zed_svo_to_mcap.cpp
|
||||
src/config/runtime_config.cpp)
|
||||
target_include_directories(zed_svo_to_mcap
|
||||
PRIVATE
|
||||
"${CMAKE_CURRENT_LIST_DIR}/include"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}"
|
||||
${ZED_INCLUDE_DIRS}
|
||||
${CUDA_INCLUDE_DIRS})
|
||||
target_link_directories(zed_svo_to_mcap
|
||||
PRIVATE
|
||||
${ZED_LIBRARY_DIR}
|
||||
${CUDA_LIBRARY_DIRS})
|
||||
target_link_libraries(zed_svo_to_mcap
|
||||
PRIVATE
|
||||
cvmmap_streamer_record_support
|
||||
CLI11::CLI11
|
||||
tomlplusplus::tomlplusplus
|
||||
${ZED_LIBRARIES}
|
||||
${CUDA_CUDA_LIBRARY}
|
||||
${CUDA_CUDART_LIBRARY})
|
||||
if (TARGET spdlog::spdlog)
|
||||
target_link_libraries(zed_svo_to_mcap PRIVATE spdlog::spdlog)
|
||||
elseif (TARGET spdlog)
|
||||
target_link_libraries(zed_svo_to_mcap PRIVATE spdlog)
|
||||
endif()
|
||||
set_target_properties(zed_svo_to_mcap PROPERTIES
|
||||
OUTPUT_NAME "zed_svo_to_mcap"
|
||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
|
||||
|
||||
Reference in New Issue
Block a user