From 0ffd76042128b39126764b89ae08f81ee63ef0d3 Mon Sep 17 00:00:00 2001 From: Jvgang Date: Tue, 12 Aug 2025 14:29:22 +0000 Subject: [PATCH 1/6] channelLayout Bug Fix Signed-off-by: Jvgang --- .../native/hdiadapter_new/source/audio_capture_source.cpp | 7 ++++--- .../unittest/source/audio_capture_source_unit_test.cpp | 2 +- .../server/domain/volume/src/audio_adapter_manager.cpp | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/frameworks/native/hdiadapter_new/source/audio_capture_source.cpp b/frameworks/native/hdiadapter_new/source/audio_capture_source.cpp index 3fd7f70fe8..fe7719bb41 100644 --- a/frameworks/native/hdiadapter_new/source/audio_capture_source.cpp +++ b/frameworks/native/hdiadapter_new/source/audio_capture_source.cpp @@ -805,9 +805,10 @@ void AudioCaptureSource::InitAudioSampleAttr(struct AudioSampleAttributes ¶m param.format = ConvertToHdiFormat(attr_.format); param.isBigEndian = attr_.isBigEndian; param.channelCount = attr_.channel; - param.channelLayout = attr_.channelLayout; - if (param.channelLayout == CH_LAYOUT_UNKNOWN) { - param.channelLayout = GetChannelLayoutByChannelCount(attr_.channel); + param.channelLayout = GetChannelLayoutByChannelCount(attr.channel); + if (param.channelLayout != attr.channelLayout) { + AUDIO_ERR_LOG("channelLayout:%{public}d convert by channel,not match channelLayout:%{public}d in attr", + param.channelLayout, attr.channelLayout); } param.silenceThreshold = attr_.bufferSize; param.frameSize = param.format * param.channelCount; diff --git a/frameworks/native/hdiadapter_new/test/unittest/source/audio_capture_source_unit_test.cpp b/frameworks/native/hdiadapter_new/test/unittest/source/audio_capture_source_unit_test.cpp index a40e03150a..e0e41bfe8c 100644 --- a/frameworks/native/hdiadapter_new/test/unittest/source/audio_capture_source_unit_test.cpp +++ b/frameworks/native/hdiadapter_new/test/unittest/source/audio_capture_source_unit_test.cpp @@ -73,7 +73,7 @@ void AudioCaptureSourceUnitTest::InitPrimarySource() attr_.sampleRate = 48000; // 48000: sample rate attr_.channel = 2; // 2: channel attr_.format = SAMPLE_S16LE; - attr_.channelLayout = 3; // 3: channel layout + attr_.channelLayout = CH_LAYOUT_UBKNOWN; // 3: channel layout attr_.deviceType = DEVICE_TYPE_MIC; attr_.openMicSpeaker = 1; primarySource_->Init(attr_); diff --git a/services/audio_policy/server/domain/volume/src/audio_adapter_manager.cpp b/services/audio_policy/server/domain/volume/src/audio_adapter_manager.cpp index c6fc04f848..d8cf661509 100644 --- a/services/audio_policy/server/domain/volume/src/audio_adapter_manager.cpp +++ b/services/audio_policy/server/domain/volume/src/audio_adapter_manager.cpp @@ -1976,6 +1976,7 @@ IAudioSinkAttr AudioAdapterManager::GetAudioSinkAttr(const AudioModuleInfo &audi attr.sampleRate = static_cast(std::stoul(audioModuleInfo.rate)); } if (!audioModuleInfo.channels.empty()) { + AUDIO_INFO_LOG("use custom channel, %{public}s", audioModuleInfo.channels.c_str()); attr.channel = static_cast(std::stoul(audioModuleInfo.channels)); } attr.volume = HDI_MAX_SINK_VOLUME_LEVEL; -- Gitee From 556c3e8c37d5ebdef3050851addefc1f8b62f935 Mon Sep 17 00:00:00 2001 From: Jvgang Date: Tue, 12 Aug 2025 14:31:10 +0000 Subject: [PATCH 2/6] channelLayout Bug Fix Signed-off-by: Jvgang --- .../test/unittest/source/audio_capture_source_unit_test.cpp | 2 +- .../server/domain/volume/src/audio_adapter_manager.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/native/hdiadapter_new/test/unittest/source/audio_capture_source_unit_test.cpp b/frameworks/native/hdiadapter_new/test/unittest/source/audio_capture_source_unit_test.cpp index e0e41bfe8c..1cde243b27 100644 --- a/frameworks/native/hdiadapter_new/test/unittest/source/audio_capture_source_unit_test.cpp +++ b/frameworks/native/hdiadapter_new/test/unittest/source/audio_capture_source_unit_test.cpp @@ -73,7 +73,7 @@ void AudioCaptureSourceUnitTest::InitPrimarySource() attr_.sampleRate = 48000; // 48000: sample rate attr_.channel = 2; // 2: channel attr_.format = SAMPLE_S16LE; - attr_.channelLayout = CH_LAYOUT_UBKNOWN; // 3: channel layout + attr_.channelLayout = CH_LAYOUT_UNKNOWN; // 3: channel layout attr_.deviceType = DEVICE_TYPE_MIC; attr_.openMicSpeaker = 1; primarySource_->Init(attr_); diff --git a/services/audio_policy/server/domain/volume/src/audio_adapter_manager.cpp b/services/audio_policy/server/domain/volume/src/audio_adapter_manager.cpp index d8cf661509..dbd71971a5 100644 --- a/services/audio_policy/server/domain/volume/src/audio_adapter_manager.cpp +++ b/services/audio_policy/server/domain/volume/src/audio_adapter_manager.cpp @@ -1976,7 +1976,7 @@ IAudioSinkAttr AudioAdapterManager::GetAudioSinkAttr(const AudioModuleInfo &audi attr.sampleRate = static_cast(std::stoul(audioModuleInfo.rate)); } if (!audioModuleInfo.channels.empty()) { - AUDIO_INFO_LOG("use custom channel, %{public}s", audioModuleInfo.channels.c_str()); + AUDIO_INFO_LOG("use custom channel:%{public}s", audioModuleInfo.channels.c_str()); attr.channel = static_cast(std::stoul(audioModuleInfo.channels)); } attr.volume = HDI_MAX_SINK_VOLUME_LEVEL; -- Gitee From bc29e9d2d9383617f7fc8249954e13a031b156e9 Mon Sep 17 00:00:00 2001 From: Jvgang Date: Tue, 12 Aug 2025 14:32:57 +0000 Subject: [PATCH 3/6] ChannelLayout Bug Fix Signed-off-by: Jvgang --- .../test/unittest/source/audio_capture_source_unit_test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/native/hdiadapter_new/test/unittest/source/audio_capture_source_unit_test.cpp b/frameworks/native/hdiadapter_new/test/unittest/source/audio_capture_source_unit_test.cpp index 1cde243b27..ceaef20c25 100644 --- a/frameworks/native/hdiadapter_new/test/unittest/source/audio_capture_source_unit_test.cpp +++ b/frameworks/native/hdiadapter_new/test/unittest/source/audio_capture_source_unit_test.cpp @@ -73,7 +73,7 @@ void AudioCaptureSourceUnitTest::InitPrimarySource() attr_.sampleRate = 48000; // 48000: sample rate attr_.channel = 2; // 2: channel attr_.format = SAMPLE_S16LE; - attr_.channelLayout = CH_LAYOUT_UNKNOWN; // 3: channel layout + attr_.channelLayout = CH_LAYOUT_UNKNOWN; attr_.deviceType = DEVICE_TYPE_MIC; attr_.openMicSpeaker = 1; primarySource_->Init(attr_); -- Gitee From 45eaadb61b9eb15f786e7d430732746733484757 Mon Sep 17 00:00:00 2001 From: Jvgang Date: Tue, 12 Aug 2025 14:59:56 +0000 Subject: [PATCH 4/6] Bug Fix: channelLayout Error Signed-off-by: Jvgang --- .../native/hdiadapter_new/source/audio_capture_source.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/native/hdiadapter_new/source/audio_capture_source.cpp b/frameworks/native/hdiadapter_new/source/audio_capture_source.cpp index fe7719bb41..769161def9 100644 --- a/frameworks/native/hdiadapter_new/source/audio_capture_source.cpp +++ b/frameworks/native/hdiadapter_new/source/audio_capture_source.cpp @@ -807,8 +807,8 @@ void AudioCaptureSource::InitAudioSampleAttr(struct AudioSampleAttributes ¶m param.channelCount = attr_.channel; param.channelLayout = GetChannelLayoutByChannelCount(attr.channel); if (param.channelLayout != attr.channelLayout) { - AUDIO_ERR_LOG("channelLayout:%{public}d convert by channel,not match channelLayout:%{public}d in attr", - param.channelLayout, attr.channelLayout); + AUDIO_ERR_LOG("channelLayout:%{public} "PRIu64 "convert by channel," + "not match channelLayout:%{public}"PRIu64 "in attr", param.channelLayout, attr.channelLayout); } param.silenceThreshold = attr_.bufferSize; param.frameSize = param.format * param.channelCount; -- Gitee From d876b3f72a90bbec94c6ad1cdc213fa34f22e73d Mon Sep 17 00:00:00 2001 From: Jvgang Date: Tue, 12 Aug 2025 15:12:08 +0000 Subject: [PATCH 5/6] =?UTF-8?q?bugFix=EF=BC=9AchannelLayout=20Error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jvgang --- .../test/unittest/source/audio_capture_source_unit_test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/native/hdiadapter_new/test/unittest/source/audio_capture_source_unit_test.cpp b/frameworks/native/hdiadapter_new/test/unittest/source/audio_capture_source_unit_test.cpp index ceaef20c25..a65f5bbc3a 100644 --- a/frameworks/native/hdiadapter_new/test/unittest/source/audio_capture_source_unit_test.cpp +++ b/frameworks/native/hdiadapter_new/test/unittest/source/audio_capture_source_unit_test.cpp @@ -73,7 +73,7 @@ void AudioCaptureSourceUnitTest::InitPrimarySource() attr_.sampleRate = 48000; // 48000: sample rate attr_.channel = 2; // 2: channel attr_.format = SAMPLE_S16LE; - attr_.channelLayout = CH_LAYOUT_UNKNOWN; + attr_.channelLayout = CH_LAYOUT_UNKNOWN; attr_.deviceType = DEVICE_TYPE_MIC; attr_.openMicSpeaker = 1; primarySource_->Init(attr_); -- Gitee From d27595b1055cc9350684f54d2912d73e63bf2e77 Mon Sep 17 00:00:00 2001 From: Jvgang Date: Tue, 12 Aug 2025 15:30:58 +0000 Subject: [PATCH 6/6] bugFix: channelLayout Error Signed-off-by: Jvgang --- .../native/hdiadapter_new/source/audio_capture_source.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/native/hdiadapter_new/source/audio_capture_source.cpp b/frameworks/native/hdiadapter_new/source/audio_capture_source.cpp index 769161def9..8e1986d7a8 100644 --- a/frameworks/native/hdiadapter_new/source/audio_capture_source.cpp +++ b/frameworks/native/hdiadapter_new/source/audio_capture_source.cpp @@ -805,10 +805,10 @@ void AudioCaptureSource::InitAudioSampleAttr(struct AudioSampleAttributes ¶m param.format = ConvertToHdiFormat(attr_.format); param.isBigEndian = attr_.isBigEndian; param.channelCount = attr_.channel; - param.channelLayout = GetChannelLayoutByChannelCount(attr.channel); - if (param.channelLayout != attr.channelLayout) { + param.channelLayout = GetChannelLayoutByChannelCount(attr_.channel); + if (param.channelLayout != attr_.channelLayout) { AUDIO_ERR_LOG("channelLayout:%{public} "PRIu64 "convert by channel," - "not match channelLayout:%{public}"PRIu64 "in attr", param.channelLayout, attr.channelLayout); + "not match channelLayout:%{public}"PRIu64 "in attr_", param.channelLayout, attr_.channelLayout); } param.silenceThreshold = attr_.bufferSize; param.frameSize = param.format * param.channelCount; -- Gitee