diff --git a/cmvr-es/devices/camera/hikvision_camera/src/hikvision_camera.cpp b/cmvr-es/devices/camera/hikvision_camera/src/hikvision_camera.cpp index 47f86078..ea61e493 100644 --- a/cmvr-es/devices/camera/hikvision_camera/src/hikvision_camera.cpp +++ b/cmvr-es/devices/camera/hikvision_camera/src/hikvision_camera.cpp @@ -261,6 +261,7 @@ HikvisionCamera::HikvisionCamera(const config::HikvisionCameraConfig& camera) height_ = camera_.height(); buffer_size_ = camera_.buffer_size() > 0 ? static_cast(camera_.buffer_size()) : 30; codec_ = camera_.codec().empty() ? "H264" : camera_.codec(); + state_.codec = codec_; sdk_path_ = normalizeSdkPath( camera_.sdk_path().empty() ? defaultRuntimeSdkPath() : camera_.sdk_path()); // Keep the shared_ptr itself immutable after construction. Readers and the diff --git a/cmvr-es/devices/camera/mujoco_camera/src/mujoco_camera.cpp b/cmvr-es/devices/camera/mujoco_camera/src/mujoco_camera.cpp index a540531f..101b395e 100644 --- a/cmvr-es/devices/camera/mujoco_camera/src/mujoco_camera.cpp +++ b/cmvr-es/devices/camera/mujoco_camera/src/mujoco_camera.cpp @@ -50,6 +50,7 @@ MujocoCamera::MujocoCamera(config::MujocoCameraConfig config) encode_width_ = positiveOrDefault(encoder.width(), width_); encode_height_ = positiveOrDefault(encoder.height(), height_); codec_ = encoder.codec().empty() ? "H264" : encoder.codec(); + state_.codec = codec_; enable_stream_timestamp_ = encoder.enable_stream_timestamp(); consume_new_frame_only_ = config_.consume_new_frame_only(); } diff --git a/cmvr-es/devices/camera/realsense_camera/src/realsense_camera.cpp b/cmvr-es/devices/camera/realsense_camera/src/realsense_camera.cpp index e9effae3..8b3e3f2d 100644 --- a/cmvr-es/devices/camera/realsense_camera/src/realsense_camera.cpp +++ b/cmvr-es/devices/camera/realsense_camera/src/realsense_camera.cpp @@ -132,6 +132,7 @@ RealsenseCamera::RealsenseCamera(const config::RealSenseCameraConfig& camera):ca } codec_ = encoder.codec().empty() ? "H264" : encoder.codec(); + state_.codec = codec_; } RealsenseCamera::~RealsenseCamera() { diff --git a/cmvr-es/devices/camera/uvc_camera/src/uvc_camera.cpp b/cmvr-es/devices/camera/uvc_camera/src/uvc_camera.cpp index 2105d234..29ccdcab 100644 --- a/cmvr-es/devices/camera/uvc_camera/src/uvc_camera.cpp +++ b/cmvr-es/devices/camera/uvc_camera/src/uvc_camera.cpp @@ -153,6 +153,7 @@ UVCCamera::UVCCamera(const config::UVCCameraConfig& camera):camera_(camera) } codec_ = encoder.codec().empty() ? "H264" : encoder.codec(); + state_.codec = codec_; } UVCCamera::~UVCCamera() { stop(); diff --git a/cmvr-es/devices/state_define.h b/cmvr-es/devices/state_define.h index 8906347d..74edab90 100644 --- a/cmvr-es/devices/state_define.h +++ b/cmvr-es/devices/state_define.h @@ -122,6 +122,7 @@ namespace cmvr::device{ int fps; int width; int height; + std::string codec; ///< 当前配置或正在使用的视频编码器 }; /// @brief 从 XML 或其他配置中读取的相机网络参数 diff --git a/cmvr-es/service/grpc/src/grpc_camera_service.cpp b/cmvr-es/service/grpc/src/grpc_camera_service.cpp index d209fe13..8563a3bc 100644 --- a/cmvr-es/service/grpc/src/grpc_camera_service.cpp +++ b/cmvr-es/service/grpc/src/grpc_camera_service.cpp @@ -132,6 +132,7 @@ grpc::Status gRPCCameraServiceImpl::GetStatus(grpc::ServerContext* context, response->mutable_state()->set_fps(state.fps); response->mutable_state()->set_width(state.width); response->mutable_state()->set_height(state.height); + response->mutable_state()->set_codec(state.codec); return grpc::Status::OK; } catch(const exception &e) { diff --git a/protos/cmvr/api/camera_command.proto b/protos/cmvr/api/camera_command.proto index 7305955a..280d4d0e 100644 --- a/protos/cmvr/api/camera_command.proto +++ b/protos/cmvr/api/camera_command.proto @@ -48,6 +48,7 @@ message CameraState { int32 fps = 7; int32 width = 8; int32 height = 9; + string codec = 10; } message GetCameraStateCommand {