From 577757aadf736aa0a72ebb202f556f2e35b1c9a7 Mon Sep 17 00:00:00 2001 From: l00944055 Date: Fri, 12 Sep 2025 15:49:28 +0800 Subject: [PATCH 1/3] framelen Signed-off-by: l00944055 --- .../manager/src/hpae_capturer_manager.cpp | 2 +- .../src/hpae_inner_capturer_manager.cpp | 2 +- .../src/hpae_offload_renderer_manager.cpp | 2 +- .../manager/src/hpae_renderer_manager.cpp | 2 +- .../node/include/hpae_node_common.h | 3 +- .../node/src/hpae_node_common.cpp | 20 ------- .../manager/hpae_capturer_manager_test.cpp | 22 -------- .../manager/hpae_inner_capturer_unit_test.cpp | 20 ------- .../manager/hpae_render_manager_test.cpp | 56 ------------------- 9 files changed, 5 insertions(+), 124 deletions(-) diff --git a/services/audio_engine/manager/src/hpae_capturer_manager.cpp b/services/audio_engine/manager/src/hpae_capturer_manager.cpp index ad55a933b0..89c20ee0b2 100644 --- a/services/audio_engine/manager/src/hpae_capturer_manager.cpp +++ b/services/audio_engine/manager/src/hpae_capturer_manager.cpp @@ -193,7 +193,7 @@ int32_t HpaeCapturerManager::CreateStream(const HpaeStreamInfo &streamInfo) AUDIO_ERR_LOG("HpaeCapturerManager is not init"); return ERR_INVALID_OPERATION; } - int32_t checkRet = CheckSourceAndStreamInfo(streamInfo, sourceInfo_); + int32_t checkRet = CheckStreamInfo(streamInfo); if (checkRet != SUCCESS) { return checkRet; } diff --git a/services/audio_engine/manager/src/hpae_inner_capturer_manager.cpp b/services/audio_engine/manager/src/hpae_inner_capturer_manager.cpp index 0cc2e96dfe..866f900d56 100644 --- a/services/audio_engine/manager/src/hpae_inner_capturer_manager.cpp +++ b/services/audio_engine/manager/src/hpae_inner_capturer_manager.cpp @@ -180,7 +180,7 @@ int32_t HpaeInnerCapturerManager::CreateStream(const HpaeStreamInfo &streamInfo) AUDIO_INFO_LOG("CreateStream not init"); return ERR_INVALID_OPERATION; } - int32_t checkRet = CheckStreamInfo(streamInfo, sinkInfo_); + int32_t checkRet = CheckStreamInfo(streamInfo); if (checkRet != SUCCESS) { return checkRet; } diff --git a/services/audio_engine/manager/src/hpae_offload_renderer_manager.cpp b/services/audio_engine/manager/src/hpae_offload_renderer_manager.cpp index eb78f3f874..71da491d0c 100644 --- a/services/audio_engine/manager/src/hpae_offload_renderer_manager.cpp +++ b/services/audio_engine/manager/src/hpae_offload_renderer_manager.cpp @@ -118,7 +118,7 @@ int32_t HpaeOffloadRendererManager::CreateStream(const HpaeStreamInfo &streamInf if (!IsInit()) { return ERR_INVALID_OPERATION; } - int32_t checkRet = CheckStreamInfo(streamInfo, sinkInfo_); + int32_t checkRet = CheckStreamInfo(streamInfo); if (checkRet != SUCCESS) { return checkRet; } diff --git a/services/audio_engine/manager/src/hpae_renderer_manager.cpp b/services/audio_engine/manager/src/hpae_renderer_manager.cpp index 53a15c7d77..50fdd72e94 100644 --- a/services/audio_engine/manager/src/hpae_renderer_manager.cpp +++ b/services/audio_engine/manager/src/hpae_renderer_manager.cpp @@ -305,7 +305,7 @@ int32_t HpaeRendererManager::CreateStream(const HpaeStreamInfo &streamInfo) if (!IsInit()) { return ERR_INVALID_OPERATION; } - int32_t checkRet = CheckStreamInfo(streamInfo, sinkInfo_); + int32_t checkRet = CheckStreamInfo(streamInfo); if (checkRet != SUCCESS) { return checkRet; } diff --git a/services/audio_engine/node/include/hpae_node_common.h b/services/audio_engine/node/include/hpae_node_common.h index 2639af1253..f02e3e809c 100644 --- a/services/audio_engine/node/include/hpae_node_common.h +++ b/services/audio_engine/node/include/hpae_node_common.h @@ -47,9 +47,8 @@ AudioPipeType ConvertDeviceClassToPipe(const std::string &deviceClass); void TransNodeInfoForCollaboration(HpaeNodeInfo &nodeInfo, bool isCollaborationEnabled); void RecoverNodeInfoForCollaboration(HpaeNodeInfo &nodeInfo); int32_t CheckFramelen(const HpaeSinkInfo &sinkInfo); -int32_t CheckStreamInfo(const HpaeStreamInfo &streamInfo, const HpaeSinkInfo &sinkInfo); +int32_t CheckStreamInfo(const HpaeStreamInfo &streamInfo); int32_t CheckSourceInfoFramelen(const HpaeSourceInfo &sourceInfo); -int32_t CheckSourceAndStreamInfo(const HpaeStreamInfo &streamInfo, const HpaeSourceInfo &sourceInfo); // for hidumper device / stream info trans, param should be HpaeSinkInfo / HpaeSourceInfo / HpaeStreamInfo template diff --git a/services/audio_engine/node/src/hpae_node_common.cpp b/services/audio_engine/node/src/hpae_node_common.cpp index 76381858b6..3bb5bfaade 100644 --- a/services/audio_engine/node/src/hpae_node_common.cpp +++ b/services/audio_engine/node/src/hpae_node_common.cpp @@ -500,26 +500,6 @@ int32_t CheckStreamInfo(const HpaeStreamInfo &streamInfo, const HpaeSinkInfo &si AUDIO_ERR_LOG("FrameLen is over-sized."); return ERROR; } - if (streamInfo.frameLen * sinkInfo.samplingRate != streamInfo.samplingRate * sinkInfo.frameLen) { - AUDIO_ERR_LOG("Framelen is not proportional."); - return ERROR; - } - return SUCCESS; -} - -int32_t CheckSourceAndStreamInfo(const HpaeStreamInfo &streamInfo, const HpaeSourceInfo &sourceInfo) -{ - if (streamInfo.frameLen == 0) { - AUDIO_ERR_LOG("FrameLen is 0."); - return ERROR; - } else if (streamInfo.frameLen > FRAME_LENGTH_LIMIT) { - AUDIO_ERR_LOG("FrameLen is over-sized."); - return ERROR; - } - if (streamInfo.frameLen * sourceInfo.samplingRate != streamInfo.samplingRate * sourceInfo.frameLen) { - AUDIO_ERR_LOG("Framelen is not proportional."); - return ERROR; - } return SUCCESS; } diff --git a/services/audio_engine/test/unittest/manager/hpae_capturer_manager_test.cpp b/services/audio_engine/test/unittest/manager/hpae_capturer_manager_test.cpp index cae79051c0..5b4c7565de 100644 --- a/services/audio_engine/test/unittest/manager/hpae_capturer_manager_test.cpp +++ b/services/audio_engine/test/unittest/manager/hpae_capturer_manager_test.cpp @@ -33,7 +33,6 @@ namespace HPAE { static std::string g_rootCapturerPath = "/data/source_file_io_48000_2_s16le.pcm"; const uint32_t DEFAULT_FRAME_LENGTH = 960; -const uint32_t DEFAULT_FRAME_LENGTH_2 = 480; const uint32_t OVERSIZED_FRAME_LENGTH = 38500; const uint32_t DEFAULT_SESSION_ID = 123456; const uint32_t DEFAULT_NODE_ID = 1243; @@ -1020,27 +1019,6 @@ HWTEST_F(HpaeCapturerManagerTest, CreateStream_003, TestSize.Level1) EXPECT_EQ(capturerManager->IsInit(), true); EXPECT_EQ(capturerManager->CreateStream(streamInfo), ERROR); } - -/** - * @tc.name : Test InitCapturerManager_004 - * @tc.type : FUNC - * @tc.number: InitCapturerManager_004 - * @tc.desc : Test InitCapturerManager when frameLen is not proportional. - */ -HWTEST_F(HpaeCapturerManagerTest, CreateStream_004, TestSize.Level1) -{ - HpaeSourceInfo sourceInfo; - InitSourceInfo(sourceInfo); - HpaeStreamInfo streamInfo; - InitReloadStreamInfo(streamInfo); - streamInfo.frameLen = DEFAULT_FRAME_LENGTH; - sourceInfo.frameLen = DEFAULT_FRAME_LENGTH_2; - std::shared_ptr capturerManager = std::make_shared(sourceInfo); - EXPECT_EQ(capturerManager->Init(), SUCCESS); - WaitForMsgProcessing(capturerManager); - EXPECT_EQ(capturerManager->IsInit(), true); - EXPECT_EQ(capturerManager->CreateStream(streamInfo), ERROR); -} } // namespace HPAE } // namespace AudioStandard } // namespace OHOS \ No newline at end of file diff --git a/services/audio_engine/test/unittest/manager/hpae_inner_capturer_unit_test.cpp b/services/audio_engine/test/unittest/manager/hpae_inner_capturer_unit_test.cpp index 632f961edf..681c682d4c 100644 --- a/services/audio_engine/test/unittest/manager/hpae_inner_capturer_unit_test.cpp +++ b/services/audio_engine/test/unittest/manager/hpae_inner_capturer_unit_test.cpp @@ -31,8 +31,6 @@ namespace AudioStandard { namespace HPAE { const uint32_t DEFAULT_SESSION_ID = 123456; const uint32_t OVERSIZED_FRAME_LENGTH = 38500; -const uint32_t DEFAULT_FRAME_LENGTH_1 = 960; -const uint32_t DEFAULT_FRAME_LENGTH_2 = 480; const float FRAME_LENGTH_IN_SECOND = 0.02; std::string g_rootPath = "/data/"; @@ -716,24 +714,6 @@ HWTEST_F(HpaeInnerCapturerManagerUnitTest, CreateStream_004, TestSize.Level0) streamInfo.frameLen = OVERSIZED_FRAME_LENGTH; EXPECT_EQ(hpaeInnerCapturerManager_->CreateStream(streamInfo), ERROR); } - -/** - * @tc.name : Test CreateStream - * @tc.type : FUNC - * @tc.number: CreateStream_005 - * @tc.desc : Test CreateStream when framelen is not proportional. - */ -HWTEST_F(HpaeInnerCapturerManagerUnitTest, CreateStream_005, TestSize.Level0) -{ - EXPECT_EQ(hpaeInnerCapturerManager_->Init(), SUCCESS); - WaitForMsgProcessing(hpaeInnerCapturerManager_); - EXPECT_EQ(hpaeInnerCapturerManager_->IsInit(), true); - HpaeStreamInfo streamInfo = GetInCapPlayStreamInfo(); - HpaeSinkInfo sinkInfo = GetInCapSinkInfo(); - streamInfo.frameLen = DEFAULT_FRAME_LENGTH_1; - sinkInfo.frameLen = DEFAULT_FRAME_LENGTH_2; - EXPECT_EQ(hpaeInnerCapturerManager_->CreateStream(streamInfo), ERROR); -} } // namespace HPAE } // namespace OHOS::AudioStandard } // namespace OHOS \ No newline at end of file diff --git a/services/audio_engine/test/unittest/manager/hpae_render_manager_test.cpp b/services/audio_engine/test/unittest/manager/hpae_render_manager_test.cpp index 3624263ed0..33a716a332 100644 --- a/services/audio_engine/test/unittest/manager/hpae_render_manager_test.cpp +++ b/services/audio_engine/test/unittest/manager/hpae_render_manager_test.cpp @@ -1787,34 +1787,6 @@ HWTEST_F(HpaeRendererManagerTest, HpaeOffloadRendererManagerCreateStream_002, Te EXPECT_EQ(hpaeRendererManager->CreateStream(streamInfo), ERROR); } -/** - * @tc.name : Test HpaeOffloadRendererManagerCreateStream_003 - * @tc.type : FUNC - * @tc.number: HpaeOffloadRendererManagerCreateStream_003 - * @tc.desc : Test HpaeOffloadRendererManagerCreateStream when frameLen is not proportional. - */ -HWTEST_F(HpaeRendererManagerTest, HpaeOffloadRendererManagerCreateStream_003, TestSize.Level1) -{ - HpaeSinkInfo sinkInfo; - sinkInfo.deviceNetId = DEFAULT_TEST_DEVICE_NETWORKID; - sinkInfo.deviceClass = DEFAULT_TEST_DEVICE_CLASS; - sinkInfo.adapterName = DEFAULT_TEST_DEVICE_CLASS; - sinkInfo.filePath = g_rootPath + "constructHpaeRendererManagerTest.pcm"; - sinkInfo.frameLen = FRAME_LENGTH_960; - sinkInfo.samplingRate = SAMPLE_RATE_48000; - sinkInfo.format = SAMPLE_F32LE; - sinkInfo.channels = STEREO; - sinkInfo.deviceType = DEVICE_TYPE_SPEAKER; - bool isReload = true; - std::shared_ptr hpaeRendererManager = std::make_shared(sinkInfo); - EXPECT_EQ(hpaeRendererManager->Init(isReload), SUCCESS); - WaitForMsgProcessing(hpaeRendererManager); - EXPECT_EQ(hpaeRendererManager->IsInit(), true); - HpaeStreamInfo streamInfo; - streamInfo.frameLen = FRAME_LENGTH_882; - EXPECT_EQ(hpaeRendererManager->CreateStream(streamInfo), ERROR); -} - /** * @tc.name : Test HpaeRendererManagerCreateStream_001 * @tc.type : FUNC @@ -1870,32 +1842,4 @@ HWTEST_F(HpaeRendererManagerTest, HpaeRendererManagerCreateStream_002, TestSize. streamInfo.frameLen = OVERSIZED_FRAME_LENGTH; EXPECT_EQ(hpaeRendererManager->CreateStream(streamInfo), ERROR); } - -/** - * @tc.name : Test HpaeRendererManagerCreateStream_003 - * @tc.type : FUNC - * @tc.number: HpaeRendererManagerCreateStream_003 - * @tc.desc : Test HpaeRendererManagerCreateStream when frameLen is not proportional. - */ -HWTEST_F(HpaeRendererManagerTest, HpaeRendererManagerCreateStream_003, TestSize.Level1) -{ - HpaeSinkInfo sinkInfo; - sinkInfo.deviceNetId = DEFAULT_TEST_DEVICE_NETWORKID; - sinkInfo.deviceClass = DEFAULT_TEST_DEVICE_CLASS; - sinkInfo.adapterName = DEFAULT_TEST_DEVICE_CLASS; - sinkInfo.filePath = g_rootPath + "constructHpaeRendererManagerTest.pcm"; - sinkInfo.frameLen = FRAME_LENGTH_960; - sinkInfo.samplingRate = SAMPLE_RATE_48000; - sinkInfo.format = SAMPLE_F32LE; - sinkInfo.channels = STEREO; - sinkInfo.deviceType = DEVICE_TYPE_SPEAKER; - bool isReload = true; - std::shared_ptr hpaeRendererManager = std::make_shared(sinkInfo); - EXPECT_EQ(hpaeRendererManager->Init(isReload), SUCCESS); - WaitForMsgProcessing(hpaeRendererManager); - EXPECT_EQ(hpaeRendererManager->IsInit(), true); - HpaeStreamInfo streamInfo; - streamInfo.frameLen = FRAME_LENGTH_882; - EXPECT_EQ(hpaeRendererManager->CreateStream(streamInfo), ERROR); -} } // namespace \ No newline at end of file -- Gitee From 598b28c82ed1703b3ffd7f782b6f3e211b0d3ab1 Mon Sep 17 00:00:00 2001 From: l00944055 Date: Fri, 12 Sep 2025 16:16:03 +0800 Subject: [PATCH 2/3] framelenFix Signed-off-by: l00944055 --- services/audio_engine/node/src/hpae_node_common.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/audio_engine/node/src/hpae_node_common.cpp b/services/audio_engine/node/src/hpae_node_common.cpp index 3bb5bfaade..629bad65fd 100644 --- a/services/audio_engine/node/src/hpae_node_common.cpp +++ b/services/audio_engine/node/src/hpae_node_common.cpp @@ -491,7 +491,7 @@ void TransStreamInfoToStreamDumpInfo(const std::unordered_map Date: Fri, 12 Sep 2025 16:44:51 +0800 Subject: [PATCH 3/3] fix Signed-off-by: l00944055 --- .../audio_engine/manager/src/hpae_capturer_manager.cpp | 10 ++-------- .../manager/src/hpae_inner_capturer_manager.cpp | 5 +---- .../manager/src/hpae_offload_renderer_manager.cpp | 5 +---- .../audio_engine/manager/src/hpae_renderer_manager.cpp | 5 +---- 4 files changed, 5 insertions(+), 20 deletions(-) diff --git a/services/audio_engine/manager/src/hpae_capturer_manager.cpp b/services/audio_engine/manager/src/hpae_capturer_manager.cpp index 89c20ee0b2..8f611637b2 100644 --- a/services/audio_engine/manager/src/hpae_capturer_manager.cpp +++ b/services/audio_engine/manager/src/hpae_capturer_manager.cpp @@ -193,10 +193,7 @@ int32_t HpaeCapturerManager::CreateStream(const HpaeStreamInfo &streamInfo) AUDIO_ERR_LOG("HpaeCapturerManager is not init"); return ERR_INVALID_OPERATION; } - int32_t checkRet = CheckStreamInfo(streamInfo); - if (checkRet != SUCCESS) { - return checkRet; - } + CHECK_AND_RETURN_RET_LOG(CheckStreamInfo(streamInfo) == SUCCESS, ERROR, "Check StreamInfo ERROR"); auto request = [this, streamInfo]() { AUDIO_INFO_LOG("CreateStream sessionId %{public}u deviceName %{public}s", streamInfo.sessionId, @@ -659,10 +656,7 @@ int32_t HpaeCapturerManager::InitCapturerManager() HpaeNodeInfo nodeInfo; HpaeNodeInfo ecNodeInfo; HpaeNodeInfo micRefNodeInfo; - int32_t checkRet = CheckSourceInfoFramelen(sourceInfo_); - if (checkRet != SUCCESS) { - return checkRet; - } + CHECK_AND_RETURN_RET_LOG(CheckSourceInfoFramelen(sourceInfo_) == SUCCESS, ERROR, "Check SourceInfo ERROR"); nodeInfo.deviceClass = sourceInfo_.deviceClass; nodeInfo.channels = sourceInfo_.channels; nodeInfo.format = sourceInfo_.format; diff --git a/services/audio_engine/manager/src/hpae_inner_capturer_manager.cpp b/services/audio_engine/manager/src/hpae_inner_capturer_manager.cpp index 866f900d56..3b362bc6ac 100644 --- a/services/audio_engine/manager/src/hpae_inner_capturer_manager.cpp +++ b/services/audio_engine/manager/src/hpae_inner_capturer_manager.cpp @@ -180,10 +180,7 @@ int32_t HpaeInnerCapturerManager::CreateStream(const HpaeStreamInfo &streamInfo) AUDIO_INFO_LOG("CreateStream not init"); return ERR_INVALID_OPERATION; } - int32_t checkRet = CheckStreamInfo(streamInfo); - if (checkRet != SUCCESS) { - return checkRet; - } + CHECK_AND_RETURN_RET_LOG(CheckStreamInfo(streamInfo) == SUCCESS, ERROR, "Check StreamInfo ERROR"); auto request = [this, streamInfo]() { if (streamInfo.streamClassType == HPAE_STREAM_CLASS_TYPE_PLAY) { Trace trace("HpaeInnerCapturerManager::CreateRendererStream id[" + diff --git a/services/audio_engine/manager/src/hpae_offload_renderer_manager.cpp b/services/audio_engine/manager/src/hpae_offload_renderer_manager.cpp index 71da491d0c..802fd7e011 100644 --- a/services/audio_engine/manager/src/hpae_offload_renderer_manager.cpp +++ b/services/audio_engine/manager/src/hpae_offload_renderer_manager.cpp @@ -118,10 +118,7 @@ int32_t HpaeOffloadRendererManager::CreateStream(const HpaeStreamInfo &streamInf if (!IsInit()) { return ERR_INVALID_OPERATION; } - int32_t checkRet = CheckStreamInfo(streamInfo); - if (checkRet != SUCCESS) { - return checkRet; - } + CHECK_AND_RETURN_RET_LOG(CheckStreamInfo(streamInfo) == SUCCESS, ERROR, "Check StreamInfo ERROR"); auto request = [this, streamInfo]() { CreateInputSession(streamInfo); sessionInfo_.state = HPAE_SESSION_PREPARED; diff --git a/services/audio_engine/manager/src/hpae_renderer_manager.cpp b/services/audio_engine/manager/src/hpae_renderer_manager.cpp index 50fdd72e94..640d35a50d 100644 --- a/services/audio_engine/manager/src/hpae_renderer_manager.cpp +++ b/services/audio_engine/manager/src/hpae_renderer_manager.cpp @@ -305,10 +305,7 @@ int32_t HpaeRendererManager::CreateStream(const HpaeStreamInfo &streamInfo) if (!IsInit()) { return ERR_INVALID_OPERATION; } - int32_t checkRet = CheckStreamInfo(streamInfo); - if (checkRet != SUCCESS) { - return checkRet; - } + CHECK_AND_RETURN_RET_LOG(CheckStreamInfo(streamInfo) == SUCCESS, ERROR, "Check StreamInfo ERROR"); auto request = [this, streamInfo]() { Trace trace("HpaeRendererManager::CreateStream id[" + std::to_string(streamInfo.sessionId) + "]"); -- Gitee