Merge "Add audio Spatializer and support OPUS codec" into udc-qpr-dev am: 9b1613385c
am: 2656a60aca
Original change: https://googleplex-android-review.googlesource.com/c/device/google/tangorpro/+/23810207 Change-Id: I56c1e7f929f62887a7215121a20531e9a0b94c3c Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
1e459fe511
7 changed files with 49 additions and 14 deletions
|
@ -10,6 +10,7 @@
|
||||||
<library name="proxy" path="libeffectproxy.so"/>
|
<library name="proxy" path="libeffectproxy.so"/>
|
||||||
<library name="offload_effect" path="liboffloadeffect.so"/>
|
<library name="offload_effect" path="liboffloadeffect.so"/>
|
||||||
<library name="haptic_generator" path="libhapticgenerator.so"/>
|
<library name="haptic_generator" path="libhapticgenerator.so"/>
|
||||||
|
<library name="spatializer" path="libspatialaudio.so"/>
|
||||||
</libraries>
|
</libraries>
|
||||||
<effects>
|
<effects>
|
||||||
<effectProxy name="bassboost" library="proxy" uuid="2f0871a2-c93c-4824-9664-42eb2909f2ef">
|
<effectProxy name="bassboost" library="proxy" uuid="2f0871a2-c93c-4824-9664-42eb2909f2ef">
|
||||||
|
@ -54,6 +55,7 @@
|
||||||
<effect name="aec" library="offload_effect" uuid="28c28780-ec8b-48b6-8590-8c84557d797d"/>
|
<effect name="aec" library="offload_effect" uuid="28c28780-ec8b-48b6-8590-8c84557d797d"/>
|
||||||
<effect name="ns" library="offload_effect" uuid="62ff2836-d050-43c3-9c2d-94a73dad2c64"/>
|
<effect name="ns" library="offload_effect" uuid="62ff2836-d050-43c3-9c2d-94a73dad2c64"/>
|
||||||
<effect name="haptic_generator" library="haptic_generator" uuid="97c4acd1-8b82-4f2f-832e-c2fe5d7a9931"/>
|
<effect name="haptic_generator" library="haptic_generator" uuid="97c4acd1-8b82-4f2f-832e-c2fe5d7a9931"/>
|
||||||
|
<effect name="spatializer" library="spatializer" uuid="cc4677de-ff72-11eb-9a03-0242ac130003"/>
|
||||||
</effects>
|
</effects>
|
||||||
<postprocess>
|
<postprocess>
|
||||||
</postprocess>
|
</postprocess>
|
||||||
|
|
|
@ -187,6 +187,8 @@
|
||||||
<usecase id="UC_DEEP_BUFFER_PLAYBACK" dev1="5" dyn_path="true" dsp_vol="false" mmap="false" period="20" period_num="4"/>
|
<usecase id="UC_DEEP_BUFFER_PLAYBACK" dev1="5" dyn_path="true" dsp_vol="false" mmap="false" period="20" period_num="4"/>
|
||||||
<!-- dev1: voice-call downlink dev2: voice-clal uplink -->
|
<!-- dev1: voice-call downlink dev2: voice-clal uplink -->
|
||||||
<usecase id="UC_VOICE_CALL" dev1="4" dev2="11"/>
|
<usecase id="UC_VOICE_CALL" dev1="4" dev2="11"/>
|
||||||
|
<!-- for output with flag AUDIO_OUTPUT_SPATIALIZER -->
|
||||||
|
<usecase id="UC_IMMERSIVE_PLAYBACK" dev1="30" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="3"/>
|
||||||
<!-- for output with AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD, 4 * 128KB buffer -->
|
<!-- for output with AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD, 4 * 128KB buffer -->
|
||||||
<usecase id="UC_COMPRESSED_OFFLOAD_PLAYBACK" dev1="6" dyn_path="true" dsp_vol="true" mmap="false" period="131072" period_num="4" pre_proc_id="14"/>
|
<usecase id="UC_COMPRESSED_OFFLOAD_PLAYBACK" dev1="6" dyn_path="true" dsp_vol="true" mmap="false" period="131072" period_num="4" pre_proc_id="14"/>
|
||||||
<!-- dev1: audio dev2: haptic -->
|
<!-- dev1: audio dev2: haptic -->
|
||||||
|
@ -223,6 +225,10 @@
|
||||||
<be_cfg be_id="OUT_A2DP_BE_CFG" latency="180000"/>
|
<be_cfg be_id="OUT_A2DP_BE_CFG" latency="180000"/>
|
||||||
</usecase>
|
</usecase>
|
||||||
|
|
||||||
|
<usecase id="UC_IMMERSIVE_PLAYBACK" type="playback">
|
||||||
|
<be_cfg be_id="OUT_A2DP_BE_CFG" latency="100000"/>
|
||||||
|
</usecase>
|
||||||
|
|
||||||
<usecase id="UC_AUDIO_RECORD" type="capture">
|
<usecase id="UC_AUDIO_RECORD" type="capture">
|
||||||
<be_cfg be_id="IN_CAMCORDER_LANDSCAPE_BE_CFG" latency="160000"/>
|
<be_cfg be_id="IN_CAMCORDER_LANDSCAPE_BE_CFG" latency="160000"/>
|
||||||
<be_cfg be_id="IN_CAMCORDER_INVERT_LANDSCAPE_BE_CFG" latency="160000"/>
|
<be_cfg be_id="IN_CAMCORDER_INVERT_LANDSCAPE_BE_CFG" latency="160000"/>
|
||||||
|
|
|
@ -58,6 +58,10 @@
|
||||||
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
|
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
|
||||||
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
</mixPort>
|
</mixPort>
|
||||||
|
<mixPort name="immersive_out" role="source" flags="AUDIO_OUTPUT_FLAG_SPATIALIZER">
|
||||||
|
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
|
||||||
|
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
|
</mixPort>
|
||||||
<mixPort name="incall playback" role="source"
|
<mixPort name="incall playback" role="source"
|
||||||
flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
|
flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
|
||||||
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
|
@ -162,17 +166,17 @@
|
||||||
<devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
|
<devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
|
||||||
</devicePort>
|
</devicePort>
|
||||||
<devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink"
|
<devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink"
|
||||||
encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
|
encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
|
||||||
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
</devicePort>
|
</devicePort>
|
||||||
<devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink"
|
<devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink"
|
||||||
encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
|
encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
|
||||||
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
</devicePort>
|
</devicePort>
|
||||||
<devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink"
|
<devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink"
|
||||||
encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
|
encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
|
||||||
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
</devicePort>
|
</devicePort>
|
||||||
|
@ -193,17 +197,17 @@
|
||||||
<route type="mix" sink="Speaker Safe"
|
<route type="mix" sink="Speaker Safe"
|
||||||
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,ultrasound output"/>
|
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,ultrasound output"/>
|
||||||
<route type="mix" sink="BT A2DP Out"
|
<route type="mix" sink="BT A2DP Out"
|
||||||
sources="primary output,deep buffer,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
|
sources="primary output,deep buffer,compressed_offload,voip_rx,raw,mmap_no_irq_out,immersive_out"/>
|
||||||
<route type="mix" sink="BT A2DP Headphones"
|
<route type="mix" sink="BT A2DP Headphones"
|
||||||
sources="primary output,deep buffer,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
|
sources="primary output,deep buffer,compressed_offload,voip_rx,raw,mmap_no_irq_out,immersive_out"/>
|
||||||
<route type="mix" sink="BT A2DP Speaker"
|
<route type="mix" sink="BT A2DP Speaker"
|
||||||
sources="primary output,deep buffer,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
|
sources="primary output,deep buffer,compressed_offload,voip_rx,raw,mmap_no_irq_out,immersive_out"/>
|
||||||
<route type="mix" sink="USB Device Out"
|
<route type="mix" sink="USB Device Out"
|
||||||
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
|
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
|
||||||
<route type="mix" sink="USB Dock"
|
<route type="mix" sink="USB Dock"
|
||||||
sources="primary output,deep buffer,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
|
sources="primary output,deep buffer,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
|
||||||
<route type="mix" sink="USB Headset Out"
|
<route type="mix" sink="USB Headset Out"
|
||||||
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
|
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
|
||||||
<route type="mix" sink="BT SCO"
|
<route type="mix" sink="BT SCO"
|
||||||
sources="primary output,deep buffer,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
|
sources="primary output,deep buffer,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
|
||||||
<route type="mix" sink="BT SCO Headset"
|
<route type="mix" sink="BT SCO Headset"
|
||||||
|
|
|
@ -58,6 +58,10 @@
|
||||||
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
|
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
|
||||||
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
</mixPort>
|
</mixPort>
|
||||||
|
<mixPort name="immersive_out" role="source" flags="AUDIO_OUTPUT_FLAG_SPATIALIZER">
|
||||||
|
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
|
||||||
|
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
|
</mixPort>
|
||||||
<mixPort name="incall playback" role="source"
|
<mixPort name="incall playback" role="source"
|
||||||
flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
|
flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
|
||||||
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
|
@ -178,9 +182,9 @@
|
||||||
<route type="mix" sink="Speaker Safe"
|
<route type="mix" sink="Speaker Safe"
|
||||||
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,ultrasound output"/>
|
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,ultrasound output"/>
|
||||||
<route type="mix" sink="USB Device Out"
|
<route type="mix" sink="USB Device Out"
|
||||||
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
|
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
|
||||||
<route type="mix" sink="USB Headset Out"
|
<route type="mix" sink="USB Headset Out"
|
||||||
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
|
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
|
||||||
<route type="mix" sink="USB Dock"
|
<route type="mix" sink="USB Dock"
|
||||||
sources="primary output,deep buffer,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
|
sources="primary output,deep buffer,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
|
||||||
<route type="mix" sink="BT SCO"
|
<route type="mix" sink="BT SCO"
|
||||||
|
|
|
@ -155,6 +155,7 @@
|
||||||
<ctl name="TDM_0_RX Mixer VOIP" value="0"/>
|
<ctl name="TDM_0_RX Mixer VOIP" value="0"/>
|
||||||
<ctl name="TDM_0_RX Mixer RAW" value="0"/>
|
<ctl name="TDM_0_RX Mixer RAW" value="0"/>
|
||||||
<ctl name="TDM_0_RX Mixer US" value="0"/>
|
<ctl name="TDM_0_RX Mixer US" value="0"/>
|
||||||
|
<ctl name="TDM_0_RX Mixer IMSV" value="0"/>
|
||||||
|
|
||||||
<ctl name="TDM_1_RX Mixer EP1" value="0"/>
|
<ctl name="TDM_1_RX Mixer EP1" value="0"/>
|
||||||
<ctl name="TDM_1_RX Mixer EP2" value="0"/>
|
<ctl name="TDM_1_RX Mixer EP2" value="0"/>
|
||||||
|
@ -177,6 +178,7 @@
|
||||||
<ctl name="USB_RX Mixer VOIP" value="0"/>
|
<ctl name="USB_RX Mixer VOIP" value="0"/>
|
||||||
<ctl name="USB_RX Mixer HIFI" value="0"/>
|
<ctl name="USB_RX Mixer HIFI" value="0"/>
|
||||||
<ctl name="USB_RX Mixer RAW" value="0"/>
|
<ctl name="USB_RX Mixer RAW" value="0"/>
|
||||||
|
<ctl name="USB_RX Mixer IMSV" value="0"/>
|
||||||
|
|
||||||
<ctl name="BT_RX Mixer EP1" value="0"/>
|
<ctl name="BT_RX Mixer EP1" value="0"/>
|
||||||
<ctl name="BT_RX Mixer EP2" value="0"/>
|
<ctl name="BT_RX Mixer EP2" value="0"/>
|
||||||
|
@ -188,6 +190,7 @@
|
||||||
<ctl name="BT_RX Mixer NoHost1" value="0"/>
|
<ctl name="BT_RX Mixer NoHost1" value="0"/>
|
||||||
<ctl name="BT_RX Mixer VOIP" value="0"/>
|
<ctl name="BT_RX Mixer VOIP" value="0"/>
|
||||||
<ctl name="BT_RX Mixer RAW" value="0"/>
|
<ctl name="BT_RX Mixer RAW" value="0"/>
|
||||||
|
<ctl name="BT_RX Mixer IMSV" value="0"/>
|
||||||
|
|
||||||
<ctl name="INCALL_RX Mixer EP1" value="0"/>
|
<ctl name="INCALL_RX Mixer EP1" value="0"/>
|
||||||
<ctl name="INCALL_RX Mixer EP2" value="0"/>
|
<ctl name="INCALL_RX Mixer EP2" value="0"/>
|
||||||
|
@ -516,15 +519,15 @@
|
||||||
</path>
|
</path>
|
||||||
|
|
||||||
<path name="immersive-playbackP">
|
<path name="immersive-playbackP">
|
||||||
<ctl name="TDM_0_RX Mixer EP4" value="1"/>
|
<ctl name="TDM_0_RX Mixer IMSV" value="1"/>
|
||||||
</path>
|
</path>
|
||||||
|
|
||||||
<path name="immersive-playbackP bt">
|
<path name="immersive-playbackP bt">
|
||||||
<ctl name="BT_RX Mixer EP4" value="1"/>
|
<ctl name="BT_RX Mixer IMSV" value="1"/>
|
||||||
</path>
|
</path>
|
||||||
|
|
||||||
<path name="immersive-playbackP usb-headphone">
|
<path name="immersive-playbackP usb-headphone">
|
||||||
<ctl name="USB_RX Mixer EP4" value="1"/>
|
<ctl name="USB_RX Mixer IMSV" value="1"/>
|
||||||
</path>
|
</path>
|
||||||
|
|
||||||
<path name="voip-playbackP">
|
<path name="voip-playbackP">
|
||||||
|
|
|
@ -55,7 +55,7 @@ PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
PRODUCT_PROPERTY_OVERRIDES += \
|
PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
ro.bluetooth.a2dp_offload.supported=true \
|
ro.bluetooth.a2dp_offload.supported=true \
|
||||||
persist.bluetooth.a2dp_offload.disabled=false \
|
persist.bluetooth.a2dp_offload.disabled=false \
|
||||||
persist.bluetooth.a2dp_offload.cap=sbc-aac-aptx-aptxhd-ldac
|
persist.bluetooth.a2dp_offload.cap=sbc-aac-aptx-aptxhd-ldac-opus
|
||||||
PRODUCT_PRODUCT_PROPERTIES += \
|
PRODUCT_PRODUCT_PROPERTIES += \
|
||||||
persist.bluetooth.firmware.selection="BTFW.hcd"
|
persist.bluetooth.firmware.selection="BTFW.hcd"
|
||||||
|
|
||||||
|
|
|
@ -104,6 +104,22 @@ PRODUCT_SOONG_NAMESPACES += device/google/tangorpro/powerstats
|
||||||
# Bluetooth HAL and Pixel extension
|
# Bluetooth HAL and Pixel extension
|
||||||
include device/google/tangorpro/bluetooth/syna_default.mk
|
include device/google/tangorpro/bluetooth/syna_default.mk
|
||||||
|
|
||||||
|
# Spatial Audio
|
||||||
|
PRODUCT_PACKAGES += \
|
||||||
|
libspatialaudio
|
||||||
|
|
||||||
|
# optimize spatializer effect
|
||||||
|
PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
|
audio.spatializer.effect.util_clamp_min=300
|
||||||
|
|
||||||
|
# declare use of spatial audio
|
||||||
|
PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
|
ro.audio.spatializer_enabled=true
|
||||||
|
|
||||||
|
# Bluetooth OPUS codec
|
||||||
|
PRODUCT_PRODUCT_PROPERTIES += \
|
||||||
|
persist.bluetooth.opus.enabled=true
|
||||||
|
|
||||||
# Keymaster HAL
|
# Keymaster HAL
|
||||||
#LOCAL_KEYMASTER_PRODUCT_PACKAGE ?= android.hardware.keymaster@4.1-service
|
#LOCAL_KEYMASTER_PRODUCT_PACKAGE ?= android.hardware.keymaster@4.1-service
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue