From 7abe59a85b4d3637575567ecb8ab6afb93a5cc02 Mon Sep 17 00:00:00 2001 From: c00657214 Date: Wed, 6 Nov 2024 15:03:33 +0800 Subject: [PATCH 1/2] optimize xcol timeout thrd Signed-off-by: c00657214 --- .../audioadapter/src/pulse_audio_service_adapter_impl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/native/audioadapter/src/pulse_audio_service_adapter_impl.cpp b/frameworks/native/audioadapter/src/pulse_audio_service_adapter_impl.cpp index 1165fe3b58..6ddadd7c78 100644 --- a/frameworks/native/audioadapter/src/pulse_audio_service_adapter_impl.cpp +++ b/frameworks/native/audioadapter/src/pulse_audio_service_adapter_impl.cpp @@ -44,7 +44,7 @@ namespace AudioStandard { static unique_ptr g_audioServiceAdapterCallback; SafeMap PulseAudioServiceAdapterImpl::sourceIndexSessionIDMap; -static const int32_t PA_SERVICE_IMPL_TIMEOUT = 5; // 5s +static const int32_t PA_SERVICE_IMPL_TIMEOUT = 10; // 10s is better static const unordered_map STREAM_TYPE_STRING_ENUM_MAP = { {"voice_call", STREAM_VOICE_CALL}, {"voice_call_assistant", STREAM_VOICE_CALL_ASSISTANT}, -- Gitee From df5519025346bd178cb6d982e652c3025d1b2d2b Mon Sep 17 00:00:00 2001 From: c00657214 Date: Wed, 6 Nov 2024 15:08:44 +0800 Subject: [PATCH 2/2] optimize xcol position Signed-off-by: c00657214 --- .../src/pulse_audio_service_adapter_impl.cpp | 41 +++++++++---------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/frameworks/native/audioadapter/src/pulse_audio_service_adapter_impl.cpp b/frameworks/native/audioadapter/src/pulse_audio_service_adapter_impl.cpp index 6ddadd7c78..838e3d6d37 100644 --- a/frameworks/native/audioadapter/src/pulse_audio_service_adapter_impl.cpp +++ b/frameworks/native/audioadapter/src/pulse_audio_service_adapter_impl.cpp @@ -255,7 +255,10 @@ int32_t PulseAudioServiceAdapterImpl::SuspendAudioDevice(string &audioPortName, bool PulseAudioServiceAdapterImpl::SetSinkMute(const std::string &sinkName, bool isMute, bool isSync) { AUDIO_DEBUG_LOG("MuteAudioDevice: [%{public}s] : [%{public}d]", sinkName.c_str(), isMute); - + AudioXCollie audioXCollie("PulseAudioServiceAdapterImpl::SetSinkMute", PA_SERVICE_IMPL_TIMEOUT, + [](void *) { + AUDIO_ERR_LOG("SetSinkMute timeout"); + }, nullptr, AUDIO_XCOLLIE_FLAG_LOG | AUDIO_XCOLLIE_FLAG_RECOVERY); unique_ptr userData = make_unique(); userData->thiz = this; @@ -280,10 +283,6 @@ bool PulseAudioServiceAdapterImpl::SetSinkMute(const std::string &sinkName, bool if (isSync) { while (pa_operation_get_state(operation) == PA_OPERATION_RUNNING) { - AudioXCollie audioXCollie("PulseAudioServiceAdapterImpl::SetSinkMute", PA_SERVICE_IMPL_TIMEOUT, - [](void *) { - AUDIO_ERR_LOG("SetSinkMute timeout"); - }, nullptr, AUDIO_XCOLLIE_FLAG_LOG | AUDIO_XCOLLIE_FLAG_RECOVERY); pa_threaded_mainloop_wait(mMainLoop); } } @@ -435,6 +434,10 @@ int32_t PulseAudioServiceAdapterImpl::SetLocalDefaultSink(std::string name) int32_t PulseAudioServiceAdapterImpl::MoveSinkInputByIndexOrName(uint32_t sinkInputId, uint32_t sinkIndex, std::string sinkName) { + AudioXCollie audioXCollie("PulseAudioServiceAdapterImpl::MoveSinkInputByIndexOrName", PA_SERVICE_IMPL_TIMEOUT, + [](void *) { + AUDIO_ERR_LOG("MoveSinkInputByIndexOrName timeout"); + }, nullptr, AUDIO_XCOLLIE_FLAG_LOG | AUDIO_XCOLLIE_FLAG_RECOVERY); lock_guard lock(lock_); Trace trace("PulseAudioServiceAdapterImpl::MoveSinkInputByIndexOrName:id:" + std::to_string(sinkInputId) + +":index:" + std::to_string(sinkIndex) + ":name:" + sinkName); @@ -458,10 +461,6 @@ int32_t PulseAudioServiceAdapterImpl::MoveSinkInputByIndexOrName(uint32_t sinkIn return ERROR; } while (pa_operation_get_state(operation) == PA_OPERATION_RUNNING) { - AudioXCollie audioXCollie("PulseAudioServiceAdapterImpl::MoveSinkInputByIndexOrName", PA_SERVICE_IMPL_TIMEOUT, - [](void *) { - AUDIO_ERR_LOG("MoveSinkInputByIndexOrName timeout"); - }, nullptr, AUDIO_XCOLLIE_FLAG_LOG | AUDIO_XCOLLIE_FLAG_RECOVERY); pa_threaded_mainloop_wait(mMainLoop); } pa_operation_unref(operation); @@ -475,6 +474,10 @@ int32_t PulseAudioServiceAdapterImpl::MoveSinkInputByIndexOrName(uint32_t sinkIn int32_t PulseAudioServiceAdapterImpl::MoveSourceOutputByIndexOrName(uint32_t sourceOutputId, uint32_t sourceIndex, std::string sourceName) { + AudioXCollie audioXCollie("PulseAudioServiceAdapterImpl::MoveSourceOutputByIndexOrName", + PA_SERVICE_IMPL_TIMEOUT, [](void *) { + AUDIO_ERR_LOG("MoveSourceOutputByIndexOrName timeout"); + }, nullptr, AUDIO_XCOLLIE_FLAG_LOG | AUDIO_XCOLLIE_FLAG_RECOVERY); lock_guard lock(lock_); Trace trace("PulseAudioServiceAdapterImpl::MoveSourceOutputByIndexOrName:id:" + std::to_string(sourceOutputId) + +":index:" + std::to_string(sourceIndex) + ":name:" + sourceName); @@ -501,10 +504,6 @@ int32_t PulseAudioServiceAdapterImpl::MoveSourceOutputByIndexOrName(uint32_t sou return ERROR; } while (pa_operation_get_state(operation) == PA_OPERATION_RUNNING) { - AudioXCollie audioXCollie("PulseAudioServiceAdapterImpl::MoveSourceOutputByIndexOrName", - PA_SERVICE_IMPL_TIMEOUT, [](void *) { - AUDIO_ERR_LOG("MoveSourceOutputByIndexOrName timeout"); - }, nullptr, AUDIO_XCOLLIE_FLAG_LOG | AUDIO_XCOLLIE_FLAG_RECOVERY); pa_threaded_mainloop_wait(mMainLoop); } pa_operation_unref(operation); @@ -554,6 +553,10 @@ vector PulseAudioServiceAdapterImpl::GetAllSinkInputs() userData->thiz = this; userData->sinkInfos = GetAllSinks(); + AudioXCollie audioXCollie("PulseAudioServiceAdapterImpl::GetAllSinkInputs", PA_SERVICE_IMPL_TIMEOUT, + [](void *) { + AUDIO_ERR_LOG("GetAllSinkInputs timeout"); + }, nullptr, AUDIO_XCOLLIE_FLAG_LOG | AUDIO_XCOLLIE_FLAG_RECOVERY); lock_guard lock(lock_); CHECK_AND_RETURN_RET_LOG(mContext != nullptr, userData->sinkInputList, "mContext is nullptr"); @@ -568,10 +571,6 @@ vector PulseAudioServiceAdapterImpl::GetAllSinkInputs() } while (pa_operation_get_state(operation) == PA_OPERATION_RUNNING) { - AudioXCollie audioXCollie("PulseAudioServiceAdapterImpl::GetAllSinkInputs", PA_SERVICE_IMPL_TIMEOUT, - [](void *) { - AUDIO_ERR_LOG("GetAllSinkInputs timeout"); - }, nullptr, AUDIO_XCOLLIE_FLAG_LOG | AUDIO_XCOLLIE_FLAG_RECOVERY); pa_threaded_mainloop_wait(mMainLoop); } @@ -583,6 +582,10 @@ vector PulseAudioServiceAdapterImpl::GetAllSinkInputs() vector PulseAudioServiceAdapterImpl::GetAllSourceOutputs() { + AudioXCollie audioXCollie("PulseAudioServiceAdapterImpl::GetAllSourceOutputs", PA_SERVICE_IMPL_TIMEOUT, + [](void *) { + AUDIO_ERR_LOG("GetAllSourceOutputs timeout"); + }, nullptr, AUDIO_XCOLLIE_FLAG_LOG | AUDIO_XCOLLIE_FLAG_RECOVERY); lock_guard lock(lock_); Trace trace("PulseAudioServiceAdapterImpl::GetAllSourceOutputs"); @@ -603,10 +606,6 @@ vector PulseAudioServiceAdapterImpl::GetAllSourceOutputs() } while (pa_operation_get_state(operation) == PA_OPERATION_RUNNING) { - AudioXCollie audioXCollie("PulseAudioServiceAdapterImpl::GetAllSourceOutputs", PA_SERVICE_IMPL_TIMEOUT, - [](void *) { - AUDIO_ERR_LOG("GetAllSourceOutputs timeout"); - }, nullptr, AUDIO_XCOLLIE_FLAG_LOG | AUDIO_XCOLLIE_FLAG_RECOVERY); pa_threaded_mainloop_wait(mMainLoop); } -- Gitee