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:
2026-04-12 20:21:33 +08:00
parent 4f016d9cef
commit 213adee887
11 changed files with 2474 additions and 400 deletions
@@ -0,0 +1,36 @@
#pragma once
#include <string>
#include <string_view>
namespace cvmmap_streamer::protocol {
inline std::string streamer_subject_prefix(std::string_view target_key) {
return std::string("cvmmap.") + std::string(target_key) + ".streamer";
}
inline std::string subject_recorder_mp4_start(std::string_view target_key) {
return streamer_subject_prefix(target_key) + ".recorder.mp4.start";
}
inline std::string subject_recorder_mp4_stop(std::string_view target_key) {
return streamer_subject_prefix(target_key) + ".recorder.mp4.stop";
}
inline std::string subject_recorder_mp4_status(std::string_view target_key) {
return streamer_subject_prefix(target_key) + ".recorder.mp4.status";
}
inline std::string subject_recorder_mcap_start(std::string_view target_key) {
return streamer_subject_prefix(target_key) + ".recorder.mcap.start";
}
inline std::string subject_recorder_mcap_stop(std::string_view target_key) {
return streamer_subject_prefix(target_key) + ".recorder.mcap.stop";
}
inline std::string subject_recorder_mcap_status(std::string_view target_key) {
return streamer_subject_prefix(target_key) + ".recorder.mcap.status";
}
} // namespace cvmmap_streamer::protocol