diff --git a/services/screenservice/sinkservice/BUILD.gn b/services/screenservice/sinkservice/BUILD.gn index ffb215f5002d8f5a54efc3258892cf32fe102d62..dfcae38a18855f1adb931ded2cbc1fd0750130df 100644 --- a/services/screenservice/sinkservice/BUILD.gn +++ b/services/screenservice/sinkservice/BUILD.gn @@ -80,6 +80,7 @@ ohos_shared_library("distributed_screen_sink") { "graphic_2d:libgraphic_utils", "graphic_2d:surface", "hisysevent:libhisysevent", + "hitrace:hitrace_meter", "ipc:ipc_core", "safwk:system_ability_fwk", "samgr:samgr_proxy", diff --git a/services/screenservice/sinkservice/screenregionmgr/2.0/src/av_receiver_engine_adapter.cpp b/services/screenservice/sinkservice/screenregionmgr/2.0/src/av_receiver_engine_adapter.cpp index 97ff7bf562b92e789619466bd94acbdfea531c66..cc3b02b08888b6989a2741c3643eae9d5f558f7e 100644 --- a/services/screenservice/sinkservice/screenregionmgr/2.0/src/av_receiver_engine_adapter.cpp +++ b/services/screenservice/sinkservice/screenregionmgr/2.0/src/av_receiver_engine_adapter.cpp @@ -23,6 +23,8 @@ #include "dscreen_log.h" #include "dscreen_util.h" #include "dscreen_hidumper.h" +#include "hitrace_meter.h" +#include "dscreen_hitrace.h" namespace OHOS { namespace DistributedHardware { @@ -61,7 +63,11 @@ int32_t AVTransReceiverAdapter::Release() { DHLOGI("Release enter"); if (receiverEngine_ != nullptr) { + StartTrace(DSCREEN_HITRACE_LABEL, DSCREEN_SINK_CLOSE_SESSION_START); + StartTrace(DSCREEN_HITRACE_LABEL, DSCREEN_SINK_RELEASE_SESSION_START); int32_t ret = receiverEngine_->Release(); + FinishTrace(DSCREEN_HITRACE_LABEL); + FinishTrace(DSCREEN_HITRACE_LABEL); if (ret != DH_AVT_SUCCESS) { DHLOGE("Release av transport receiver engine failed"); } diff --git a/services/screenservice/sourceservice/BUILD.gn b/services/screenservice/sourceservice/BUILD.gn index c34fa2d6e045be2ae5ba0486c08868f03518d0d6..591c741de633190d2921fd4698e48850dc16b0d0 100644 --- a/services/screenservice/sourceservice/BUILD.gn +++ b/services/screenservice/sourceservice/BUILD.gn @@ -87,6 +87,7 @@ ohos_shared_library("distributed_screen_source") { "graphic_2d:libcomposer", "graphic_2d:surface", "hisysevent:libhisysevent", + "hitrace:hitrace_meter", "ipc:ipc_core", "player_framework:media_client", "safwk:system_ability_fwk", diff --git a/services/screenservice/sourceservice/dscreenmgr/2.0/src/av_sender_engine_adapter.cpp b/services/screenservice/sourceservice/dscreenmgr/2.0/src/av_sender_engine_adapter.cpp index c356863fbb051a4c59459f0d13d40149c14905f2..a30fc723ae7319d6eaa32d0f3d18a695fecf196a 100644 --- a/services/screenservice/sourceservice/dscreenmgr/2.0/src/av_sender_engine_adapter.cpp +++ b/services/screenservice/sourceservice/dscreenmgr/2.0/src/av_sender_engine_adapter.cpp @@ -19,6 +19,8 @@ #include "dscreen_log.h" #include "dscreen_util.h" #include "dscreen_hidumper.h" +#include "hitrace_meter.h" +#include "dscreen_hitrace.h" namespace OHOS { namespace DistributedHardware { @@ -46,7 +48,11 @@ int32_t AVTransSenderAdapter::Release() { DHLOGI("Release enter"); if (senderEngine_ != nullptr) { + StartTrace(DSCREEN_HITRACE_LABEL, DSCREEN_SOURCE_CLOSE_SESSION_START); + StartTrace(DSCREEN_HITRACE_LABEL, DSCREEN_SOURCE_RELEASE_SESSION_START); int32_t ret = senderEngine_->Release(); + FinishTrace(DSCREEN_HITRACE_LABEL); + FinishTrace(DSCREEN_HITRACE_LABEL); if (ret != DH_AVT_SUCCESS) { DHLOGE("release av transport sender engine failed"); } @@ -112,7 +118,9 @@ int32_t AVTransSenderAdapter::CreateControlChannel(const std::string& peerDevId) return ERR_DH_AV_TRANS_NULL_VALUE; } std::vector dstDevIds = {peerDevId}; + StartTrace(DSCREEN_HITRACE_LABEL, DSCREEN_SOURCE_OPEN_SESSION_START); int32_t ret = senderEngine_->CreateControlChannel(dstDevIds, ChannelAttribute{TransStrategy::LOW_LATANCY_STRATEGY}); + FinishTrace(DSCREEN_HITRACE_LABEL); if (ret != DH_AVT_SUCCESS) { DHLOGE("create av transport sender channel failed, ret:%" PRId32, ret); return ERR_DH_AV_TRANS_CREATE_CHANNEL_FAILED; @@ -166,7 +174,9 @@ int32_t AVTransSenderAdapter::PushData(const VideoData &video) DscreenHidumper::GetInstance().SetTransReDumpFlagFalse(); } #endif + StartTrace(DSCREEN_HITRACE_LABEL, DSCREEN_START_ENCODER_START); int32_t ret = senderEngine_->PushData(transBuffer); + FinishTrace(DSCREEN_HITRACE_LABEL); if (ret != DH_AVT_SUCCESS) { DHLOGE("feed data to av transport sender failed, ret:%" PRId32, ret); return ERR_DH_AV_TRANS_FEED_DATA_FAILED;