From 83075178fa14efc827cc24a9aa56863b6e966efc Mon Sep 17 00:00:00 2001 From: seveno0 Date: Wed, 10 Sep 2025 14:41:47 +0800 Subject: [PATCH] remote offload add mutex Signed-off-by: seveno0 --- .../sink/remote_offload_audio_render_sink.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/frameworks/native/hdiadapter_new/sink/remote_offload_audio_render_sink.cpp b/frameworks/native/hdiadapter_new/sink/remote_offload_audio_render_sink.cpp index daf723be94..f2869788a4 100644 --- a/frameworks/native/hdiadapter_new/sink/remote_offload_audio_render_sink.cpp +++ b/frameworks/native/hdiadapter_new/sink/remote_offload_audio_render_sink.cpp @@ -326,6 +326,7 @@ std::string RemoteOffloadAudioRenderSink::GetAudioParameter(const AudioParamKey int32_t RemoteOffloadAudioRenderSink::SetVolume(float left, float right) { + std::lock_guard lock(sinkMutex_); std::lock_guard lock(switchDeviceMutex_); Trace trace("RemoteOffloadAudioRenderSink::SetVolume"); @@ -657,6 +658,7 @@ void RemoteOffloadAudioRenderSink::SetAudioBalanceValue(float audioBalance) int32_t RemoteOffloadAudioRenderSink::SetSinkMuteForSwitchDevice(bool mute) { + std::lock_guard lock(sinkMutex_); std::lock_guard lock(switchDeviceMutex_); AUDIO_INFO_LOG("set offload mute %{public}d", mute); @@ -763,6 +765,7 @@ int32_t RemoteOffloadAudioRenderSink::UpdateAppsUid(const std::vector & int32_t RemoteOffloadAudioRenderSink::Drain(AudioDrainType type) { Trace trace("RemoteOffloadAudioRenderSink::Drain"); + std::lock_guard lock(sinkMutex_); CHECK_AND_RETURN_RET_LOG(audioRender_ != nullptr, ERR_INVALID_HANDLE, "render is nullptr"); auto drainType = static_cast(type); int32_t ret = audioRender_->DrainBuffer(drainType); @@ -779,6 +782,8 @@ void RemoteOffloadAudioRenderSink::RegistOffloadHdiCallback(std::function lock(sinkMutex_); + CHECK_AND_RETURN_RET_LOG(audioRender_ != nullptr, ERR_INVALID_HANDLE, "render is nullptr"); int32_t ret = audioRender_->RegCallback(hdiCallback_.callback_, (int8_t)0); if (ret != SUCCESS) { AUDIO_WARNING_LOG("fail, error code: %{public}d", ret); @@ -788,6 +793,7 @@ void RemoteOffloadAudioRenderSink::RegistOffloadHdiCallback(std::function lock(sinkMutex_); CHECK_AND_RETURN_RET_LOG(audioRender_ != nullptr, ERR_INVALID_HANDLE, "render is nullptr"); CHECK_AND_RETURN_RET_LOG(!isFlushing_.load(), ERR_OPERATION_FAILED, "during flushing"); -- Gitee