summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshihchienc <shihchienc@google.com>2022-07-25 04:26:27 +0000
committerTreeHugger Robot <treehugger-gerrit@google.com>2022-09-19 14:40:49 +0000
commitcfad191e5a58ac7b3c638a9fcfc0d950fdcb1a8c (patch)
tree2a159e196493b91ca2ce4df17d79f663a22203a5
parent8c5b4c367a0ff0f98362afcb752e5e1e5e89840f (diff)
Add by project le audio offload capabilities config file
We create by project offload capabilities config file to make each project have its own customized default device offload capabilities. Bug: 238983662 Test: make sure file added in config folder can be copied into devices Change-Id: I517ad3db7d60e1fd8647561387cebd9524fe4f2f
-rw-r--r--bluetooth/lynx/le_audio_codec_capabilities.xml84
-rw-r--r--bluetooth/qti_default.mk4
2 files changed, 88 insertions, 0 deletions
diff --git a/bluetooth/lynx/le_audio_codec_capabilities.xml b/bluetooth/lynx/le_audio_codec_capabilities.xml
new file mode 100644
index 0000000..cfb915b
--- /dev/null
+++ b/bluetooth/lynx/le_audio_codec_capabilities.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!---
+ This is an example to configure LE Audio hardware offload supported capability settings
+ codecConfigurationList:
+ Supported codec capability along with its parameter setting
+
+ strategyConfigurationList:
+ ASE Configuration strategies
+
+ configurationList:
+ For each configuration, there are two attributes
+ - codecConfiguration
+ - strategyConfiguration
+
+ scenarioList:
+ There would be only one `scenarios` group
+ For each scenario, the are two attributes
+ - encode
+ - decode
+ If a scenario is unidirectional, mark another direction as `invalid`
+ The configuration should be chosen from `configurationList`
+-->
+<leAudioOffloadSetting>
+ <scenarioList>
+ <!-- encode only -->
+ <scenario encode="OneChanMono_16_1" decode="invalid"/>
+ <scenario encode="TwoChanStereo_16_1" decode="invalid"/>
+ <scenario encode="OneChanStereo_16_1" decode="invalid"/>
+ <scenario encode="OneChanMono_16_2" decode="invalid"/>
+ <scenario encode="TwoChanStereo_16_2" decode="invalid"/>
+ <scenario encode="OneChanStereo_16_2" decode="invalid"/>
+ <scenario encode="OneChanMono_24_2" decode="invalid"/>
+ <scenario encode="TwoChanStereo_24_2" decode="invalid"/>
+ <scenario encode="OneChanStereo_24_2" decode="invalid"/>
+ <scenario encode="OneChanMono_32_2" decode="invalid"/>
+ <scenario encode="TwoChanStereo_32_2" decode="invalid"/>
+ <scenario encode="OneChanStereo_32_2" decode="invalid"/>
+ <scenario encode="OneChanMono_48_4" decode="invalid"/>
+ <scenario encode="TwoChanStereo_48_4" decode="invalid"/>
+ <scenario encode="OneChanStereo_48_4" decode="invalid"/>
+ <!-- encode and decode -->
+ <scenario encode="OneChanStereo_16_1" decode="OneChanStereo_16_1"/>
+ <scenario encode="OneChanStereo_16_1" decode="OneChanMono_16_1"/>
+ <scenario encode="TwoChanStereo_16_1" decode="OneChanMono_16_1"/>
+ <scenario encode="OneChanMono_16_1" decode="OneChanMono_16_1"/>
+ <scenario encode="OneChanStereo_16_2" decode="OneChanStereo_16_2"/>
+ <scenario encode="OneChanStereo_16_2" decode="OneChanMono_16_2"/>
+ <scenario encode="TwoChanStereo_16_2" decode="OneChanMono_16_2"/>
+ <scenario encode="OneChanMono_16_2" decode="OneChanMono_16_2"/>
+ <scenario encode="OneChanStereo_32_2" decode="OneChanStereo_32_2"/>
+ <scenario encode="OneChanStereo_32_2" decode="OneChanMono_32_2"/>
+ <scenario encode="TwoChanStereo_32_2" decode="OneChanMono_32_2"/>
+ <scenario encode="OneChanMono_32_2" decode="OneChanMono_32_2"/>
+ </scenarioList>
+ <configurationList>
+ <configuration name="OneChanMono_16_1" codecConfiguration="LC3_16k_1" strategyConfiguration="MONO_ONE_CIS_PER_DEVICE"/>
+ <configuration name="TwoChanStereo_16_1" codecConfiguration="LC3_16k_1" strategyConfiguration="STEREO_TWO_CISES_PER_DEVICE"/>
+ <configuration name="OneChanStereo_16_1" codecConfiguration="LC3_16k_1" strategyConfiguration="STEREO_ONE_CIS_PER_DEVICE"/>
+ <configuration name="OneChanMono_16_2" codecConfiguration="LC3_16k_2" strategyConfiguration="MONO_ONE_CIS_PER_DEVICE"/>
+ <configuration name="TwoChanStereo_16_2" codecConfiguration="LC3_16k_2" strategyConfiguration="STEREO_TWO_CISES_PER_DEVICE"/>
+ <configuration name="OneChanStereo_16_2" codecConfiguration="LC3_16k_2" strategyConfiguration="STEREO_ONE_CIS_PER_DEVICE"/>
+ <configuration name="OneChanMono_24_2" codecConfiguration="LC3_24k_2" strategyConfiguration="MONO_ONE_CIS_PER_DEVICE"/>
+ <configuration name="TwoChanStereo_24_2" codecConfiguration="LC3_24k_2" strategyConfiguration="STEREO_TWO_CISES_PER_DEVICE"/>
+ <configuration name="OneChanStereo_24_2" codecConfiguration="LC3_24k_2" strategyConfiguration="STEREO_ONE_CIS_PER_DEVICE"/>
+ <configuration name="OneChanMono_32_2" codecConfiguration="LC3_32k_2" strategyConfiguration="MONO_ONE_CIS_PER_DEVICE"/>
+ <configuration name="TwoChanStereo_32_2" codecConfiguration="LC3_32k_2" strategyConfiguration="STEREO_TWO_CISES_PER_DEVICE"/>
+ <configuration name="OneChanStereo_32_2" codecConfiguration="LC3_32k_2" strategyConfiguration="STEREO_ONE_CIS_PER_DEVICE"/>
+ <configuration name="OneChanMono_48_4" codecConfiguration="LC3_48k_4" strategyConfiguration="MONO_ONE_CIS_PER_DEVICE"/>
+ <configuration name="TwoChanStereo_48_4" codecConfiguration="LC3_48k_4" strategyConfiguration="STEREO_TWO_CISES_PER_DEVICE"/>
+ <configuration name="OneChanStereo_48_4" codecConfiguration="LC3_48k_4" strategyConfiguration="STEREO_ONE_CIS_PER_DEVICE"/>
+ </configurationList>
+ <codecConfigurationList>
+ <codecConfiguration name="LC3_16k_1" codec="LC3" samplingFrequency="16000" frameDurationUs="7500" octetsPerCodecFrame="30"/>
+ <codecConfiguration name="LC3_16k_2" codec="LC3" samplingFrequency="16000" frameDurationUs="10000" octetsPerCodecFrame="40"/>
+ <codecConfiguration name="LC3_24k_2" codec="LC3" samplingFrequency="24000" frameDurationUs="10000" octetsPerCodecFrame="60"/>
+ <codecConfiguration name="LC3_32k_2" codec="LC3" samplingFrequency="32000" frameDurationUs="10000" octetsPerCodecFrame="80"/>
+ <codecConfiguration name="LC3_48k_4" codec="LC3" samplingFrequency="48000" frameDurationUs="10000" octetsPerCodecFrame="120"/>
+ </codecConfigurationList>
+ <strategyConfigurationList>
+ <strategyConfiguration name="STEREO_ONE_CIS_PER_DEVICE" audioLocation="STEREO" connectedDevice="2" channelCount="1"/>
+ <strategyConfiguration name="STEREO_TWO_CISES_PER_DEVICE" audioLocation="STEREO" connectedDevice="1" channelCount="2"/>
+ <strategyConfiguration name="MONO_ONE_CIS_PER_DEVICE" audioLocation="MONO" connectedDevice="1" channelCount="1"/>
+ </strategyConfigurationList>
+</leAudioOffloadSetting>
diff --git a/bluetooth/qti_default.mk b/bluetooth/qti_default.mk
index 6132dec..5f508b8 100644
--- a/bluetooth/qti_default.mk
+++ b/bluetooth/qti_default.mk
@@ -36,6 +36,10 @@ PRODUCT_PRODUCT_PROPERTIES += \
persist.bluetooth.leaudio_offload.disabled=false \
ro.vendor.audio_hal.ble_use_stream_id=true
+# LE Auido Offload Capabilities setting
+PRODUCT_COPY_FILES += \
+ device/google/lynx/bluetooth/lynx/le_audio_codec_capabilities.xml:$(TARGET_COPY_OUT_VENDOR)/etc/le_audio_codec_capabilities.xml
+
# Bluetooth HAL and Pixel extension
DEVICE_MANIFEST_FILE += \
device/google/lynx/bluetooth/manifest_bluetooth.xml