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:
@@ -0,0 +1,88 @@
|
||||
syntax = "proto3";
|
||||
package cvmmap_streamer.proto;
|
||||
option cc_enable_arenas = true;
|
||||
|
||||
enum RpcCode {
|
||||
RPC_CODE_OK = 0;
|
||||
RPC_CODE_INVALID_REQUEST = 1;
|
||||
RPC_CODE_UNSUPPORTED = 2;
|
||||
RPC_CODE_BUSY = 3;
|
||||
RPC_CODE_INTERNAL = 4;
|
||||
}
|
||||
|
||||
message Mp4RecorderState {
|
||||
bool can_record = 1;
|
||||
bool is_recording = 2;
|
||||
bool last_frame_ok = 3;
|
||||
uint32 frames_ingested = 4;
|
||||
uint32 frames_encoded = 5;
|
||||
string active_path = 6;
|
||||
string error_message = 7;
|
||||
}
|
||||
|
||||
message Mp4StartRequest {
|
||||
string output_path = 1;
|
||||
}
|
||||
|
||||
message Mp4StartResponse {
|
||||
RpcCode code = 1;
|
||||
string error_message = 2;
|
||||
Mp4RecorderState state = 3;
|
||||
}
|
||||
|
||||
message Mp4StopRequest {}
|
||||
|
||||
message Mp4StopResponse {
|
||||
RpcCode code = 1;
|
||||
string error_message = 2;
|
||||
Mp4RecorderState state = 3;
|
||||
}
|
||||
|
||||
message Mp4StatusRequest {}
|
||||
|
||||
message Mp4StatusResponse {
|
||||
RpcCode code = 1;
|
||||
string error_message = 2;
|
||||
Mp4RecorderState state = 3;
|
||||
}
|
||||
|
||||
message McapRecorderState {
|
||||
bool can_record = 1;
|
||||
bool is_recording = 2;
|
||||
bool last_frame_ok = 3;
|
||||
uint32 frames_ingested = 4;
|
||||
uint32 frames_encoded = 5;
|
||||
string active_path = 6;
|
||||
string error_message = 7;
|
||||
}
|
||||
|
||||
message McapStartRequest {
|
||||
string output_path = 1;
|
||||
optional string compression = 2;
|
||||
optional string topic = 3;
|
||||
optional string depth_topic = 4;
|
||||
optional string body_topic = 5;
|
||||
optional string frame_id = 6;
|
||||
}
|
||||
|
||||
message McapStartResponse {
|
||||
RpcCode code = 1;
|
||||
string error_message = 2;
|
||||
McapRecorderState state = 3;
|
||||
}
|
||||
|
||||
message McapStopRequest {}
|
||||
|
||||
message McapStopResponse {
|
||||
RpcCode code = 1;
|
||||
string error_message = 2;
|
||||
McapRecorderState state = 3;
|
||||
}
|
||||
|
||||
message McapStatusRequest {}
|
||||
|
||||
message McapStatusResponse {
|
||||
RpcCode code = 1;
|
||||
string error_message = 2;
|
||||
McapRecorderState state = 3;
|
||||
}
|
||||
Reference in New Issue
Block a user