From 51dbfe86537a33fe5939f8a130cb4495ea44f225 Mon Sep 17 00:00:00 2001 From: zhanhang Date: Wed, 26 Jun 2024 10:06:18 +0800 Subject: [PATCH] Fix the offline path bug in distributed scenarios Signed-off-by: zhanhang --- .../server/src/service/audio_policy_service.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/services/audio_policy/server/src/service/audio_policy_service.cpp b/services/audio_policy/server/src/service/audio_policy_service.cpp index c193e92704..5f940bfa94 100644 --- a/services/audio_policy/server/src/service/audio_policy_service.cpp +++ b/services/audio_policy/server/src/service/audio_policy_service.cpp @@ -804,7 +804,11 @@ void AudioPolicyService::OffloadStreamReleaseCheck(uint32_t sessionId) bool AudioPolicyService::CheckActiveOutputDeviceSupportOffload() { - DeviceType dev = GetActiveOutputDevice(); + DeviceType dev = currentActiveDevice_.deviceType_; + if (currentActiveDevice_.networkId_ != LOCAL_NETWORK_ID || dev == DEVICE_TYPE_REMOTE_CAST) { + return false; + } + return dev == DEVICE_TYPE_SPEAKER || (dev == DEVICE_TYPE_BLUETOOTH_A2DP && a2dpOffloadFlag_ == A2DP_OFFLOAD) || (dev == DEVICE_TYPE_USB_HEADSET && !isArmUsbDevice_); } @@ -5944,6 +5948,11 @@ int32_t AudioPolicyService::UnloadOffloadModule() bool AudioPolicyService::CheckStreamMultichannelMode(int64_t activateSessionId, AudioStreamType streamType) { + if (currentActiveDevice_.networkId_ != LOCAL_NETWORK_ID || + currentActiveDevice_.deviceType_ == DEVICE_TYPE_REMOTE_CAST) { + return false; + } + // Multi-channel mode only when the number of channels is greater than 2. int32_t channelCount = GetChannelCount(activateSessionId); if (channelCount < AudioChannel::CHANNEL_3) { -- Gitee