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
- Add flac in supported codecs list
- Set FLAC codec specific parameters
- Set fragment size based on bit width and sampling rate
for flac
- Configure backend to 24/16 bit based on the current
usecases running
Change-Id: If013078e277fd3053fba6489345803f8f58bd86d
In APQ8084, Audio HAL needs to update voice call rx and tx
devices in csd client before call start otherwise csd client
sends default devices to MDM. Fix to update csd client devices.
Change-Id: I0a5a1689a92475f052d80a92003e3eacb68d2051
- Adding support for WB audio with BT devices
- Deprecate bt_samplrate" keyvalue pair which was
used earlier to determine wide band speech useCase.
Change-Id: Idc766dc4d8ecf25818f16bccc48c6740b0dfce65
-This change adds DSDA support for APQ based targets
where external modem is used for voice calls.
-Add new CSD API to support local call hold.
Change-Id: I7743a1df43dc1abac4e325ff104ec1bb64c9e12b
Speaker protection module should acquire the device lock for all global
operations. This change will ensure that the pre-conditions required for
calibration will be met and if any audio/voice usecase is started when
speaker calibration is being done,speaker protection thread should
cancel the calibration.
Change-Id: I0d5fa23657161ec971e851944a0045a01d8248ea
CRs-fixed: 688972
The device switch from speaker to earpiece or vice versa fails
during a QQ voip call. Currently, we use the same devices for
all usecases as that of voice/voip call and avoid switching the
same for other usecases when a voip/voice call is active. At
times, voip call has primary output which uses deep buffer path.
With current design in place, we do not permit device switch on
deep buffer path since voip call is active despite the rx on
primary output.
Do not select voip usecase devices if the output stream uses
primary output or in effect permit switching.
Change-Id: Ie61a7d7d8f27d55a393d173a724697045f66e1d6
CRs-Fixed: 685222
- add support for time stamp error propagation
to frameworks on compress driver error
- close active compress session on SSR
Change-Id: I9cbd3a6c271097b81c9b79e71573fda8d78c7dbf
- Tinyalsa doesn't expose an api to call
ioctls exposed by the audio drivers.
- Add pcm_ioctl() api to support pcm ioctl.
Change-Id: I448252e8d3347257a73c56bc8ed341abc2dd2dab
Add support for concurrency handling between number of
listen capture session and playback activity.
Change-Id: I4a0656f240c62f2cc6266a714a96fdcdc13ae9d8
pcm driver supports pcm_close during SSR, so reverted
HAL code to block pcm session close during SSR.
CRs-Fixed: 663477
Change-Id: I752e3f4f55288f91294e090b974ba1367c27122d
The stream's output rendering policy requires calibration to be
sent when stream routing configuration is set instead of the
device enable as each stream can have it's own routing with
different calibration needs.
Change-Id: If8bd365c4a6c616ed86b9383ba540ee8e28c4079
-Issue: Voice call audio is not routing to BT headset
though connected, till the waiting call is ended.
-Rootcause: During voice call, if another call is received, the
audio mode is changed to MODE_RINGTONE. Due to this, the primary
output on which the voice call is setup, is not able to find
new device as BT in getNewdevice().
-Fix: Avoid mode change to MODE_RINGTONE when voice call is already
active.
Change-Id: I38582e2500ff4c44eb5ac45dab3aab35606d1c7d
CRs-Fixed: 662883
For the usecases where individual streams have to be rendered
through different post processing chain on DSP an output policy
is defined. The output configuration is read from the
output policy file based on the stream atrributes to render the
playback appropriately.
Change-Id: I095592013ffa5b04bea69254026ebb78e2934822
- Added SSR event handling support in HAL
- Added support to drop incoming pcm data for pcm playback
usecase during SSR
- Added support to send dummy input(mute/zero buffer) for
record usecase during SSR
Change-Id: I158b62fa443bb523091128fe1308c9a9b1415502
- Unable to apply the mute in MT SIP call during Voice call
in CALL_HOLD.
- Mute is only applied if the voice call state is INACTIVE.
Thus when SIP call is made during Voice call in CALL_HOLD,
the mute is not being reflected.
- Fix this issue by checking voice stream type to allow
the mute to be applied.
Change-Id: I3af5225edd8e9a4123867b647de9405d5c4b9efc
CRs-Fixed: 642893
- configure output HDMI channel count based on sink
capability when audio.use.hdmi.sink.cap is set to true
CRs-Fixed: 656308
Change-Id: I3dd3226054c68a69a2c29f8bb2f9c27e429ad2dc
Remove update_mixer (as its unused) and change function signatures
wherever used.
Remove code chunk to set BT sample rate before enabling device as
thats part of the mixer path file now.
Change-Id: I5eb3bce5183acf505596be2b0ec93cdbd728bdaa
CRs-Fixed: 581453
1) Update enable/disable device and route to use the new APIs.
With this change, mixer controls will be updated in the order
listed in mixer paths XML file.
2) update_mixer is now an unused var.
Change-Id: Ic0a8874e4a2080347cfa0c2e66af606a08a207a7
CRs-Fixed: 581453
- ACDB loader is maintaining the same calibration buffers
for both listen and audio. So there is a possibility that
the audio calibration buffers may be overwritten with listen
calibration soon after notifying the device busy state to
listen hal
- Avoid this issue by notifying listen hal before sending the
audio calibration so that listen hal can complete pushing its
calibration
Change-Id: I4d954b1287b59ee4e1510707db25f466d14dca97
- Ensure all the mutex locks are initialized before using them,
to avoid native crashes.
Change-Id: I7b6253f1d08a36a24d366d69004ce969d73c13e1
CRs-Fixed: 654375
- When VoIP call is active on non-BT device and if the music playback
tries to switch to BT device, it will continue to route to non-BT
device on which the VoIP call is active already.
- Fix the issue by not selecting VoIP devices for audio playback when
they are on different back ends.
Change-Id: Iff9251fcf02f897d9b1cdc17fcf27c262518ada8
CRs-fixed: 652129
- snd device reference count is not decremented when usb headset is
unplugged, because touch tone is still active on usb headset.
So when usb is plugged again device routing is not triggered as
present and prev devices are same
- Fix is to route audio to speaker as soon as usb headset is
disconnected
CRs-Fixed: 630425
Change-Id: Idfa37478fa19cd5a1c75c7e1d2f77b4dc02b311a
- adev_open_output_stream() fails if the use case is already enabled.
Because of this, in case of VoIP, when the input stream is created
and started before creating Audio Track, then the output stream
creation fails.
- Fix this issue by giving exception for VoIP use case.
Change-Id: I5e7329d64075a09b99e5760a9050ace8c62a4e87
CRs-fixed: 651761
In Skype call, observed no rx data when headset is inserted
during call.
During device switch from handset to headset, audio HAL is
enabling the headset mixer controls first then disabling
handset mixer controls leading to no audio during downlink
as codec clock in 8916 is disabled due to the followed
sequence.
The current device switch logic doesn't make sure that all
previous devices are disabled before enabling the selected
devices. Fix this by changing the logic to disable all the
previous devices first and enable the selected devices.
CRs-Fixed: 648710
Change-Id: I0adfb62ea0ad8e2a2fe1a5473732e8bef61c492a
-BT sample rate should be set before opening BT SCO output
or input device. Currently it is set only for output device.
-Set sample rate for BT SCO input device also
Change-Id: I356557a727f5946ff3b4eb89ea16e4c16d84d21c