From 3842c9487e400368b5b605aae4b7844f353586ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=8B=E5=BF=97=E5=BA=86?= Date: Tue, 26 Aug 2025 10:34:14 +0800 Subject: [PATCH 1/2] proAudio bugfix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 蒋志庆 --- .../manager/include/hpae_policy_manager.h | 6 ++++++ .../test/unittest/manager/hpae_manager_test.cpp | 12 ++++++++++++ .../server/src/hpae_adapter_manager.cpp | 9 ++++----- .../unittest/capturer_in_server_second_unit_test.cpp | 2 +- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/services/audio_engine/manager/include/hpae_policy_manager.h b/services/audio_engine/manager/include/hpae_policy_manager.h index aaaf3f6b66..8a3d742363 100644 --- a/services/audio_engine/manager/include/hpae_policy_manager.h +++ b/services/audio_engine/manager/include/hpae_policy_manager.h @@ -25,6 +25,12 @@ namespace HPAE { class HpaePolicyManager { public: + HpaePolicyManager(const HpaePolicyManager&) = delete; + HpaePolicyManager &operator=(const HpaePolicyManager&) = delete; + + HpaePolicyManager(HpaePolicyManager&&) = delete; + HpaePolicyManager &operator=(HpaePolicyManager&&) = delete; + static HpaePolicyManager &GetInstance(); ~HpaePolicyManager(); // interfaces for render effect diff --git a/services/audio_engine/test/unittest/manager/hpae_manager_test.cpp b/services/audio_engine/test/unittest/manager/hpae_manager_test.cpp index 414e89f86e..3ff19f3fae 100644 --- a/services/audio_engine/test/unittest/manager/hpae_manager_test.cpp +++ b/services/audio_engine/test/unittest/manager/hpae_manager_test.cpp @@ -335,11 +335,13 @@ HWTEST_F(HpaeManagerUnitTest, IHpaeRenderStreamManagerTest002, TestSize.Level1) hpaeManager_->Pause(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSED); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_PAUSED); hpaeManager_->Stop(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPED); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_STOPPED); hpaeManager_->Release(streamInfo.streamClassType, streamInfo.sessionId); @@ -387,11 +389,13 @@ HWTEST_F(HpaeManagerUnitTest, IHpaeRenderStreamManagerTest003, TestSize.Level1) hpaeManager_->Pause(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSED); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_PAUSED); hpaeManager_->Stop(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPED); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_STOPPED); hpaeManager_->Release(streamInfo.streamClassType, streamInfo.sessionId); @@ -440,10 +444,12 @@ HWTEST_F(HpaeManagerUnitTest, IHpaeRenderStreamManagerTest004, TestSize.Level1) hpaeManager_->Pause(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSED); hpaeManager_->Stop(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPED); hpaeManager_->Release(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); @@ -493,12 +499,14 @@ HWTEST_F(HpaeManagerUnitTest, IHpaeRenderStreamManagerMoveTest001, TestSize.Leve hpaeManager_->Pause(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSED); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_PAUSED); hpaeManager_->MoveSinkInputByIndexOrName(streamInfo.sessionId, 1, "Speaker_File1"); hpaeManager_->Stop(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPED); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_STOPPED); hpaeManager_->MoveSinkInputByIndexOrName(streamInfo.sessionId, 0, "Speaker_File"); @@ -679,10 +687,12 @@ HWTEST_F(HpaeManagerUnitTest, IHpaeCaptureStreamManagerTest002, TestSize.Level1) hpaeManager_->Pause(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSED); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_PAUSED); hpaeManager_->Stop(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPED); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_STOPPED); hpaeManager_->Release(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); @@ -780,12 +790,14 @@ HWTEST_F(HpaeManagerUnitTest, IHpaeCaptureStreamManagerMoveTest001, TestSize.Lev hpaeManager_->Pause(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSED); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_PAUSED); hpaeManager_->MoveSourceOutputByIndexOrName(streamInfo.sessionId, 1, "mic1"); hpaeManager_->Stop(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPED); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_STOPPED); hpaeManager_->MoveSourceOutputByIndexOrName(streamInfo.sessionId, 0, "mic"); diff --git a/services/audio_service/server/src/hpae_adapter_manager.cpp b/services/audio_service/server/src/hpae_adapter_manager.cpp index 891e3cb855..caf5d2db59 100644 --- a/services/audio_service/server/src/hpae_adapter_manager.cpp +++ b/services/audio_service/server/src/hpae_adapter_manager.cpp @@ -97,6 +97,10 @@ int32_t HpaeAdapterManager::ReleaseRender(uint32_t streamIndex) std::shared_ptr currentRender = rendererStreamMap_[streamIndex]; rendererStreamMap_[streamIndex] = nullptr; rendererStreamMap_.erase(streamIndex); + AUDIO_INFO_LOG("rendererStreamMap_.size() : %{public}zu", rendererStreamMap_.size()); + if (rendererStreamMap_.size() == 0) { + AUDIO_INFO_LOG("Release the last stream"); + } lock.unlock(); if (currentRender->Release() < 0) { @@ -104,11 +108,6 @@ int32_t HpaeAdapterManager::ReleaseRender(uint32_t streamIndex) return ERR_OPERATION_FAILED; } - AUDIO_INFO_LOG("rendererStreamMap_.size() : %{public}zu", rendererStreamMap_.size()); - if (rendererStreamMap_.size() == 0) { - AUDIO_INFO_LOG("Release the last stream"); - } - if (isHighResolutionExist_ && highResolutionIndex_ == streamIndex) { isHighResolutionExist_ = false; } diff --git a/services/audio_service/test/unittest/capturer_in_server_second_unit_test.cpp b/services/audio_service/test/unittest/capturer_in_server_second_unit_test.cpp index 02349dfbae..37a4c02456 100644 --- a/services/audio_service/test/unittest/capturer_in_server_second_unit_test.cpp +++ b/services/audio_service/test/unittest/capturer_in_server_second_unit_test.cpp @@ -697,7 +697,7 @@ HWTEST_F(CapturerInServerSecondUnitTest, CapturerInServerSecondUnitTest_038, Tes capturerInServer_->isMicIndicatorOn_ = true; ret = capturerInServer_->TurnOffMicIndicator(capturerState); - EXPECT_EQ(false, ret); + EXPECT_EQ(ret, true); } /** -- Gitee From e98c233c511f17a22b2059c3502fb44d76b33295 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=8B=E5=BF=97=E5=BA=86?= Date: Tue, 26 Aug 2025 15:40:22 +0800 Subject: [PATCH 2/2] proAudio bugfix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 蒋志庆 --- .../test/unittest/manager/hpae_manager_test.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/services/audio_engine/test/unittest/manager/hpae_manager_test.cpp b/services/audio_engine/test/unittest/manager/hpae_manager_test.cpp index 3ff19f3fae..35a2a6fe0b 100644 --- a/services/audio_engine/test/unittest/manager/hpae_manager_test.cpp +++ b/services/audio_engine/test/unittest/manager/hpae_manager_test.cpp @@ -499,14 +499,14 @@ HWTEST_F(HpaeManagerUnitTest, IHpaeRenderStreamManagerMoveTest001, TestSize.Leve hpaeManager_->Pause(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); - EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSED); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSING); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_PAUSED); hpaeManager_->MoveSinkInputByIndexOrName(streamInfo.sessionId, 1, "Speaker_File1"); hpaeManager_->Stop(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); - EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPED); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPING); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_STOPPED); hpaeManager_->MoveSinkInputByIndexOrName(streamInfo.sessionId, 0, "Speaker_File"); @@ -687,12 +687,12 @@ HWTEST_F(HpaeManagerUnitTest, IHpaeCaptureStreamManagerTest002, TestSize.Level1) hpaeManager_->Pause(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); - EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSED); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSING); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_PAUSED); hpaeManager_->Stop(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); - EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPED); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPING); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_STOPPED); hpaeManager_->Release(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); @@ -790,14 +790,14 @@ HWTEST_F(HpaeManagerUnitTest, IHpaeCaptureStreamManagerMoveTest001, TestSize.Lev hpaeManager_->Pause(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); - EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSED); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSING); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_PAUSED); hpaeManager_->MoveSourceOutputByIndexOrName(streamInfo.sessionId, 1, "mic1"); hpaeManager_->Stop(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); - EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPED); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPING); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_STOPPED); hpaeManager_->MoveSourceOutputByIndexOrName(streamInfo.sessionId, 0, "mic"); -- Gitee