From 55fbce59b65dcd260dddfa3bc29fc7ea2f97a9ef Mon Sep 17 00:00:00 2001 From: byndyx Date: Wed, 20 Dec 2023 16:23:37 +0800 Subject: [PATCH] rewrite hitrace Signed-off-by: byndyx --- common/dfx_utils/include/daudio_hitrace.h | 51 +++++-------------- common/dfx_utils/src/daudio_hitrace.cpp | 35 +++++++++++-- common/dfx_utils/test/unittest/BUILD.gn | 1 - .../audio_sink/src/daudio_sink_handler.cpp | 1 - .../src/daudio_source_handler.cpp | 3 -- .../audiohdiproxy/src/daudio_hdi_handler.cpp | 1 - .../managersource/src/daudio_source_dev.cpp | 5 +- services/audiomanager/servicesink/BUILD.gn | 1 - services/audiomanager/servicesource/BUILD.gn | 1 - .../test/unittest/managersink/BUILD.gn | 2 - .../test/unittest/servicesource/BUILD.gn | 1 - .../test/unittest/sourcedevice/BUILD.gn | 1 - .../test/unittest/sourcemanager/BUILD.gn | 1 - .../src/audio_decoder_processor.cpp | 3 -- .../src/audio_encoder_processor.cpp | 3 -- .../src/audio_data_channel.cpp | 5 -- 16 files changed, 44 insertions(+), 71 deletions(-) diff --git a/common/dfx_utils/include/daudio_hitrace.h b/common/dfx_utils/include/daudio_hitrace.h index 88d90b4e..fc06c61b 100644 --- a/common/dfx_utils/include/daudio_hitrace.h +++ b/common/dfx_utils/include/daudio_hitrace.h @@ -18,50 +18,23 @@ #include +#include "daudio_log.h" #include "hitrace_meter.h" -#define DAUDIO_SYNC_TRACE(value) HITRACE_METER_NAME(DAUDIO_HITRACE_LABEL, value) - namespace OHOS { namespace DistributedHardware { -constexpr uint64_t DAUDIO_HITRACE_LABEL = HITRACE_TAG_DISTRIBUTED_AUDIO; - -const std::string DAUDIO_LOAD_HDF_DRIVER = "DAUDIO_LOAD_HDF_DRIVER"; -const std::string DAUDIO_SOURCE_LOAD_SYSTEM_ABILITY = "DAUDIO_SOURCE_LOAD_SYSTEM_ABILITY"; -const std::string DAUDIO_SINK_LOAD_SYSTEM_ABILITY = "DAUDIO_SINK_LOAD_SYSTEM_ABILITY"; -const std::string DAUDIO_REGISTER_AUDIO = "DAUDIO_REGISTER_AUDIO"; -const std::string DAUDIO_UNREGISTER_AUDIO = "DAUDIO_UNREGISTER_AUDIO"; -const std::string DAUDIO_ENABLE_SPK = "DAUDIO_ENABLE_SPK"; -const std::string DAUDIO_DISABLE_SPK = "DAUDIO_DISABLE_SPK"; -const std::string DAUDIO_ENABLE_MIC = "DAUDIO_ENABLE_MIC"; -const std::string DAUDIO_DISABLE_MIC = "DAUDIO_DISABLE_MIC"; - -const std::string DAUDIO_CREATE_DATA_SESSION = "DAUDIO_CREATE_DATA_SESSION"; -const std::string DAUDIO_RELEASE_DATA_SESSION = "DAUDIO_RELEASE_DATA_SESSION"; -const std::string DAUDIO_OPEN_DATA_SESSION = "DAUDIO_OPEN_DATA_SESSION"; -const std::string DAUDIO_CLOSE_DATA_SESSION = "DAUDIO_CLOSE_DATA_SESSION"; - -const std::string DAUDIO_CREATE_CTRL_SESSION = "DAUDIO_CREATE_CTRL_SESSION"; -const std::string DAUDIO_RELEASE_CTRL_SESSION = "DAUDIO_RELEASE_CTRL_SESSION"; -const std::string DAUDIO_OPEN_CTRL_SESSION = "DAUDIO_OPEN_CTRL_SESSION"; -const std::string DAUDIO_CLOSE_CTRL_SESSION = "DAUDIO_CLOSE_CTRL_SESSION"; - -const std::string DAUDIO_START_ENCODER_PROCESSOR = "DAUDIO_START_ENCODER_PROCESSOR"; -const std::string DAUDIO_STOP_ENCODER_PROCESSOR = "DAUDIO_STOP_ENCODER_PROCESSOR"; -const std::string DAUDIO_RELEASE_ENCODER_PROCESSOR = "DAUDIO_RELEASE_ENCODER_PROCESSOR"; -const std::string DAUDIO_START_DECODER_PROCESSOR = "DAUDIO_START_DECODER_PROCESSOR"; -const std::string DAUDIO_STOP_DECODER_PROCESSOR = "DAUDIO_STOP_DECODER_PROCESSOR"; -const std::string DAUDIO_RELEASE_DECODER_PROCESSOR = "DAUDIO_RELEASE_DECODER_PROCESSOR"; - -enum DaudioTaskId : int32_t { - DAUDIO_REGISTER_AUDIO_TASKID = 0, - DAUDIO_UNREGISTER_AUDIO_TASKID = 1, - DAUDIO_OPEN_DATA_SESSION_TASKID = 2, - DAUDIO_OPEN_CTRL_SESSION_TASKID = 3, +class DAudioHitrace { +public: + static void Count(const std::string &value, int64_t count, bool isEnable = true); + DAudioHitrace(const std::string &value, bool isShowLog = false, bool isEnable = true); + void End(); + ~DAudioHitrace(); +private: + std::string value_; + bool isShowLog_; + bool isEnable_; + bool isFinished_; }; - -void DaudioStartAsyncTrace(const std::string& str, int32_t taskId); -void DaudioFinishAsyncTrace(const std::string& str, int32_t taskId); } // namespace DistributedHardware } // namespace OHOS #endif // OHOS_DAUDIO_HITRACE_H diff --git a/common/dfx_utils/src/daudio_hitrace.cpp b/common/dfx_utils/src/daudio_hitrace.cpp index 41ac5477..99ae986c 100644 --- a/common/dfx_utils/src/daudio_hitrace.cpp +++ b/common/dfx_utils/src/daudio_hitrace.cpp @@ -15,16 +15,43 @@ #include "daudio_hitrace.h" +#undef DH_LOG_TAG +#define DH_LOG_TAG "DAudioHitrace" + namespace OHOS { namespace DistributedHardware { -void DaudioStartAsyncTrace(const std::string& str, int32_t taskId) +void DAudioHitrace::Count(const std::string &value, int64_t count, bool isEnable) +{ + CountTraceDebug(isEnable, HITRACE_TAG_ZAUDIO, value, count); +} + +DAudioHitrace::DAudioHitrace(const std::string &value, bool isShowLog, bool isEnable) +{ + value_ = value; + isShowLog_ = isShowLog; + isEnable_ = isEnable; + isFinished_ = false; + if (isShowLog) { + isShowLog_ = true; + DHLOGI("%{public}s start.", value_.c_str()); + } + StartTraceDebug(isEnable_, HITRACE_TAG_ZAUDIO, value); +} + +void DAudioHitrace::End() { - StartAsyncTrace(DAUDIO_HITRACE_LABEL, str, taskId); + if (!isFinished_) { + FinishTraceDebug(isEnable_, HITRACE_TAG_ZAUDIO); + isFinished_ = true; + if (isShowLog_) { + DHLOGI("%{public}s end.", value_.c_str()); + } + } } -void DaudioFinishAsyncTrace(const std::string& str, int32_t taskId) +DAudioHitrace::~DAudioHitrace() { - FinishAsyncTrace(DAUDIO_HITRACE_LABEL, str, taskId); + End(); } } // namespace DistributedHardware } // namespace OHOS \ No newline at end of file diff --git a/common/dfx_utils/test/unittest/BUILD.gn b/common/dfx_utils/test/unittest/BUILD.gn index a9d5dfde..e995bfcf 100644 --- a/common/dfx_utils/test/unittest/BUILD.gn +++ b/common/dfx_utils/test/unittest/BUILD.gn @@ -80,7 +80,6 @@ ohos_unittest("DAudioDfxTest") { external_deps = [ "audio_framework:audio_capturer", "c_utils:utils", - "drivers_interface_audio:libaudio_proxy_1.0", "dsoftbus:softbus_client", "hisysevent:libhisysevent", "hitrace:hitrace_meter", diff --git a/interfaces/inner_kits/native_cpp/audio_sink/src/daudio_sink_handler.cpp b/interfaces/inner_kits/native_cpp/audio_sink/src/daudio_sink_handler.cpp index c34559ff..c495bf3e 100644 --- a/interfaces/inner_kits/native_cpp/audio_sink/src/daudio_sink_handler.cpp +++ b/interfaces/inner_kits/native_cpp/audio_sink/src/daudio_sink_handler.cpp @@ -48,7 +48,6 @@ DAudioSinkHandler::~DAudioSinkHandler() int32_t DAudioSinkHandler::InitSink(const std::string ¶ms) { DHLOGI("Init sink handler."); - DAUDIO_SYNC_TRACE(DAUDIO_SOURCE_LOAD_SYSTEM_ABILITY); if (dAudioSinkProxy_ == nullptr) { sptr samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); if (samgr == nullptr) { diff --git a/interfaces/inner_kits/native_cpp/audio_source/src/daudio_source_handler.cpp b/interfaces/inner_kits/native_cpp/audio_source/src/daudio_source_handler.cpp index 292128e7..750855e1 100644 --- a/interfaces/inner_kits/native_cpp/audio_source/src/daudio_source_handler.cpp +++ b/interfaces/inner_kits/native_cpp/audio_source/src/daudio_source_handler.cpp @@ -52,7 +52,6 @@ DAudioSourceHandler::~DAudioSourceHandler() int32_t DAudioSourceHandler::InitSource(const std::string ¶ms) { DHLOGI("Init source handler."); - DAUDIO_SYNC_TRACE(DAUDIO_SOURCE_LOAD_SYSTEM_ABILITY); if (dAudioSourceProxy_ == nullptr) { sptr samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); if (samgr == nullptr) { @@ -115,7 +114,6 @@ int32_t DAudioSourceHandler::RegisterDistributedHardware(const std::string &devI return ERR_DH_AUDIO_SA_DEVID_ILLEGAL; } - DaudioStartAsyncTrace(DAUDIO_REGISTER_AUDIO, DAUDIO_REGISTER_AUDIO_TASKID); std::string reqId = GetRandomID(); dAudioIpcCallback_->PushRegisterCallback(reqId, callback); return dAudioSourceProxy_->RegisterDistributedHardware(devId, dhId, param, reqId); @@ -138,7 +136,6 @@ int32_t DAudioSourceHandler::UnregisterDistributedHardware(const std::string &de return ERR_DH_AUDIO_SA_DEVID_ILLEGAL; } - DaudioStartAsyncTrace(DAUDIO_UNREGISTER_AUDIO, DAUDIO_UNREGISTER_AUDIO_TASKID); std::string reqId = GetRandomID(); dAudioIpcCallback_->PushUnregisterCallback(reqId, callback); return dAudioSourceProxy_->UnregisterDistributedHardware(devId, dhId, reqId); diff --git a/services/audiohdiproxy/src/daudio_hdi_handler.cpp b/services/audiohdiproxy/src/daudio_hdi_handler.cpp index 3c6a4f45..8aeba250 100644 --- a/services/audiohdiproxy/src/daudio_hdi_handler.cpp +++ b/services/audiohdiproxy/src/daudio_hdi_handler.cpp @@ -55,7 +55,6 @@ int32_t DAudioHdiHandler::InitHdiHandler() return DH_SUCCESS; } - DAUDIO_SYNC_TRACE(DAUDIO_LOAD_HDF_DRIVER); DHLOGD("Load hdf driver start."); int32_t ret = DaudioHdfOperate::GetInstance().LoadDaudioHDFImpl(); if (ret != DH_SUCCESS) { diff --git a/services/audiomanager/managersource/src/daudio_source_dev.cpp b/services/audiomanager/managersource/src/daudio_source_dev.cpp index 8822d51d..c9dd1d67 100644 --- a/services/audiomanager/managersource/src/daudio_source_dev.cpp +++ b/services/audiomanager/managersource/src/daudio_source_dev.cpp @@ -607,7 +607,6 @@ int32_t DAudioSourceDev::EnableDSpeaker(const int32_t dhId, const std::string &a DHLOGI("The speaker device is already enabled."); return DH_SUCCESS; } - DAUDIO_SYNC_TRACE(DAUDIO_ENABLE_SPK); auto speaker = std::make_shared(devId_, shared_from_this()); if (speaker->EnableDevice(dhId, attrs) != DH_SUCCESS) { DHLOGI("Failed to enable speaker device."); @@ -624,7 +623,6 @@ int32_t DAudioSourceDev::EnableDMic(const int32_t dhId, const std::string &attrs DHLOGI("The mic device is already enabled."); return DH_SUCCESS; } - DAUDIO_SYNC_TRACE(DAUDIO_ENABLE_MIC); auto mic = std::make_shared(devId_, shared_from_this()); if (mic->EnableDevice(dhId, attrs) != DH_SUCCESS) { DHLOGI("Failed to enable mic device."); @@ -693,7 +691,6 @@ int32_t DAudioSourceDev::DisableDSpeaker(const int32_t dhId) DHLOGE("Speaker device is null."); return ERR_DH_AUDIO_NULLPTR; } - DAUDIO_SYNC_TRACE(DAUDIO_DISABLE_SPK); return ioDev->DisableDevice(dhId); } @@ -709,7 +706,6 @@ int32_t DAudioSourceDev::DisableDMic(const int32_t dhId) DHLOGE("Mic device is null."); return ERR_DH_AUDIO_NULLPTR; } - DAUDIO_SYNC_TRACE(DAUDIO_DISABLE_MIC); return ioDev->DisableDevice(dhId); } @@ -735,6 +731,7 @@ void DAudioSourceDev::OnDisableTaskResult(int32_t resultCode, const std::string int32_t DAudioSourceDev::TaskOpenDSpeaker(const std::string &args) { + DAudioHitrace trace("DAudioSourceDev::TaskOpenDSpeaker"); DHLOGI("Task open speaker args: %s.", args.c_str()); if (args.length() > DAUDIO_MAX_JSON_LEN || args.empty()) { DHLOGE("args length error. 0 or max."); diff --git a/services/audiomanager/servicesink/BUILD.gn b/services/audiomanager/servicesink/BUILD.gn index 1fbb8415..5479a558 100755 --- a/services/audiomanager/servicesink/BUILD.gn +++ b/services/audiomanager/servicesink/BUILD.gn @@ -99,7 +99,6 @@ ohos_shared_library("distributed_audio_sink") { "distributed_hardware_fwk:distributed_av_receiver", "distributed_hardware_fwk:distributed_av_sender", "distributed_hardware_fwk:libdhfwk_sdk", - "drivers_interface_audio:libaudio_proxy_1.0", "dsoftbus:softbus_client", "eventhandler:libeventhandler", "hdf_core:libhdf_ipc_adapter", diff --git a/services/audiomanager/servicesource/BUILD.gn b/services/audiomanager/servicesource/BUILD.gn index ef24912c..1e980b81 100755 --- a/services/audiomanager/servicesource/BUILD.gn +++ b/services/audiomanager/servicesource/BUILD.gn @@ -106,7 +106,6 @@ ohos_shared_library("distributed_audio_source") { "c_utils:utils", "distributed_hardware_fwk:distributed_av_receiver", "distributed_hardware_fwk:distributed_av_sender", - "drivers_interface_audio:libaudio_proxy_1.0", "drivers_interface_distributed_audio:libdaudioext_proxy_1.0", "dsoftbus:softbus_client", "eventhandler:libeventhandler", diff --git a/services/audiomanager/test/unittest/managersink/BUILD.gn b/services/audiomanager/test/unittest/managersink/BUILD.gn index 042c318b..cee640d6 100644 --- a/services/audiomanager/test/unittest/managersink/BUILD.gn +++ b/services/audiomanager/test/unittest/managersink/BUILD.gn @@ -89,7 +89,6 @@ ohos_unittest("DaudioSinkDevTest") { "device_security_level:dslm_sdk", "distributed_hardware_fwk:distributed_av_receiver", "distributed_hardware_fwk:distributed_av_sender", - "drivers_interface_audio:libaudio_proxy_1.0", "hdf_core:libhdf_ipc_adapter", "hdf_core:libhdf_utils", "hdf_core:libhdi", @@ -124,7 +123,6 @@ ohos_unittest("DAudioSinkManagerTest") { "device_security_level:dslm_sdk", "distributed_hardware_fwk:distributed_av_receiver", "distributed_hardware_fwk:distributed_av_sender", - "drivers_interface_audio:libaudio_proxy_1.0", "hdf_core:libhdf_ipc_adapter", "hdf_core:libhdf_utils", "hdf_core:libhdi", diff --git a/services/audiomanager/test/unittest/servicesource/BUILD.gn b/services/audiomanager/test/unittest/servicesource/BUILD.gn index a451284d..d44f2a24 100644 --- a/services/audiomanager/test/unittest/servicesource/BUILD.gn +++ b/services/audiomanager/test/unittest/servicesource/BUILD.gn @@ -93,7 +93,6 @@ ohos_unittest("DaudioSourceServiceTest") { "audio_framework:audio_client", "audio_framework:audio_renderer", "c_utils:utils", - "drivers_interface_audio:libaudio_proxy_1.0", "dsoftbus:softbus_client", "hisysevent:libhisysevent", "hitrace:hitrace_meter", diff --git a/services/audiomanager/test/unittest/sourcedevice/BUILD.gn b/services/audiomanager/test/unittest/sourcedevice/BUILD.gn index 471bd430..4d9c3209 100644 --- a/services/audiomanager/test/unittest/sourcedevice/BUILD.gn +++ b/services/audiomanager/test/unittest/sourcedevice/BUILD.gn @@ -81,7 +81,6 @@ ohos_unittest("DaudioSourceDevTest") { "c_utils:utils", "distributed_hardware_fwk:distributed_av_receiver", "distributed_hardware_fwk:distributed_av_sender", - "drivers_interface_audio:libaudio_proxy_1.0", "drivers_interface_distributed_audio:libdaudioext_proxy_1.0", "dsoftbus:softbus_client", "ipc:ipc_core", diff --git a/services/audiomanager/test/unittest/sourcemanager/BUILD.gn b/services/audiomanager/test/unittest/sourcemanager/BUILD.gn index c5d37879..2be60f1f 100644 --- a/services/audiomanager/test/unittest/sourcemanager/BUILD.gn +++ b/services/audiomanager/test/unittest/sourcemanager/BUILD.gn @@ -78,7 +78,6 @@ ohos_unittest("DaudioSourceMgrTest") { "c_utils:utils", "distributed_hardware_fwk:distributed_av_receiver", "distributed_hardware_fwk:distributed_av_sender", - "drivers_interface_audio:libaudio_proxy_1.0", "drivers_interface_distributed_audio:libdaudioext_proxy_1.0", "dsoftbus:softbus_client", "eventhandler:libeventhandler", diff --git a/services/audioprocessor/decodeprocessor/src/audio_decoder_processor.cpp b/services/audioprocessor/decodeprocessor/src/audio_decoder_processor.cpp index 11ffdbe4..449eb541 100644 --- a/services/audioprocessor/decodeprocessor/src/audio_decoder_processor.cpp +++ b/services/audioprocessor/decodeprocessor/src/audio_decoder_processor.cpp @@ -66,7 +66,6 @@ int32_t AudioDecoderProcessor::ReleaseAudioProcessor() return DH_SUCCESS; } - DAUDIO_SYNC_TRACE(DAUDIO_RELEASE_DECODER_PROCESSOR); int32_t ret = audioDecoder_->ReleaseAudioCodec(); if (ret != DH_SUCCESS) { DHLOGE("Release decoder fail. Error code: %d.", ret); @@ -86,7 +85,6 @@ int32_t AudioDecoderProcessor::StartAudioProcessor() return ERR_DH_AUDIO_BAD_VALUE; } - DAUDIO_SYNC_TRACE(DAUDIO_START_DECODER_PROCESSOR); int32_t ret = audioDecoder_->StartAudioCodec(); if (ret != DH_SUCCESS) { DHLOGE("Start decoder fail. Error code: %d.", ret); @@ -109,7 +107,6 @@ int32_t AudioDecoderProcessor::StopAudioProcessor() return ERR_DH_AUDIO_BAD_VALUE; } - DAUDIO_SYNC_TRACE(DAUDIO_STOP_DECODER_PROCESSOR); int32_t ret = audioDecoder_->StopAudioCodec(); if (ret != DH_SUCCESS) { DHLOGE("Stop decoder fail. Error code: %d.", ret); diff --git a/services/audioprocessor/encodeprocessor/src/audio_encoder_processor.cpp b/services/audioprocessor/encodeprocessor/src/audio_encoder_processor.cpp index d3473b05..27b55e42 100644 --- a/services/audioprocessor/encodeprocessor/src/audio_encoder_processor.cpp +++ b/services/audioprocessor/encodeprocessor/src/audio_encoder_processor.cpp @@ -65,7 +65,6 @@ int32_t AudioEncoderProcessor::ReleaseAudioProcessor() return DH_SUCCESS; } - DAUDIO_SYNC_TRACE(DAUDIO_RELEASE_ENCODER_PROCESSOR); int32_t ret = audioEncoder_->ReleaseAudioCodec(); if (ret != DH_SUCCESS) { DHLOGE("Release encoder fail. Error code: %d.", ret); @@ -85,7 +84,6 @@ int32_t AudioEncoderProcessor::StartAudioProcessor() return ERR_DH_AUDIO_BAD_VALUE; } - DAUDIO_SYNC_TRACE(DAUDIO_START_ENCODER_PROCESSOR); int32_t ret = audioEncoder_->StartAudioCodec(); if (ret != DH_SUCCESS) { DHLOGE("Start encoder fail. Error code: %d.", ret); @@ -107,7 +105,6 @@ int32_t AudioEncoderProcessor::StopAudioProcessor() return DH_SUCCESS; } - DAUDIO_SYNC_TRACE(DAUDIO_STOP_ENCODER_PROCESSOR); int32_t ret = audioEncoder_->StopAudioCodec(); if (ret != DH_SUCCESS) { DHLOGE("Stop encoder fail. Error code: %d.", ret); diff --git a/services/audiotransport/audiochannel/audiodatachannel/src/audio_data_channel.cpp b/services/audiotransport/audiochannel/audiodatachannel/src/audio_data_channel.cpp index 0d524d4b..eff7a2bd 100644 --- a/services/audiotransport/audiochannel/audiodatachannel/src/audio_data_channel.cpp +++ b/services/audiotransport/audiochannel/audiodatachannel/src/audio_data_channel.cpp @@ -33,7 +33,6 @@ int32_t AudioDataChannel::CreateSession(const std::shared_ptrOnSessionOpened(); sessionId_ = sessionId; - DaudioFinishAsyncTrace(DAUDIO_OPEN_DATA_SESSION, DAUDIO_OPEN_DATA_SESSION_TASKID); } void AudioDataChannel::OnSessionClosed(int32_t sessionId) -- Gitee