audio: add VoIP RX/TX
Bug: 165755752
Test: Build pass
Signed-off-by: Carter Hsu <carterhsu@google.com>
Change-Id: I1393c55447b50dbff8ad590e48b9046a7f4ecc7d
diff --git a/audio/oriole/config/audio_platform_configuration.xml b/audio/oriole/config/audio_platform_configuration.xml
index ee21759..5ea3ce9 100644
--- a/audio/oriole/config/audio_platform_configuration.xml
+++ b/audio/oriole/config/audio_platform_configuration.xml
@@ -124,9 +124,13 @@
<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 -->
<usecase id="UC_HAPTIC_AUDIO" dev1="2" dev2="7" period="10" period_num="4"/>
+ <!-- for VOIP output, 4 * 10ms buffer -->
+ <usecase id="UC_VOIP_PLAYBACK" dev1="16" dyn_path="true" dsp_vol="true" mmap="false" period="10" period_num="4"/>
<!-- for input -->
<usecase id="UC_AUDIO_RECORD" dev1="8" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="4"/>
<usecase id="UC_HOSTLESS_UL" dev1="15"/>
+ <!-- for VOIP input, 4 * 10ms buffer -->
+ <usecase id="UC_VOIP_RECORD" dev1="17" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="4"/>
</usecase_attr>
<dsp_latency>
@@ -179,6 +183,10 @@
<item component="TUNING_COMPONENT_CAMCORDER" id="6"/>
</xlate_id>
+ <voip_db_mapping>
+ <voip_path id="VOIP_RX_USB" value="0.01,0.02,0.04,0.1,0.21,0.47,1.0"/>
+ </voip_db_mapping>
+
<device_handle>
<hadnler libname="audio_bt_aoc.so"/>
</device_handle>
diff --git a/audio/oriole/config/audio_policy_configuration.xml b/audio/oriole/config/audio_policy_configuration.xml
index c78d142..983c799 100644
--- a/audio/oriole/config/audio_policy_configuration.xml
+++ b/audio/oriole/config/audio_policy_configuration.xml
@@ -72,6 +72,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
</mixPort>
+ <mixPort name="voip_rx" role="source"
+ flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
@@ -92,6 +97,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
+ <mixPort name="voip_tx" role="sink"
+ flags="AUDIO_INPUT_FLAG_VOIP_TX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ </mixPort>
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -154,34 +164,36 @@
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Speaker"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Speaker Safe"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Earpiece"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT A2DP Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT A2DP Headphones"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT A2DP Speaker"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Device Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Headset Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Headset"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Car Kit"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
<route type="mix" sink="primary input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hotword input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
<route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
- <route type="mix" sink="BT A2DP Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT A2DP Headphones"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT A2DP Speaker"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="USB Device Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="USB Headset Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Headset"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Car Kit"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+ <route type="mix" sink="voip_tx"
+ sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
</routes>
</module>
<!-- Bluetooth Audio HAL -->
diff --git a/audio/oriole/config/audio_policy_configuration_a2dp_offload_disabled.xml b/audio/oriole/config/audio_policy_configuration_a2dp_offload_disabled.xml
index b0ddcdf..4cd8de5 100644
--- a/audio/oriole/config/audio_policy_configuration_a2dp_offload_disabled.xml
+++ b/audio/oriole/config/audio_policy_configuration_a2dp_offload_disabled.xml
@@ -72,6 +72,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
</mixPort>
+ <mixPort name="voip_rx" role="source"
+ flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
@@ -92,6 +97,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
+ <mixPort name="voip_tx" role="sink"
+ flags="AUDIO_INPUT_FLAG_VOIP_TX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ </mixPort>
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -139,28 +149,30 @@
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Speaker"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Speaker Safe"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Earpiece"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Device Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Headset Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Headset"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Car Kit"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
<route type="mix" sink="primary input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hotword input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
<route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
- <route type="mix" sink="USB Device Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="USB Headset Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Headset"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Car Kit"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+ <route type="mix" sink="voip_tx"
+ sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
</routes>
</module>
<!-- Bluetooth Audio HAL -->
diff --git a/audio/oriole/config/audio_policy_configuration_bluetooth_legacy_hal.xml b/audio/oriole/config/audio_policy_configuration_bluetooth_legacy_hal.xml
index b42f3e2..1369d85 100644
--- a/audio/oriole/config/audio_policy_configuration_bluetooth_legacy_hal.xml
+++ b/audio/oriole/config/audio_policy_configuration_bluetooth_legacy_hal.xml
@@ -72,6 +72,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
</mixPort>
+ <mixPort name="voip_rx" role="source"
+ flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
@@ -92,6 +97,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
+ <mixPort name="voip_tx" role="sink"
+ flags="AUDIO_INPUT_FLAG_VOIP_TX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ </mixPort>
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -139,28 +149,30 @@
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Speaker"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Speaker Safe"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Earpiece"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Device Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Headset Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Headset"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Car Kit"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
<route type="mix" sink="primary input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hotword input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
<route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
- <route type="mix" sink="USB Device Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="USB Headset Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Headset"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Car Kit"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+ <route type="mix" sink="voip_tx"
+ sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
</routes>
</module>
<!-- A2dp Audio HAL -->
diff --git a/audio/oriole/config/mixer_paths.xml b/audio/oriole/config/mixer_paths.xml
index a029f01..e7bb63e 100644
--- a/audio/oriole/config/mixer_paths.xml
+++ b/audio/oriole/config/mixer_paths.xml
@@ -26,6 +26,9 @@
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<mixer>
<!-- Initial default value of ALSA command -->
+ <!-- PCM timeout -->
+ <ctl name="PCM Stream Wait Time in MSec" value="500"/>
+
<!-- TDM 0 setting -->
<ctl name="TDM_0_RX Chan" value="Four"/>
<ctl name="TDM_0_RX Format" value="S32_LE"/>
@@ -98,6 +101,7 @@
<ctl name="TDM_0_RX Mixer EP7" value="0"/>
<ctl name="TDM_0_RX Mixer EP8" value="0"/>
<ctl name="TDM_0_RX Mixer NoHost1" value="0"/>
+ <ctl name="TDM_0_RX Mixer VOIP" value="0"/>
<ctl name="TDM_1_RX Mixer EP1" value="0"/>
<ctl name="TDM_1_RX Mixer EP2" value="0"/>
@@ -117,6 +121,7 @@
<ctl name="USB_RX Mixer EP6" value="0"/>
<ctl name="USB_RX Mixer EP7" value="0"/>
<ctl name="USB_RX Mixer NoHost1" value="0"/>
+ <ctl name="USB_RX Mixer VOIP" value="0"/>
<ctl name="BT_RX Mixer EP1" value="0"/>
<ctl name="BT_RX Mixer EP2" value="0"/>
@@ -126,6 +131,7 @@
<ctl name="BT_RX Mixer EP6" value="0"/>
<ctl name="BT_RX Mixer EP7" value="0"/>
<ctl name="BT_RX Mixer NoHost1" value="0"/>
+ <ctl name="BT_RX Mixer VOIP" value="0"/>
<ctl name="INCALL_RX Mixer EP1" value="0"/>
<ctl name="INCALL_RX Mixer EP2" value="0"/>
@@ -163,6 +169,7 @@
<ctl name="EP5 TX Mixer INTERNAL_MIC_TX" value="0"/>
<ctl name="EP6 TX Mixer INTERNAL_MIC_TX" value="0"/>
<ctl name="NoHost1 TX Mixer INTERNAL_MIC_TX" value="0"/>
+ <ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="0"/>
<ctl name="EP1 TX Mixer BT_TX" value="0"/>
<ctl name="EP2 TX Mixer BT_TX" value="0"/>
@@ -171,6 +178,7 @@
<ctl name="EP5 TX Mixer BT_TX" value="0"/>
<ctl name="EP6 TX Mixer BT_TX" value="0"/>
<ctl name="NoHost1 TX Mixer BT_TX" value="0"/>
+ <ctl name="VOIP TX Mixer BT_TX" value="0"/>
<ctl name="EP1 TX Mixer USB_TX" value="0"/>
<ctl name="EP2 TX Mixer USB_TX" value="0"/>
@@ -179,6 +187,7 @@
<ctl name="EP5 TX Mixer USB_TX" value="0"/>
<ctl name="EP6 TX Mixer USB_TX" value="0"/>
<ctl name="NoHost1 TX Mixer USB_TX" value="0"/>
+ <ctl name="VOIP TX Mixer USB_TX" value="0"/>
<ctl name="EP1 TX Mixer INCALL_TX" value="0"/>
<ctl name="EP2 TX Mixer INCALL_TX" value="0"/>
@@ -320,15 +329,6 @@
<ctl name="USB_RX Mixer EP6" value="1"/>
</path>
- <path name="deep-buffer-playbackP usb-tty-full">
- </path>
-
- <path name="deep-buffer-playbackP usb-tty-hco">
- </path>
-
- <path name="deep-buffer-playbackP usb-tty-vco">
- </path>
-
<path name="deep-buffer-playbackP hearing-aid">
</path>
@@ -356,15 +356,6 @@
<ctl name="USB_RX Mixer EP2" value="1"/>
</path>
- <path name="low-latency-playbackP usb-tty-full">
- </path>
-
- <path name="low-latency-playbackP usb-tty-hco">
- </path>
-
- <path name="low-latency-playbackP usb-tty-vco">
- </path>
-
<path name="low-latency-playbackP hearing-aid">
</path>
@@ -392,15 +383,6 @@
<ctl name="USB_RX Mixer EP4" value="1"/>
</path>
- <path name="raw-playbackP usb-tty-full">
- </path>
-
- <path name="raw-playbackP usb-tty-hco">
- </path>
-
- <path name="raw-playbackP usb-tty-vco">
- </path>
-
<path name="raw-playbackP hearing-aid">
</path>
@@ -470,38 +452,23 @@
<ctl name="USB_RX Mixer EP7" value="1"/>
</path>
- <path name="compress-offload-playbackP usb-tty-full">
- </path>
-
- <path name="compress-offload-playbackP usb-tty-hco">
- </path>
-
- <path name="compress-offload-playbackP usb-tty-vco">
- </path>
-
<path name="compress-offload-playbackP hearing-aid">
<path name="compress-offload-playback" />
</path>
<path name="voip-playbackP">
+ <ctl name="TDM_0_RX Mixer VOIP" value="1"/>
</path>
<path name="voip-playbackP hac-handset">
</path>
<path name="voip-playbackP bt">
+ <ctl name="BT_RX Mixer VOIP" value="1"/>
</path>
<path name="voip-playbackP usb-headphone">
- </path>
-
- <path name="voip-playbackP usb-tty-full">
- </path>
-
- <path name="voip-playbackP usb-tty-hco">
- </path>
-
- <path name="voip-playbackP usb-tty-vco">
+ <ctl name="USB_RX Mixer VOIP" value="1"/>
</path>
<path name="voip-playbackP hearing-aid">
@@ -548,31 +515,16 @@
<ctl name="EP1 TX Mixer BT_TX" value="1"/>
</path>
- <path name="audio-recordC usb-tty-full-mic">
- </path>
-
- <path name="audio-recordC usb-tty-hco-mic">
- </path>
-
- <path name="audio-recordC usb-tty-vco-mic">
- </path>
-
<path name="voip-recordC">
+ <ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="1"/>
</path>
<path name="voip-recordC usb-headset-mic">
+ <ctl name="VOIP TX Mixer USB_TX" value="1"/>
</path>
<path name="voip-recordC bt-mic">
- </path>
-
- <path name="voip-recordC usb-tty-full-mic">
- </path>
-
- <path name="voip-recordC usb-tty-hco-mic">
- </path>
-
- <path name="voip-recordC usb-tty-vco-mic">
+ <ctl name="VOIP TX Mixer BT_TX" value="1"/>
</path>
<!-- voice-call dynamic route -->
@@ -588,15 +540,6 @@
<ctl name="USB_RX Mixer EP5" value="1"/>
</path>
- <path name="voice-callP usb-tty-full">
- </path>
-
- <path name="voice-callP usb-tty-hco">
- </path>
-
- <path name="voice-callP usb-tty-vco">
- </path>
-
<path name="voice-callP hearing-aid">
<ctl name="INCALL_RX Mixer EP5" value="1"/>
</path>
@@ -618,15 +561,6 @@
<ctl name="EP4 TX Mixer BT_TX" value="1"/>
</path>
- <path name="voice-callC usb-tty-full-mic">
- </path>
-
- <path name="voice-callC usb-tty-hco-mic">
- </path>
-
- <path name="voice-callC usb-tty-vco-mic">
- </path>
-
<path name="voice-callC hearing-aid">
<ctl name="EP4 TX Mixer INCALL_TX" value="1"/>
</path>
diff --git a/audio/raven/config/audio_platform_configuration.xml b/audio/raven/config/audio_platform_configuration.xml
index ee21759..5ea3ce9 100644
--- a/audio/raven/config/audio_platform_configuration.xml
+++ b/audio/raven/config/audio_platform_configuration.xml
@@ -124,9 +124,13 @@
<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 -->
<usecase id="UC_HAPTIC_AUDIO" dev1="2" dev2="7" period="10" period_num="4"/>
+ <!-- for VOIP output, 4 * 10ms buffer -->
+ <usecase id="UC_VOIP_PLAYBACK" dev1="16" dyn_path="true" dsp_vol="true" mmap="false" period="10" period_num="4"/>
<!-- for input -->
<usecase id="UC_AUDIO_RECORD" dev1="8" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="4"/>
<usecase id="UC_HOSTLESS_UL" dev1="15"/>
+ <!-- for VOIP input, 4 * 10ms buffer -->
+ <usecase id="UC_VOIP_RECORD" dev1="17" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="4"/>
</usecase_attr>
<dsp_latency>
@@ -179,6 +183,10 @@
<item component="TUNING_COMPONENT_CAMCORDER" id="6"/>
</xlate_id>
+ <voip_db_mapping>
+ <voip_path id="VOIP_RX_USB" value="0.01,0.02,0.04,0.1,0.21,0.47,1.0"/>
+ </voip_db_mapping>
+
<device_handle>
<hadnler libname="audio_bt_aoc.so"/>
</device_handle>
diff --git a/audio/raven/config/audio_policy_configuration.xml b/audio/raven/config/audio_policy_configuration.xml
index c78d142..983c799 100644
--- a/audio/raven/config/audio_policy_configuration.xml
+++ b/audio/raven/config/audio_policy_configuration.xml
@@ -72,6 +72,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
</mixPort>
+ <mixPort name="voip_rx" role="source"
+ flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
@@ -92,6 +97,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
+ <mixPort name="voip_tx" role="sink"
+ flags="AUDIO_INPUT_FLAG_VOIP_TX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ </mixPort>
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -154,34 +164,36 @@
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Speaker"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Speaker Safe"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Earpiece"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT A2DP Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT A2DP Headphones"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT A2DP Speaker"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Device Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Headset Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Headset"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Car Kit"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
<route type="mix" sink="primary input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hotword input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
<route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
- <route type="mix" sink="BT A2DP Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT A2DP Headphones"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT A2DP Speaker"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="USB Device Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="USB Headset Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Headset"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Car Kit"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+ <route type="mix" sink="voip_tx"
+ sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
</routes>
</module>
<!-- Bluetooth Audio HAL -->
diff --git a/audio/raven/config/audio_policy_configuration_a2dp_offload_disabled.xml b/audio/raven/config/audio_policy_configuration_a2dp_offload_disabled.xml
index b0ddcdf..4cd8de5 100644
--- a/audio/raven/config/audio_policy_configuration_a2dp_offload_disabled.xml
+++ b/audio/raven/config/audio_policy_configuration_a2dp_offload_disabled.xml
@@ -72,6 +72,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
</mixPort>
+ <mixPort name="voip_rx" role="source"
+ flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
@@ -92,6 +97,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
+ <mixPort name="voip_tx" role="sink"
+ flags="AUDIO_INPUT_FLAG_VOIP_TX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ </mixPort>
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -139,28 +149,30 @@
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Speaker"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Speaker Safe"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Earpiece"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Device Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Headset Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Headset"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Car Kit"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
<route type="mix" sink="primary input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hotword input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
<route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
- <route type="mix" sink="USB Device Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="USB Headset Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Headset"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Car Kit"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+ <route type="mix" sink="voip_tx"
+ sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
</routes>
</module>
<!-- Bluetooth Audio HAL -->
diff --git a/audio/raven/config/audio_policy_configuration_bluetooth_legacy_hal.xml b/audio/raven/config/audio_policy_configuration_bluetooth_legacy_hal.xml
index b42f3e2..1369d85 100644
--- a/audio/raven/config/audio_policy_configuration_bluetooth_legacy_hal.xml
+++ b/audio/raven/config/audio_policy_configuration_bluetooth_legacy_hal.xml
@@ -72,6 +72,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
</mixPort>
+ <mixPort name="voip_rx" role="source"
+ flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
@@ -92,6 +97,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
+ <mixPort name="voip_tx" role="sink"
+ flags="AUDIO_INPUT_FLAG_VOIP_TX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ </mixPort>
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -139,28 +149,30 @@
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Speaker"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Speaker Safe"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Earpiece"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Device Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Headset Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Headset"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Car Kit"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
<route type="mix" sink="primary input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hotword input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
<route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
- <route type="mix" sink="USB Device Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="USB Headset Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Headset"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Car Kit"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+ <route type="mix" sink="voip_tx"
+ sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
</routes>
</module>
<!-- A2dp Audio HAL -->
diff --git a/audio/raven/config/mixer_paths.xml b/audio/raven/config/mixer_paths.xml
index 5f7cb59..d32e122 100644
--- a/audio/raven/config/mixer_paths.xml
+++ b/audio/raven/config/mixer_paths.xml
@@ -26,6 +26,9 @@
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<mixer>
<!-- Initial default value of ALSA command -->
+ <!-- PCM timeout -->
+ <ctl name="PCM Stream Wait Time in MSec" value="500"/>
+
<!-- TDM 0 setting -->
<ctl name="TDM_0_RX Chan" value="Four"/>
<ctl name="TDM_0_RX Format" value="S32_LE"/>
@@ -98,6 +101,7 @@
<ctl name="TDM_0_RX Mixer EP7" value="0"/>
<ctl name="TDM_0_RX Mixer EP8" value="0"/>
<ctl name="TDM_0_RX Mixer NoHost1" value="0"/>
+ <ctl name="TDM_0_RX Mixer VOIP" value="0"/>
<ctl name="TDM_1_RX Mixer EP1" value="0"/>
<ctl name="TDM_1_RX Mixer EP2" value="0"/>
@@ -117,6 +121,7 @@
<ctl name="USB_RX Mixer EP6" value="0"/>
<ctl name="USB_RX Mixer EP7" value="0"/>
<ctl name="USB_RX Mixer NoHost1" value="0"/>
+ <ctl name="USB_RX Mixer VOIP" value="0"/>
<ctl name="BT_RX Mixer EP1" value="0"/>
<ctl name="BT_RX Mixer EP2" value="0"/>
@@ -126,6 +131,7 @@
<ctl name="BT_RX Mixer EP6" value="0"/>
<ctl name="BT_RX Mixer EP7" value="0"/>
<ctl name="BT_RX Mixer NoHost1" value="0"/>
+ <ctl name="BT_RX Mixer VOIP" value="0"/>
<ctl name="INCALL_RX Mixer EP1" value="0"/>
<ctl name="INCALL_RX Mixer EP2" value="0"/>
@@ -163,6 +169,7 @@
<ctl name="EP5 TX Mixer INTERNAL_MIC_TX" value="0"/>
<ctl name="EP6 TX Mixer INTERNAL_MIC_TX" value="0"/>
<ctl name="NoHost1 TX Mixer INTERNAL_MIC_TX" value="0"/>
+ <ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="0"/>
<ctl name="EP1 TX Mixer BT_TX" value="0"/>
<ctl name="EP2 TX Mixer BT_TX" value="0"/>
@@ -171,6 +178,7 @@
<ctl name="EP5 TX Mixer BT_TX" value="0"/>
<ctl name="EP6 TX Mixer BT_TX" value="0"/>
<ctl name="NoHost1 TX Mixer BT_TX" value="0"/>
+ <ctl name="VOIP TX Mixer BT_TX" value="0"/>
<ctl name="EP1 TX Mixer USB_TX" value="0"/>
<ctl name="EP2 TX Mixer USB_TX" value="0"/>
@@ -179,6 +187,7 @@
<ctl name="EP5 TX Mixer USB_TX" value="0"/>
<ctl name="EP6 TX Mixer USB_TX" value="0"/>
<ctl name="NoHost1 TX Mixer USB_TX" value="0"/>
+ <ctl name="VOIP TX Mixer USB_TX" value="0"/>
<ctl name="EP4 TX Mixer I2S_2_TX" value="0"/>
@@ -470,38 +479,23 @@
<ctl name="USB_RX Mixer EP7" value="1"/>
</path>
- <path name="compress-offload-playbackP usb-tty-full">
- </path>
-
- <path name="compress-offload-playbackP usb-tty-hco">
- </path>
-
- <path name="compress-offload-playbackP usb-tty-vco">
- </path>
-
<path name="compress-offload-playbackP hearing-aid">
<path name="compress-offload-playback" />
</path>
<path name="voip-playbackP">
+ <ctl name="TDM_0_RX Mixer VOIP" value="1"/>
</path>
<path name="voip-playbackP hac-handset">
</path>
<path name="voip-playbackP bt">
+ <ctl name="BT_RX Mixer VOIP" value="1"/>
</path>
<path name="voip-playbackP usb-headphone">
- </path>
-
- <path name="voip-playbackP usb-tty-full">
- </path>
-
- <path name="voip-playbackP usb-tty-hco">
- </path>
-
- <path name="voip-playbackP usb-tty-vco">
+ <ctl name="USB_RX Mixer VOIP" value="1"/>
</path>
<path name="voip-playbackP hearing-aid">
@@ -548,31 +542,16 @@
<ctl name="EP1 TX Mixer BT_TX" value="1"/>
</path>
- <path name="audio-recordC usb-tty-full-mic">
- </path>
-
- <path name="audio-recordC usb-tty-hco-mic">
- </path>
-
- <path name="audio-recordC usb-tty-vco-mic">
- </path>
-
<path name="voip-recordC">
+ <ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="1"/>
</path>
<path name="voip-recordC usb-headset-mic">
+ <ctl name="VOIP TX Mixer USB_TX" value="1"/>
</path>
<path name="voip-recordC bt-mic">
- </path>
-
- <path name="voip-recordC usb-tty-full-mic">
- </path>
-
- <path name="voip-recordC usb-tty-hco-mic">
- </path>
-
- <path name="voip-recordC usb-tty-vco-mic">
+ <ctl name="VOIP TX Mixer BT_TX" value="1"/>
</path>
<!-- voice-call dynamic route -->
@@ -588,15 +567,6 @@
<ctl name="USB_RX Mixer EP5" value="1"/>
</path>
- <path name="voice-callP usb-tty-full">
- </path>
-
- <path name="voice-callP usb-tty-hco">
- </path>
-
- <path name="voice-callP usb-tty-vco">
- </path>
-
<path name="voice-callP hearing-aid">
<ctl name="INCALL_RX Mixer EP5" value="1"/>
</path>
@@ -618,15 +588,6 @@
<ctl name="EP4 TX Mixer BT_TX" value="1"/>
</path>
- <path name="voice-callC usb-tty-full-mic">
- </path>
-
- <path name="voice-callC usb-tty-hco-mic">
- </path>
-
- <path name="voice-callC usb-tty-vco-mic">
- </path>
-
<path name="voice-callC hearing-aid">
<ctl name="EP4 TX Mixer INCALL_TX" value="1"/>
</path>
diff --git a/audio/slider/config/audio_platform_configuration.xml b/audio/slider/config/audio_platform_configuration.xml
index d903af4..e151158 100644
--- a/audio/slider/config/audio_platform_configuration.xml
+++ b/audio/slider/config/audio_platform_configuration.xml
@@ -124,9 +124,13 @@
<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 -->
<usecase id="UC_HAPTIC_AUDIO" dev1="2" dev2="7" period="10" period_num="4"/>
+ <!-- for VOIP output, 4 * 10ms buffer -->
+ <usecase id="UC_VOIP_PLAYBACK" dev1="16" dyn_path="true" dsp_vol="true" mmap="false" period="10" period_num="4"/>
<!-- for input -->
<usecase id="UC_AUDIO_RECORD" dev1="8" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="4"/>
<usecase id="UC_HOSTLESS_UL" dev1="15"/>
+ <!-- for VOIP input, 4 * 10ms buffer -->
+ <usecase id="UC_VOIP_RECORD" dev1="17" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="4"/>
</usecase_attr>
<dsp_latency>
@@ -179,6 +183,10 @@
<item component="TUNING_COMPONENT_CAMCORDER" id="6"/>
</xlate_id>
+ <voip_db_mapping>
+ <voip_path id="VOIP_RX_USB" value="0.01,0.02,0.04,0.1,0.21,0.47,1.0"/>
+ </voip_db_mapping>
+
<device_handle>
<hadnler libname="audio_bt_aoc.so"/>
</device_handle>
diff --git a/audio/slider/config/audio_policy_configuration.xml b/audio/slider/config/audio_policy_configuration.xml
index c78d142..983c799 100644
--- a/audio/slider/config/audio_policy_configuration.xml
+++ b/audio/slider/config/audio_policy_configuration.xml
@@ -72,6 +72,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
</mixPort>
+ <mixPort name="voip_rx" role="source"
+ flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
@@ -92,6 +97,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
+ <mixPort name="voip_tx" role="sink"
+ flags="AUDIO_INPUT_FLAG_VOIP_TX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ </mixPort>
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -154,34 +164,36 @@
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Speaker"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Speaker Safe"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Earpiece"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT A2DP Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT A2DP Headphones"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT A2DP Speaker"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Device Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Headset Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Headset"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Car Kit"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
<route type="mix" sink="primary input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hotword input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
<route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
- <route type="mix" sink="BT A2DP Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT A2DP Headphones"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT A2DP Speaker"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="USB Device Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="USB Headset Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Headset"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Car Kit"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+ <route type="mix" sink="voip_tx"
+ sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
</routes>
</module>
<!-- Bluetooth Audio HAL -->
diff --git a/audio/slider/config/audio_policy_configuration_a2dp_offload_disabled.xml b/audio/slider/config/audio_policy_configuration_a2dp_offload_disabled.xml
index b0ddcdf..4cd8de5 100644
--- a/audio/slider/config/audio_policy_configuration_a2dp_offload_disabled.xml
+++ b/audio/slider/config/audio_policy_configuration_a2dp_offload_disabled.xml
@@ -72,6 +72,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
</mixPort>
+ <mixPort name="voip_rx" role="source"
+ flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
@@ -92,6 +97,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
+ <mixPort name="voip_tx" role="sink"
+ flags="AUDIO_INPUT_FLAG_VOIP_TX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ </mixPort>
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -139,28 +149,30 @@
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Speaker"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Speaker Safe"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Earpiece"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Device Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Headset Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Headset"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Car Kit"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
<route type="mix" sink="primary input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hotword input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
<route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
- <route type="mix" sink="USB Device Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="USB Headset Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Headset"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Car Kit"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+ <route type="mix" sink="voip_tx"
+ sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
</routes>
</module>
<!-- Bluetooth Audio HAL -->
diff --git a/audio/slider/config/audio_policy_configuration_bluetooth_legacy_hal.xml b/audio/slider/config/audio_policy_configuration_bluetooth_legacy_hal.xml
index b42f3e2..1369d85 100644
--- a/audio/slider/config/audio_policy_configuration_bluetooth_legacy_hal.xml
+++ b/audio/slider/config/audio_policy_configuration_bluetooth_legacy_hal.xml
@@ -72,6 +72,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
</mixPort>
+ <mixPort name="voip_rx" role="source"
+ flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
@@ -92,6 +97,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
+ <mixPort name="voip_tx" role="sink"
+ flags="AUDIO_INPUT_FLAG_VOIP_TX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ </mixPort>
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -139,28 +149,30 @@
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Speaker"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Speaker Safe"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Earpiece"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Device Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Headset Out"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Headset"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Car Kit"
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
<route type="mix" sink="primary input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hotword input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
<route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
- <route type="mix" sink="USB Device Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="USB Headset Out"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Headset"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Car Kit"
- sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+ <route type="mix" sink="voip_tx"
+ sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
</routes>
</module>
<!-- A2dp Audio HAL -->
diff --git a/audio/slider/config/mixer_paths.xml b/audio/slider/config/mixer_paths.xml
index 460cb39..4b47887 100644
--- a/audio/slider/config/mixer_paths.xml
+++ b/audio/slider/config/mixer_paths.xml
@@ -26,6 +26,9 @@
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<mixer>
<!-- Initial default value of ALSA command -->
+ <!-- PCM timeout -->
+ <ctl name="PCM Stream Wait Time in MSec" value="500"/>
+
<!-- TDM 0 setting -->
<ctl name="TDM_0_RX Chan" value="Four"/>
<ctl name="TDM_0_RX Format" value="S32_LE"/>
@@ -91,6 +94,7 @@
<ctl name="TDM_0_RX Mixer EP6" value="0"/>
<ctl name="TDM_0_RX Mixer EP7" value="0"/>
<ctl name="TDM_0_RX Mixer EP8" value="0"/>
+ <ctl name="TDM_0_RX Mixer VOIP" value="0"/>
<ctl name="TDM_1_RX Mixer EP1" value="0"/>
<ctl name="TDM_1_RX Mixer EP2" value="0"/>
@@ -104,6 +108,7 @@
<ctl name="USB_RX Mixer EP6" value="0"/>
<ctl name="USB_RX Mixer EP7" value="0"/>
<ctl name="USB_RX Mixer NoHost1" value="0"/>
+ <ctl name="USB_RX Mixer VOIP" value="0"/>
<ctl name="BT_RX Mixer EP1" value="0"/>
<ctl name="BT_RX Mixer EP2" value="0"/>
@@ -113,6 +118,7 @@
<ctl name="BT_RX Mixer EP6" value="0"/>
<ctl name="BT_RX Mixer EP7" value="0"/>
<ctl name="BT_RX Mixer NoHost1" value="0"/>
+ <ctl name="BT_RX Mixer VOIP" value="0"/>
<ctl name="INCALL_RX Mixer EP1" value="0"/>
<ctl name="INCALL_RX Mixer EP2" value="0"/>
@@ -127,8 +133,15 @@
<ctl name="EP2 TX Mixer TDM_0_TX" value="0"/>
<ctl name="EP4 TX Mixer TDM_0_TX" value="0"/>
<ctl name="EP4 TX Mixer I2S_2_TX" value="0"/>
+
<ctl name="EP1 TX Mixer INTERNAL_MIC_TX" value="0"/>
+ <ctl name="EP2 TX Mixer INTERNAL_MIC_TX" value="0"/>
+ <ctl name="EP3 TX Mixer INTERNAL_MIC_TX" value="0"/>
<ctl name="EP4 TX Mixer INTERNAL_MIC_TX" value="0"/>
+ <ctl name="EP5 TX Mixer INTERNAL_MIC_TX" value="0"/>
+ <ctl name="EP6 TX Mixer INTERNAL_MIC_TX" value="0"/>
+ <ctl name="NoHost1 TX Mixer INTERNAL_MIC_TX" value="0"/>
+ <ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="0"/>
<ctl name="EP1 TX Mixer BT_TX" value="0"/>
<ctl name="EP2 TX Mixer BT_TX" value="0"/>
@@ -137,6 +150,7 @@
<ctl name="EP5 TX Mixer BT_TX" value="0"/>
<ctl name="EP6 TX Mixer BT_TX" value="0"/>
<ctl name="NoHost1 TX Mixer BT_TX" value="0"/>
+ <ctl name="VOIP TX Mixer BT_TX" value="0"/>
<ctl name="EP1 TX Mixer USB_TX" value="0"/>
<ctl name="EP2 TX Mixer USB_TX" value="0"/>
@@ -145,6 +159,7 @@
<ctl name="EP5 TX Mixer USB_TX" value="0"/>
<ctl name="EP6 TX Mixer USB_TX" value="0"/>
<ctl name="NoHost1 TX Mixer USB_TX" value="0"/>
+ <ctl name="VOIP TX Mixer USB_TX" value="0"/>
<ctl name="EP1 TX Mixer INCALL_TX" value="0"/>
<ctl name="EP2 TX Mixer INCALL_TX" value="0"/>
@@ -284,15 +299,6 @@
<ctl name="USB_RX Mixer EP6" value="1"/>
</path>
- <path name="deep-buffer-playbackP usb-tty-full">
- </path>
-
- <path name="deep-buffer-playbackP usb-tty-hco">
- </path>
-
- <path name="deep-buffer-playbackP usb-tty-vco">
- </path>
-
<path name="deep-buffer-playbackP hearing-aid">
</path>
@@ -320,15 +326,6 @@
<ctl name="USB_RX Mixer EP2" value="1"/>
</path>
- <path name="low-latency-playbackP usb-tty-full">
- </path>
-
- <path name="low-latency-playbackP usb-tty-hco">
- </path>
-
- <path name="low-latency-playbackP usb-tty-vco">
- </path>
-
<path name="low-latency-playbackP hearing-aid">
</path>
@@ -356,15 +353,6 @@
<ctl name="USB_RX Mixer EP4" value="1"/>
</path>
- <path name="raw-playbackP usb-tty-full">
- </path>
-
- <path name="raw-playbackP usb-tty-hco">
- </path>
-
- <path name="raw-playbackP usb-tty-vco">
- </path>
-
<path name="raw-playbackP hearing-aid">
</path>
@@ -434,38 +422,23 @@
<ctl name="USB_RX Mixer EP7" value="1"/>
</path>
- <path name="compress-offload-playbackP usb-tty-full">
- </path>
-
- <path name="compress-offload-playbackP usb-tty-hco">
- </path>
-
- <path name="compress-offload-playbackP usb-tty-vco">
- </path>
-
<path name="compress-offload-playbackP hearing-aid">
<path name="compress-offload-playback" />
</path>
<path name="voip-playbackP">
+ <ctl name="TDM_0_RX Mixer VOIP" value="1"/>
</path>
<path name="voip-playbackP hac-handset">
</path>
<path name="voip-playbackP bt">
+ <ctl name="BT_RX Mixer VOIP" value="1"/>
</path>
<path name="voip-playbackP usb-headphone">
- </path>
-
- <path name="voip-playbackP usb-tty-full">
- </path>
-
- <path name="voip-playbackP usb-tty-hco">
- </path>
-
- <path name="voip-playbackP usb-tty-vco">
+ <ctl name="USB_RX Mixer VOIP" value="1"/>
</path>
<path name="voip-playbackP hearing-aid">
@@ -512,31 +485,16 @@
<ctl name="EP1 TX Mixer BT_TX" value="1"/>
</path>
- <path name="audio-recordC usb-tty-full-mic">
- </path>
-
- <path name="audio-recordC usb-tty-hco-mic">
- </path>
-
- <path name="audio-recordC usb-tty-vco-mic">
- </path>
-
<path name="voip-recordC">
+ <ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="1"/>
</path>
<path name="voip-recordC usb-headset-mic">
+ <ctl name="VOIP TX Mixer USB_TX" value="1"/>
</path>
<path name="voip-recordC bt-mic">
- </path>
-
- <path name="voip-recordC usb-tty-full-mic">
- </path>
-
- <path name="voip-recordC usb-tty-hco-mic">
- </path>
-
- <path name="voip-recordC usb-tty-vco-mic">
+ <ctl name="VOIP TX Mixer BT_TX" value="1"/>
</path>
<!-- voice-call dynamic route -->
@@ -552,15 +510,6 @@
<ctl name="USB_RX Mixer EP5" value="1"/>
</path>
- <path name="voice-callP usb-tty-full">
- </path>
-
- <path name="voice-callP usb-tty-hco">
- </path>
-
- <path name="voice-callP usb-tty-vco">
- </path>
-
<path name="voice-callP hearing-aid">
<ctl name="INCALL_RX Mixer EP5" value="1"/>
</path>
diff --git a/audio/whitefin/config/audio_platform_configuration.xml b/audio/whitefin/config/audio_platform_configuration.xml
index d903af4..e151158 100644
--- a/audio/whitefin/config/audio_platform_configuration.xml
+++ b/audio/whitefin/config/audio_platform_configuration.xml
@@ -124,9 +124,13 @@
<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 -->
<usecase id="UC_HAPTIC_AUDIO" dev1="2" dev2="7" period="10" period_num="4"/>
+ <!-- for VOIP output, 4 * 10ms buffer -->
+ <usecase id="UC_VOIP_PLAYBACK" dev1="16" dyn_path="true" dsp_vol="true" mmap="false" period="10" period_num="4"/>
<!-- for input -->
<usecase id="UC_AUDIO_RECORD" dev1="8" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="4"/>
<usecase id="UC_HOSTLESS_UL" dev1="15"/>
+ <!-- for VOIP input, 4 * 10ms buffer -->
+ <usecase id="UC_VOIP_RECORD" dev1="17" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="4"/>
</usecase_attr>
<dsp_latency>
@@ -179,6 +183,10 @@
<item component="TUNING_COMPONENT_CAMCORDER" id="6"/>
</xlate_id>
+ <voip_db_mapping>
+ <voip_path id="VOIP_RX_USB" value="0.01,0.02,0.04,0.1,0.21,0.47,1.0"/>
+ </voip_db_mapping>
+
<device_handle>
<hadnler libname="audio_bt_aoc.so"/>
</device_handle>
diff --git a/audio/whitefin/config/audio_policy_configuration.xml b/audio/whitefin/config/audio_policy_configuration.xml
index c501061..23f9ae0 100644
--- a/audio/whitefin/config/audio_policy_configuration.xml
+++ b/audio/whitefin/config/audio_policy_configuration.xml
@@ -67,6 +67,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
</mixPort>
+ <mixPort name="voip_rx" role="source"
+ flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
@@ -87,6 +92,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
+ <mixPort name="voip_tx" role="sink"
+ flags="AUDIO_INPUT_FLAG_VOIP_TX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ </mixPort>
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -134,28 +144,30 @@
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Speaker"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Speaker Safe"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Earpiece"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Device Out"
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Headset Out"
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO"
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Headset"
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Car Kit"
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
<route type="mix" sink="primary input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hotword input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
<route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
- <route type="mix" sink="USB Device Out"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="USB Headset Out"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Headset"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Car Kit"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+ <route type="mix" sink="voip_tx"
+ sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
</routes>
</module>
<!-- Bluetooth Audio HAL -->
diff --git a/audio/whitefin/config/audio_policy_configuration_a2dp_offload_disabled.xml b/audio/whitefin/config/audio_policy_configuration_a2dp_offload_disabled.xml
index a83de6d..547af60 100644
--- a/audio/whitefin/config/audio_policy_configuration_a2dp_offload_disabled.xml
+++ b/audio/whitefin/config/audio_policy_configuration_a2dp_offload_disabled.xml
@@ -67,6 +67,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
</mixPort>
+ <mixPort name="voip_rx" role="source"
+ flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
@@ -87,6 +92,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
+ <mixPort name="voip_tx" role="sink"
+ flags="AUDIO_INPUT_FLAG_VOIP_TX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ </mixPort>
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -134,28 +144,30 @@
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Speaker"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Speaker Safe"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Earpiece"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Device Out"
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Headset Out"
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO"
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Headset"
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Car Kit"
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
<route type="mix" sink="primary input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hotword input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
<route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
- <route type="mix" sink="USB Device Out"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="USB Headset Out"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Headset"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Car Kit"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+ <route type="mix" sink="voip_tx"
+ sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
</routes>
</module>
<!-- Bluetooth Audio HAL -->
diff --git a/audio/whitefin/config/audio_policy_configuration_bluetooth_legacy_hal.xml b/audio/whitefin/config/audio_policy_configuration_bluetooth_legacy_hal.xml
index f661328..3a87d2d 100644
--- a/audio/whitefin/config/audio_policy_configuration_bluetooth_legacy_hal.xml
+++ b/audio/whitefin/config/audio_policy_configuration_bluetooth_legacy_hal.xml
@@ -67,6 +67,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO" />
</mixPort>
+ <mixPort name="voip_rx" role="source"
+ flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
@@ -87,6 +92,11 @@
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
+ <mixPort name="voip_tx" role="sink"
+ flags="AUDIO_INPUT_FLAG_VOIP_TX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ </mixPort>
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
@@ -134,28 +144,30 @@
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Speaker"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Speaker Safe"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Earpiece"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Device Out"
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="USB Headset Out"
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO"
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Headset"
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="BT SCO Car Kit"
+ sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
<route type="mix" sink="primary input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="hotword input"
sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
<route type="mix" sink="incall capture" sources="Voice Call And Telephony Rx" />
<route type="mix" sink="voice call rx" sources="Voice Call And Telephony Rx" />
- <route type="mix" sink="USB Device Out"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="USB Headset Out"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Headset"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="BT SCO Car Kit"
- sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out"/>
- <route type="mix" sink="Telephony Tx" sources="incall playback,voice call tx" />
+ <route type="mix" sink="voip_tx"
+ sources="Built-In Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
</routes>
</module>
<!-- A2dp Audio HAL -->
diff --git a/audio/whitefin/config/mixer_paths.xml b/audio/whitefin/config/mixer_paths.xml
index 03a9f5e..d17b895 100644
--- a/audio/whitefin/config/mixer_paths.xml
+++ b/audio/whitefin/config/mixer_paths.xml
@@ -26,6 +26,9 @@
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<mixer>
<!-- Initial default value of ALSA command -->
+ <!-- PCM timeout -->
+ <ctl name="PCM Stream Wait Time in MSec" value="500"/>
+
<!-- TDM 0 setting -->
<ctl name="TDM_0_RX Chan" value="Four"/>
<ctl name="TDM_0_RX Format" value="S32_LE"/>
@@ -99,6 +102,7 @@
<ctl name="TDM_0_RX Mixer EP7" value="0"/>
<ctl name="TDM_0_RX Mixer EP8" value="0"/>
<ctl name="TDM_0_RX Mixer NoHost1" value="0"/>
+ <ctl name="TDM_0_RX Mixer VOIP" value="0"/>
<ctl name="TDM_1_RX Mixer EP1" value="0"/>
<ctl name="TDM_1_RX Mixer EP2" value="0"/>
@@ -118,6 +122,7 @@
<ctl name="USB_RX Mixer EP6" value="0"/>
<ctl name="USB_RX Mixer EP7" value="0"/>
<ctl name="USB_RX Mixer NoHost1" value="0"/>
+ <ctl name="USB_RX Mixer VOIP" value="0"/>
<ctl name="BT_RX Mixer EP1" value="0"/>
<ctl name="BT_RX Mixer EP2" value="0"/>
@@ -127,6 +132,7 @@
<ctl name="BT_RX Mixer EP6" value="0"/>
<ctl name="BT_RX Mixer EP7" value="0"/>
<ctl name="BT_RX Mixer NoHost1" value="0"/>
+ <ctl name="BT_RX Mixer VOIP" value="0"/>
<ctl name="INCALL_RX Mixer EP1" value="0"/>
<ctl name="INCALL_RX Mixer EP2" value="0"/>
@@ -164,6 +170,7 @@
<ctl name="EP5 TX Mixer INTERNAL_MIC_TX" value="0"/>
<ctl name="EP6 TX Mixer INTERNAL_MIC_TX" value="0"/>
<ctl name="NoHost1 TX Mixer INTERNAL_MIC_TX" value="0"/>
+ <ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="0"/>
<ctl name="EP1 TX Mixer BT_TX" value="0"/>
<ctl name="EP2 TX Mixer BT_TX" value="0"/>
@@ -172,6 +179,7 @@
<ctl name="EP5 TX Mixer BT_TX" value="0"/>
<ctl name="EP6 TX Mixer BT_TX" value="0"/>
<ctl name="NoHost1 TX Mixer BT_TX" value="0"/>
+ <ctl name="VOIP TX Mixer BT_TX" value="0"/>
<ctl name="EP1 TX Mixer USB_TX" value="0"/>
<ctl name="EP2 TX Mixer USB_TX" value="0"/>
@@ -180,6 +188,7 @@
<ctl name="EP5 TX Mixer USB_TX" value="0"/>
<ctl name="EP6 TX Mixer USB_TX" value="0"/>
<ctl name="NoHost1 TX Mixer USB_TX" value="0"/>
+ <ctl name="VOIP TX Mixer USB_TX" value="0"/>
<ctl name="EP1 TX Mixer INCALL_TX" value="0"/>
<ctl name="EP2 TX Mixer INCALL_TX" value="0"/>
@@ -485,15 +494,18 @@
</path>
<path name="voip-playbackP">
+ <ctl name="TDM_0_RX Mixer VOIP" value="1"/>
</path>
<path name="voip-playbackP hac-handset">
</path>
<path name="voip-playbackP bt">
+ <ctl name="BT_RX Mixer VOIP" value="1"/>
</path>
<path name="voip-playbackP usb-headphone">
+ <ctl name="USB_RX Mixer VOIP" value="1"/>
</path>
<path name="voip-playbackP usb-tty-full">
@@ -559,12 +571,15 @@
</path>
<path name="voip-recordC">
+ <ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="1"/>
</path>
<path name="voip-recordC usb-headset-mic">
+ <ctl name="VOIP TX Mixer USB_TX" value="1"/>
</path>
<path name="voip-recordC bt-mic">
+ <ctl name="VOIP TX Mixer BT_TX" value="1"/>
</path>
<path name="voip-recordC usb-tty-full-mic">