diff --git a/protos/camera/camera.proto b/protos/camera/camera.proto index 79ad9a2f..f99925ee 100644 --- a/protos/camera/camera.proto +++ b/protos/camera/camera.proto @@ -190,7 +190,7 @@ message ModeResponse { message SubscribeVideoStreamInfoRequest {} message VideoStreamInfoResponse { - VideoStreamInfo video_stream_info = 1; // Video stream info + repeated VideoStreamInfo video_stream_infos = 1; // Video stream infos } message SubscribeCaptureInfoRequest {} diff --git a/protos/camera_server/camera_server.proto b/protos/camera_server/camera_server.proto index a8283dcd..507c0d8f 100644 --- a/protos/camera_server/camera_server.proto +++ b/protos/camera_server/camera_server.proto @@ -88,7 +88,7 @@ message SetInformationResponse { } message SetVideoStreamingRequest { - VideoStreaming video_streaming = 1; // information about the video stream + repeated VideoStreamInfo video_stream_infos = 1; // Video stream infos } message SetVideoStreamingResponse { @@ -249,10 +249,36 @@ message Information { string definition_file_uri = 11; // Camera definition URI (http or mavlink ftp) } -// Type to represent video streaming settings -message VideoStreaming { - bool has_rtsp_server = 1; // True if the capture was successful - string rtsp_uri = 2; // RTSP URI (e.g. rtsp://192.168.1.42:8554/live) +// Type for video stream settings. +message VideoStreamSettings { + float frame_rate_hz = 1; // Frames per second + uint32 horizontal_resolution_pix = 2; // Horizontal resolution (in pixels) + uint32 vertical_resolution_pix = 3; // Vertical resolution (in pixels) + uint32 bit_rate_b_s = 4; // Bit rate (in bits per second) + uint32 rotation_deg = 5; // Video image rotation (clockwise, 0-359 degrees) + string uri = 6; // Video stream URI + float horizontal_fov_deg = 7; // Horizontal fov in degrees +} + +// Information about the video stream. +message VideoStreamInfo { + // Video stream status type. + enum VideoStreamStatus { + VIDEO_STREAM_STATUS_NOT_RUNNING = 0; // Video stream is not running + VIDEO_STREAM_STATUS_IN_PROGRESS = 1; // Video stream is running + } + + // Video stream light spectrum type + enum VideoStreamSpectrum { + VIDEO_STREAM_SPECTRUM_UNKNOWN = 0; // Unknown + VIDEO_STREAM_SPECTRUM_VISIBLE_LIGHT = 1; // Visible light + VIDEO_STREAM_SPECTRUM_INFRARED = 2; // Infrared + } + + int32 stream_id = 1; // stream unique id + VideoStreamSettings settings = 2; // Video stream settings + VideoStreamStatus status = 3; // Current status of video streaming + VideoStreamSpectrum spectrum = 4; // Light-spectrum of the video stream } // Position type in global coordinates.