- Update audio and voice feature init sequence
- Update API names for querying whether feature is enabled
- Fix A2DP audio_extn APIs
- Fix compress VOIP set parameter default return val issue that
was causing no other set param to be processed
- Fix dynamic primary usecase check
Change-Id: I08fa3bc369ec197932347b01491588d42655797c
Move audio and voice extension feature to seperate
dynamic libraries. Loading these libraries will be
controlled from config store based on target. These
flags can be changed at runtime
Change-Id: I042450768243124ea80945efac0821984f96b9bf
When restoring realtime stream from compress voip call, adm still needs
to be updated.
Change-Id: I0c160a86f7271c42e5ebe899fd5970110093e522
CRs-Fixed: 2365346
Fix incall music delivery issue by adding support for incall
music usecase in out_write and adev_open_output_stream
CRs-Fixed:2308665
Change-Id: I26f9f36c29017480ec064b8db2b2b9ae6b357fb5
-Use long for mixer control with integer type to match with
kernel snd_ctl_elem_value definition.
-Use packed structure for mixer controls with byte type
Change-Id: I9fbb1d10c5ee212348b58fc4b27a3d74403d8bda
Reduce logging level from error to warning in compress VoIP entry
functions to limit excessive logging when feature is disabled.
Change-Id: Ib7bbf6af06d8f24a396c2c5062ad005b2f17322c
Add dedicated streams for VoIP usecase. This includes adding
a new direct output and input types that use audio playback
and record paths respectively. It falls back to compress VoIP
wherever this feature is not applicable.
Change-Id: I9b7654819b9d8deb00f8888fbfc31f0fbbae5266
-Routing to BT-SCO can fail if the BT SOC gets disconnected or
the remote disconnects
-In such scenarios if audio is in process of routing streams to
BT SCO then those routing requests fail, hence the complete
data chain gets stalled.
-Add a mechanism to confirm with BT Codec driver if the last
routing request was successfull, if not close the stream
to avoid hang.
Change-Id: Ic78ba90ad55f30d99cdd76a6c0a0dc5398706b03
Vendor created android system properties are required to have
vendor/qti prefix. Update vendor specific audio system
properties used in HAL.
CRs-Fixed: 2034869
Change-Id: Ibdb1d12fedee1ce12073e8b90fdec814318f3acf
Enable SoundMonitor in audio hal to handle ADSP SSR events,
do required cleanup and restore any active sessions gracefully.
Change-Id: I83270b7c12095e56a6677f41efe0f5618a27e0e5
Member stop_threshold of pcm_config for compress voip is not
initialized, then it will be set to default value equals to
buffer size during pcm_open. XRUN may happen and stop the
stream due to delayed writes to fill buffers. When stream is
restarted, path configuration could fail and cause RX mute.
Set the intial value to INT_MAX to avoid XRUN.
Change-Id: Ic405390f43b7d97ffcdfa6f3b749376f8220e24a
CRs-Fixed: 2047671
-VOIP usecase uses primary output for routing and volume
control, if no active output is explicitly associated
with the usecase. But the usecase is getting updated with
primary output even when an active VOIP output is still
associated with the usecase, and only input stream is closed.
This result in incorrect routing for the usecase, as primary
output is not active and would not have updated device info.
-To fix the issue associate primary output with VOIP usecase
only if the usecase is not having any other output associated
but still have a valid input which can be used for voip call.
CRs-Fixed: 2026594
Change-Id: Ib40698cb8cd7577093f98d061ec3923dbe20b7e2
In recording and VoIP both active scenario, when voip input
is closed, active input stream would set to NULL. Therefore,
as active input stream is NULL, audio recording input device
is wrong to select after closing voip call.
Fix this by updating proper active input stream when voip input
is closed.
CRs-Fixed: 2035512
Change-Id: Ie8be5d6d9de65249122de497d8689ad4c78698e5
- Audio mode switch between speaker and headset fails during a VoIP call
- This is because only one request is allowed by APM with Direct/VoIP
flag to get VoIP usecase in HAL.
- If another VoIP request comes in while a VoIP session is still open,
then the request falls back and is treated as a request for primary
output with NONE flag.
- And if there are no low-latency sessions open and any previously
active VoIP session is closed, then the latter VoIP request handles
routing for primary output.
- The fix allows VoIP usecase to handle routing properly when using
primary output.
CRs-Fixed: 2000184
Change-Id: Ibda10fe0de64f33ad34340dd0ff3b710918c4461
Make sure if the TARGET_USES_AOSP flag is defined
then all QTI specific features should be disabled
and compilation is successfull.
Change-Id: I440b538b5449177e14ca47f1dcfbec70a2ee7fed
When music stream is started before VOIP released, the output device
will be aligned to the device used by VOIP stream. And after VOIP
released later, the device for audio stream keeps unchanged.
Also if an audio record session is started during VOIP playback,
input device won't be aligned to the input device used by VOIP. Then
when VOIP released, the input device will be disabled and due to they
share the same BE, input path for audio record breaks.
Make alignments of input device for audio record session with VOIP,
and restore the device for current active usecases when VOIP released.
Change-Id: I19419a44e509e27be41ce06c36ca14592f7b09c1
CRs-Fixed: 1033873
With CLANG enabled and -Wall & -Werror being set in
LOCAL_CFLAGS, all warnings are treated as errors.
This commit fixes all the warnings most of which are
about unused variables and functions.
Change-Id: I32c6593fa0ad6a4fdca5dc8e6c76982a146a8bc6
voice use case is still active when mode switched from MODE_IN_CALL
to MODE_IN_COMMUNICATION, while the output used for driving call is
NULL.
This could possibly makes segment fault in mediaserver when call
is activated before the output updated to valid value.
Change-Id: I070dd5e7a1c6d2883ea611588737b1f5c577b275
CRs-Fixed: 953010
- setPhoneState checks call-state in audio hal to filter out
unworthy usage of this API.
- With M upgrade, change to update call-state with audio hal is
removed, instead permission checks are introduced to prevent
random usage of such APIs. But setPhoneState is still checking
for this call-state causing improper concurrency handling.
- Fix the issue by removing state check from setPhoneState.
- Remove set and get for parameter "in_call" from voice_extn.
Change-Id: I92fe10c617d6158976a0e07eed3275acb0aadd15
Add support to enable VBat feature. This includes required changes
to select VBat speaker devices for audio and voice usecases and
sending the VBat calibration data to codec driver.
Change-Id: I2234bee3cc4d6f16934a4b27ef9da21cde74bb48
Add support for sidetone for VoIP calls on voice path.
Enable/disbale sidetone during VoIP call set up/tear down
and also during device switch.
CRs-fixed: 890371
Change-Id: Ib79eed79ddcd2bfed1d9bc322195036736a67cb2
Add support for sidetone for VoIP calls on voice path.
Enable/disbale sidetone during VoIP call set up/tear down
and also during device switch.
CRs-fixed: 890371
Change-Id: Ib79eed79ddcd2bfed1d9bc322195036736a67cb2
Add support to enable vbat feature. This includes required changes
to select vbat speaker devices for audio, voice usecases and
sending the vbat calibration data to codec driver.
Change-Id: I2234bee3cc4d6f16934a4b27ef9da21cde74bb48
With new Voice architecture, a voice session per subscription
will support different call types such as Voice/VoLTE/VoWLAN etc.
These new voice sessions will be tagged with new VSID.
Change-Id: I7e9c90fb3935ebce5ff281f2d1c25c66aa96e55e
Currently input stream source type is updated in in_set_parameters().
Some of the effects like AEC are applied based on input source type.
If effects API is called before in_set_parameters() then that effect
does not apply. Fix this issue by updating the source type in
adev_open_input_stream() instead of in_set_parameters().
Change-Id: Iff0670264e156840c40f1f15cfc93fd5b2506e0d
- By default CLOCK_REALTIME is used.
- Change the clock type to CLOCK_MONOTONIC
to synchronize the framework and VOIP driver
clock and timestamps.
Change-Id: I8ab64e948cea5d027bf28c4e101ff517fda3558c
When MULTI_VOICE_SESSIONS feature flag is not enabled, the state of
incall recording stream is returned incorrectly. Fix the issue by
moving the corresponding piece of code from voice_extn.c to voice.c.
Change-Id: Id350bad65d12a4f165e80ee11cda3a8f342d38ee
Add support for routing voice calls to devices in other audio
HALs by allowing playback and capture to/from AFE proxy
Change-Id: I2c6a1ddec072e1d5f1a8b7ded874e9c082a7b810
During skype call if headset is inserted next voip
input request is failed.
VoIP data sample rate is not being reset properly is
causing the aforementioned issue.
CRs-Fixed: 725583
Change-Id: I9f85936aec0caeaf53b9aeff93a481fd38afe3ff
Fix unused param warnings.
Take care of coding style issues.
Remove unwanted code to set acdb_settings.
Fix compilation issues on 8960 platform.
Change-Id: Ifc72472b487abee83ff85e21fd324cee938973e9
When voip input started, active input stream is not updated.
Therefore, as active input stream is NULL no tx device switch
occurs for a voip call with primary output.
Fixed this by updating active input stream for voip when
voip input started.
Change-Id: I058bfaa0091eea4a0259224de17be32f271dbdc9
CRs-Fixed: 710923
If there is any difference in the signature of a function declared
as extern, it will not be reported by the compiler and may result
in unexpected results when executed.
All the API functions should be declared in a header file.
Change-Id: I89662e23da8118c3a9eac728b389498ed52e19c2
adev->voice_device_set flag is to indicate voice call
device routing update from policymanager to HAL. It is
set to true in voice_start_call and reset in update_calls()
which causes mismatch in flag update during back to back
voice calls scenario. Update adev->voice_device_set flag
in voice_stop_call instead of update_calls(). Rename
voice_device_set flag to in_call for readability.
Change-Id: Ie07105671f254899890bdb4c0635c7dc1f55dbff