From a1e5029f02f5b8af1099aa5cca987dbb5512bfb1 Mon Sep 17 00:00:00 2001 From: zhuzhihui7 Date: Wed, 5 Mar 2025 18:39:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E5=B8=83=E5=BC=8F=E7=9B=B8=E6=9C=BA?= =?UTF-8?q?=E4=BA=92=E8=81=94=E9=9B=B7=E8=BE=BE=E8=A1=A5=E5=85=85=E7=82=B9?= =?UTF-8?q?=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhuzhihui7 --- .../constants/distributed_camera_constants.h | 1 + common/include/utils/dcamera_radar.h | 10 +-- .../common/utils/dcamera_radar_test.cpp | 84 +++++++++++++++++++ .../src/dcamera_source_handler.cpp | 1 + .../distributed_camera_sink_stub.cpp | 1 - .../dcamera_sink_controller.cpp | 2 +- .../distributed_camera_source_stub.cpp | 1 - .../dcamera_source_dev.cpp | 3 +- .../dcamera_source_controller.cpp | 7 ++ .../encoder/encode_data_process.cpp | 2 - 10 files changed, 101 insertions(+), 11 deletions(-) diff --git a/common/include/constants/distributed_camera_constants.h b/common/include/constants/distributed_camera_constants.h index 6ecdd4c9..d0db30a6 100644 --- a/common/include/constants/distributed_camera_constants.h +++ b/common/include/constants/distributed_camera_constants.h @@ -171,6 +171,7 @@ const std::string AFTER_ENCODE = "SinkAfterEncode.h265"; const std::string BEFORE_DECODE = "SourceBeforeDecode.h265"; const std::string CAMERA_HICOLLIE = "CameraHicollie"; const std::string SEPARATE_SINK_VERSION = "2.0"; +const std::string START_CAPTURE_SUCC = "operator start capture success"; } // namespace DistributedHardware } // namespace OHOS #endif // OHOS_DISTRIBUTED_CAMERA_CONSTANTS_H \ No newline at end of file diff --git a/common/include/utils/dcamera_radar.h b/common/include/utils/dcamera_radar.h index 16ab3a64..36ad1eb5 100644 --- a/common/include/utils/dcamera_radar.h +++ b/common/include/utils/dcamera_radar.h @@ -62,16 +62,16 @@ enum class BizState : int32_t { enum class CameraInit : int32_t { SERVICE_INIT = 1, SOURCE_CAMERA_INIT = 2, - SINK_CAMERA_INIT = 3, - LOAD_HDF_DRIVER = 4, + LOAD_HDF_DRIVER = 3, }; enum class CameraOpen : int32_t { OPEN_CAMERA = 1, OPEN_CHANNEL = 2, - START_CAPTURE = 3, - INIT_DECODE = 4, - INIT_ENCODE = 5, + CONFIG_STREAMS = 3, + OPEN_DATA_CHANNEL = 4, + INIT_DECODE = 5, + START_CAPTURE = 6, }; enum class CameraClose : int32_t { diff --git a/common/test/unittest/common/utils/dcamera_radar_test.cpp b/common/test/unittest/common/utils/dcamera_radar_test.cpp index dfcb4d5e..b4076ab6 100644 --- a/common/test/unittest/common/utils/dcamera_radar_test.cpp +++ b/common/test/unittest/common/utils/dcamera_radar_test.cpp @@ -80,6 +80,34 @@ HWTEST_F(DcameraRadarTest, ReportDcameraInit_002, TestSize.Level1) DHLOGI("DcameraRadarTest ReportDcameraInit_002 end"); } +/** + * @tc.name: ReportDcameraInitProgress_001 + * @tc.desc: check ReportDcameraInitProgress + * @tc.type: FUNC + */ +HWTEST_F(DcameraRadarTest, ReportDcameraInitProgress_001, TestSize.Level1) +{ + DHLOGI("DcameraRadarTest ReportDcameraInitProgress_001 begin"); + bool ret = DcameraRadar::GetInstance().ReportDcameraInitProgress(FUNC, CameraInit::SERVICE_INIT, + DCAMERA_OK); + EXPECT_EQ(ret, true); + DHLOGI("DcameraRadarTest ReportDcameraInitProgress_001 end"); +} + +/** + * @tc.name: ReportDcameraInitProgress_002 + * @tc.desc: check ReportDcameraInitProgress + * @tc.type: FUNC + */ +HWTEST_F(DcameraRadarTest, ReportDcameraInitProgress_002, TestSize.Level1) +{ + DHLOGI("DcameraRadarTest ReportDcameraInitProgress_002 begin"); + bool ret = DcameraRadar::GetInstance().ReportDcameraInitProgress(FUNC, CameraInit::SERVICE_INIT, + DCAMERA_MEMORY_OPT_ERROR); + EXPECT_EQ(ret, true); + DHLOGI("DcameraRadarTest ReportDcameraInitProgress_002 end"); +} + /** * @tc.name: ReportDcameraOpen_001 * @tc.desc: check ReportDcameraOpen @@ -107,6 +135,34 @@ HWTEST_F(DcameraRadarTest, ReportDcameraOpen_002, TestSize.Level1) DHLOGI("DcameraRadarTest ReportDcameraOpen_002 end"); } +/** + * @tc.name: ReportDcameraOpenProgress_001 + * @tc.desc: check ReportDcameraOpenProgress + * @tc.type: FUNC + */ +HWTEST_F(DcameraRadarTest, ReportDcameraOpenProgress_001, TestSize.Level1) +{ + DHLOGI("DcameraRadarTest ReportDcameraOpenProgress_001 begin"); + bool ret = DcameraRadar::GetInstance().ReportDcameraOpenProgress(FUNC, CameraOpen::OPEN_CHANNEL, + DCAMERA_OK); + EXPECT_EQ(ret, true); + DHLOGI("DcameraRadarTest ReportDcameraOpenProgress_001 end"); +} + +/** + * @tc.name: ReportDcameraOpenProgress_002 + * @tc.desc: check ReportDcameraOpenProgress + * @tc.type: FUNC + */ +HWTEST_F(DcameraRadarTest, ReportDcameraOpenProgress_002, TestSize.Level1) +{ + DHLOGI("DcameraRadarTest ReportDcameraOpenProgress_002 begin"); + bool ret = DcameraRadar::GetInstance().ReportDcameraOpenProgress(FUNC, CameraOpen::OPEN_CHANNEL, + DCAMERA_MEMORY_OPT_ERROR); + EXPECT_EQ(ret, true); + DHLOGI("DcameraRadarTest ReportDcameraOpenProgress_002 end"); +} + /** * @tc.name: ReportDcameraClose_001 * @tc.desc: check ReportDcameraClose @@ -134,6 +190,34 @@ HWTEST_F(DcameraRadarTest, ReportDcameraClose_002, TestSize.Level1) DHLOGI("DcameraRadarTest ReportDcameraClose_002 end"); } +/** + * @tc.name: ReportDcameraCloseProgress_001 + * @tc.desc: check ReportDcameraCloseProgress + * @tc.type: FUNC + */ +HWTEST_F(DcameraRadarTest, ReportDcameraCloseProgress_001, TestSize.Level1) +{ + DHLOGI("DcameraRadarTest ReportDcameraCloseProgress_001 begin"); + bool ret = DcameraRadar::GetInstance().ReportDcameraCloseProgress(FUNC, CameraClose::RELEASE_STREAM, + DCAMERA_OK); + EXPECT_EQ(ret, true); + DHLOGI("DcameraRadarTest ReportDcameraCloseProgress_001 end"); +} + +/** + * @tc.name: ReportDcameraCloseProgress_002 + * @tc.desc: check ReportDcameraCloseProgress + * @tc.type: FUNC + */ +HWTEST_F(DcameraRadarTest, ReportDcameraCloseProgress_002, TestSize.Level1) +{ + DHLOGI("DcameraRadarTest ReportDcameraCloseProgress_002 begin"); + bool ret = DcameraRadar::GetInstance().ReportDcameraCloseProgress(FUNC, CameraClose::RELEASE_STREAM, + DCAMERA_MEMORY_OPT_ERROR); + EXPECT_EQ(ret, true); + DHLOGI("DcameraRadarTest ReportDcameraCloseProgress_002 end"); +} + /** * @tc.name: ReportDcameraUnInit_001 * @tc.desc: check ReportDcameraUnInit diff --git a/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_handler.cpp b/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_handler.cpp index ca8014dd..8051b277 100644 --- a/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_handler.cpp +++ b/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_handler.cpp @@ -90,6 +90,7 @@ void DCameraSourceHandler::FinishStartSA(const std::string ¶ms) return; } + DcameraRadar::GetInstance().ReportDcameraInitProgress("InitSource", CameraInit::SOURCE_CAMERA_INIT, DCAMERA_OK); dCameraSourceSrv->InitSource(params, callback_); std::lock_guard lock(producerMutex_); state_ = DCAMERA_SA_STATE_START; diff --git a/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_stub.cpp b/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_stub.cpp index f0eb5113..130942f6 100644 --- a/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_stub.cpp +++ b/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_stub.cpp @@ -132,7 +132,6 @@ int32_t DistributedCameraSinkStub::InitSinkInner(MessageParcel &data, MessagePar sptr dCameraSinkCallbackProxy(new DCameraSinkCallbackProxy(remoteObject)); ret = InitSink(params, dCameraSinkCallbackProxy); - DcameraRadar::GetInstance().ReportDcameraInitProgress("InitSink", CameraInit::SINK_CAMERA_INIT, ret); } while (0); reply.WriteInt32(ret); return DCAMERA_OK; diff --git a/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_controller.cpp b/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_controller.cpp index 6ac21696..5bed607c 100644 --- a/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_controller.cpp +++ b/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_controller.cpp @@ -648,7 +648,7 @@ int32_t DCameraSinkController::StartCaptureInner(std::vectorConfigStreams(streamInfos); + DcameraRadar::GetInstance().ReportDcameraOpenProgress("ConfigStreams", CameraOpen::CONFIG_STREAMS, ret); if (ret != DCAMERA_OK) { DHLOGE("DCameraSourceDev Execute ConfigStreams ConfigStreams failed, ret: %{public}d, devId: %{public}s dhId: " "%{public}s", ret, GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); @@ -585,6 +586,7 @@ int32_t DCameraSourceDev::ConfigStreams(std::vector actualDevInfo; actualDevInfo.assign(actualDevInfo_.begin(), actualDevInfo_.end()); ret = input_->OpenChannel(actualDevInfo); + DcameraRadar::GetInstance().ReportDcameraOpenProgress("intput->OpenChannel", CameraOpen::OPEN_DATA_CHANNEL, ret); if (ret != DCAMERA_OK) { DHLOGE("DCameraSourceDev ChannelNeg OpenChannel failed ret: %{public}d, devId: %{public}s, dhId: %{public}s", ret, GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); @@ -626,7 +628,6 @@ int32_t DCameraSourceDev::StartCapture(std::vectorStartCapture(captureInfos); - DcameraRadar::GetInstance().ReportDcameraOpenProgress("StartCapture", CameraOpen::START_CAPTURE, ret); if (ret != DCAMERA_OK) { DHLOGE("DCameraSourceDev input StartCapture failed ret: %{public}d, devId: %{public}s, dhId: %{public}s", ret, GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcameracontrol/dcamera_source_controller.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcameracontrol/dcamera_source_controller.cpp index f6b615c5..f482d766 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcameracontrol/dcamera_source_controller.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcameracontrol/dcamera_source_controller.cpp @@ -27,6 +27,7 @@ #include "dcamera_hitrace_adapter.h" #include "dcamera_metadata_setting_cmd.h" #include "dcamera_protocol.h" +#include "dcamera_radar.h" #include "dcamera_softbus_latency.h" #include "dcamera_source_controller_channel_listener.h" #include "dcamera_source_service_ipc.h" @@ -204,6 +205,12 @@ int32_t DCameraSourceController::ChannelNeg(std::shared_ptr& int32_t DCameraSourceController::DCameraNotify(std::shared_ptr& events) { + if (events->eventResult_ == DCAMERA_EVENT_CAMERA_SUCCESS && + events->eventContent_ == START_CAPTURE_SUCC) { + DcameraRadar::GetInstance().ReportDcameraOpen("StartCapture", CameraOpen::START_CAPTURE, + BizState::BIZ_STATE_END, DCAMERA_OK); + } + if (events->eventResult_ == DCAMERA_EVENT_CAMERA_ERROR) { DcameraFinishAsyncTrace(DCAMERA_CONTINUE_FIRST_FRAME, DCAMERA_CONTINUE_FIRST_FRAME_TASKID); DcameraFinishAsyncTrace(DCAMERA_SNAPSHOT_FIRST_FRAME, DCAMERA_SNAPSHOT_FIRST_FRAME_TASKID); diff --git a/services/data_process/src/pipeline_node/multimedia_codec/encoder/encode_data_process.cpp b/services/data_process/src/pipeline_node/multimedia_codec/encoder/encode_data_process.cpp index d309f082..88428ece 100644 --- a/services/data_process/src/pipeline_node/multimedia_codec/encoder/encode_data_process.cpp +++ b/services/data_process/src/pipeline_node/multimedia_codec/encoder/encode_data_process.cpp @@ -79,8 +79,6 @@ int32_t EncodeDataProcess::InitNode(const VideoConfigParams& sourceConfig, const } int32_t err = InitEncoder(); - DcameraRadar::GetInstance().ReportDcameraOpen("InitEncoder", CameraOpen::INIT_ENCODE, - BizState::BIZ_STATE_END, err); if (err != DCAMERA_OK) { DHLOGE("Init video encoder failed."); ReleaseProcessNode(); -- Gitee