- Added support for DD/DDP/AAC/MP4 decode through QAF.
- Added support for Rencoding to DD/DDP through QAF..
- Added support for DAP through QAF.
- Added suport for mixing DD/DDP with PCM through QAF.
- Added suport for mixing AAC with PCM through QAF.
- Added support for Dual Decode through QAF.
CRs-Fixed: 1063555
Change-Id: Icc3ddf62f9bc1c45e1027fb93bf9fa0e154a783e
Monitor sound card status and report online/offline
events back to the streams registered with it and to audio_dev.
Bug: 30075678
CRs-Fixed: 1053073
Change-Id: Iea74d5c83f7fe92ba4a24f4f4650ce255bdb48e8
-Enable ASRC mode for headphone backend if headphone 44.1 or
native DSD backend is active.
-Disable headphone backend and reopen it with ASRC mode for upcoming
use case over headphone 44.1 or native DSD backend
Change-Id: Ic8fb0ab9f254d3472fda49dbb824f622d518a451
-set passthrough flag and diable gapless for native dsd
-Select new backend for native dsd.
-Add support for e2e playback of clips with sampling rate
multiple of 44.1.
Change-Id: I6aa0ef5ea176a0923b0b88924ab046f9a11b7b12
Add support to configure input and output streams as
legacy (faster than realtime) or realtime
CRs-Fixed: 1035545
Change-Id: Idebe3624bd14d5384b8c42d4f74d1874537b6028
Enable support for 24 bit through deep buffer
path. Remove hardcoding of 16 bit and honor
the format and sample rate set by flinger.
24 bit support includes support for 8_24 and
24 bit packed pcm format.
Change-Id: I2cbc2005b188c3bc21b4e7a7275e9ee21c7b820d
-Add changes to support PCM_FLOAT format using direct track.
-For targets supporting true 32 bit, convert FLOAT pcm data
to 32 bit.
-Targets which dont support true 32 bit, convert FLOAT or
32 bit input to 24 bit Packed in HAL.
Change-Id: I8052c8b878bbd4d70c0453df054953d494773b0a
-Add support for 24 bit packed audio in audio hal.
-Disable gapless for AV playback and direct pcm usecase,
this ensures that the buffering in DSP is not more.
-Simulate rendered time stamp for direct pcm usecase
based on the number of frames written to the compress
driver, bufferring in the driver and DSP latency.
-Pass mixer instance to offload effects library to avoid
an unnecessary mixer_open call, this optimizes audio
start delay in compress playback.
Change-Id: I422a53af5632eaf6cc362a6c44f62ff8412965f7
-Changes to support 24 bit record if input format request is
AUDIO_FORMAT_PCM_8_24_BIT or AUDIO_FORMAT_PCM_24_BIT_PACKED
Change-Id: I68076524ccccbf9f0be3c88bb01180ae7e4fd8b1
- update read_hdmi_sink_caps to support dynamic sample
rate, channel, and format based on HDMI EDID information
Change-Id: I69b3f19cb1d81c3e51695adae4f2379cbb439dc8
- If WFD framework occupies the AFE proxy, it may result unintended
behavior while starting voice call over USB.
- Audio is always routed to the USB audio device when connected,
even if WFD is connected. So no need to allow afe proxy port
usage by WFD framework.
- Disallow the afe proxy port usage by external modules when
AUDIO_DEVICE_OUT_USB_DEVICE is connected.
CRs-Fixed: 998488
Change-Id: I889be7f477ae3f7ad46757592a46f3d0e8eb41e2
- add changes to support single BE mode on top of the
Double BE mode which is supported.
- support reading of version or mode from XML.
- add logic to switch between single and double BE
based on the mode in XML.
- define a new device for true native.
- add logic to read tasha codec version and allow
true native only for 2.0 version of codec
- enchance log msgs for better debugging.
Change-Id: I970487f16af32144ec26f967e8bfcb32d44d67a4
- Add support for multiple offload playback.
- Do not check for reuse of current offload playback
session if multiple offload feature is enabled.
- Remove multiple offload feature flag to enable
compilation by default.
Change-Id: I91a8797ec5e260975ffd022d56bca01bc832da80
- remove direct pcm offload usecase
- incase of direct pcm add support for one extra offload usecase
Change-Id: I75f68a8e85c8685091928c09df211e9d7939f342
Fix thread starvation issue where the capture or playback
threads running in FIFO priority would constantly acquire
the stream mutex preventing other threads to complete
routing commands.
Change-Id: I8d1befa0791ae9a3bce868c1c3ef262ff489f052
-For HDMI compliance, channel status bits
should be configured for the external HDMI chip.
-Hence HAL based on the output format i.e compressed
or LPCM populates the channel_status information
and passes it to the dai-driver which in turn
configures the external HDMI chip
Change-Id: Ibf192492d259a722070a08f4764fde9498dd268d
Codec specific metadata is sent only for first stream in gapless
playback.
This causes incorrect configuration to be set for second
stream and distortions are observed due to framedrops in adsp.
Add support to send codec specific format data of second stream
during gapless playback.
Use vorbis bitstream format info from metadata instead of hardcoding.
This avoids sending gapless metadata each time set parameters
is called during vorbis playback.
Set flag to send new metadata at start of session for first track
and for the next stream in gapless after return from partial drain.
Change-Id: I3d8be22a4e28c50335820cab1e2b924f3b3b2d1c
Audiosphere effect cannot be used along with any other SA+
effects, and needs handling for such concurrent use cases.
Remove audiosphere controls from audio extention, these controls
are now moved to audio post_proc module, where both audiosphere
and SA+ events are made available providing easy detection and
handling for concurrent use cases.
Extend audio hal's set and get parameter functionality to post_proc
module, this is required to set/get audiosphere params inside
post_proc module.
Change-Id: Ia4b6dcf74b2434f3751cd76e02704b62fc30f822
Add a new use case and mixer paths to support ultra
low latency audio playback. This use case exercises the
ULL mode in the DSP.
CRs-Fixed: 892056
Change-Id: I6685dd0f346072029ca51e4ce92856a13e74ee76
- add support for direct pcm output
- add support for direct pcm in hal
if output flag is direct_pcm choose compress offload path
- add support for direct pcm in custom audio policy manager
force add direct flag when we detect pcm track in music and
game use case
Change-Id: Ie69c988ef9cd0477efa77611ceddccdd6b17a163
HAL dynamically loads the ADM module and registers all the input
and output streams and also notifies all read and write operarations.
CRs-Fixed: 892056
Change-Id: Ie599f990c5d7224a6261e703c099fb98b5980c35
- all changes for native audio backward
compatibility and related
- add set parameters from UI
- enable dynamic device switching
- featurize the code
- various backend concurrency changes
Change-Id: Id0f824c4b4c033f42008a4e8868652c8f6fe5c42
- Changes for device/Usecase selection
- Add new and combo devices for headphones
- Combo device handling
- Add new backend and logic to handle multiple
backends
- Remove hardcoded mixers and select them
dynamically based on the device
Change-Id: I7207291f2c27da13ba0cc77c66de1144f4b9888a
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
Fluence module on ADSP is upgraded to support source
tracking, sound focus and audio zoom features. This
change adds support for the same in audio HAL and is
needed to support the features end-to-end.
Source Tracking is the capability to identify the
source of speech. Sound Focus is the capability to
configure which sectors in the 360 degrees plane to
listen to. Audio Zoom is the capability to combine
the sound focus with other technologies so that a user
can listen in on a particular source in a scene.
Change-Id: I019b22d6541e6d1a10552d808c3320a998b86e48
While sound trigger lab data being read, if CPE SSR
happens the pcm read returns -ENETRESET. Instead of
updating the sound card sate, mark the sound trigger
state as inactive to avoid reading the lab data from
driver. Marking the session as inactive handle both
CPE and ADSP SSR scenarios where HAL is prevented
to read from kernel.
Change-Id: Id82eed597c01265a7d26f17e5ac3c5cd0e17adbf
CRs-fixed: 790726
When pcm offload is done, override the buffer size
that was calculated and use the value from the system property
Make write call blocking if small buffers are used in offload
Update latency value for pcm offload with small buffer hint based
on period size and period count.
Change-Id: Ic74caa6bd172c8e4554384e9fa98a5137117f07c
Add support to integrate the Eagle framework for HeadphoneX
audio post processing feature 1.1
Change-Id: Ib119c27c359950a6087d5e6ae200dfc1e83b7551
Signed-off-by: Jitendra Naruka <jitendra.naruka@dts.com>
Signed-off-by: Alexy Joseph <alexyj@codeaurora.org>
-Add support for HDMI passthrough for DD/DDP contents to HAL and
APM.
-Add mixer control to set volume on volume module on passthrough
COPP. The mixer control takes zero volume for mute and unity
volume for max volume.
-DDP content requires sample rate to be four times native sample
rate. HAL sample rate is changed to four times native rate from
start output stream. During rapid pause/resume offload thread
calls standby when there is no active track and no activity for
over a second. On resume start output steam is called and
sample rate is converted to four times its current value.
This results in session to be started with invalid sampling
rate and playback failures.
-Add HDMI passthrough support for JOC format.
Expose DDP/JOC as pass-through supported format if sink
supports either DD or DDP. This is to allow support for
pass-through convert based on edid data.
-Deep buffer music stream does not switch back to HDMI after
ringtone playback ends. Ringtone, alarm, notification etc are
played on speaker if HDMI pass-through is enabled. The
decision is taken based on stream or strategy. The decision
to change the device from HDMI to speaker is taken based on
the stream type. When a patricular stream ends use the
reference count instead of stream type.
-DAP is not turned on when switching from passthrough stream to
deep buffer stream.DAP bypass call from HAL to DAP HAL expects
integer pointer. Address of a bool variable is passed into the
function. Corrupt value is set on driver instead of turn on/off
causing random failures in DAP on/DAP bypass. Use same data type
and use enumeration to make the function call readable.
CRs-Fixed: 761339
Change-Id: Ided9439ec5e87233a1fec3ff9f50a1e9ba4cb788
The Audio COPP topology is hard coded to NULL topology in kernel
for incall recording stream. Remove the hard coding in kernel and
send default input device's audio calibration from audio hal
so that AUDIO_TX_MONO_COPP topology will be used for incall
recording stream.
This change is needed to be able to fine tune audio calibration
data for incall recording stream.
Change-Id: I1680731afb0c0e1c1eedbc9afd56064d856e3940
Add support for parsing hdmi edid data and setting channel map
to asm
Parse edid data on hdmi connection and invalidat on disconnection.
Fix audio playback errors on HDMI when source channel count is
greater than sink channel count for offload playback.
Change-Id: I1e0a8335611a87974cb273431659938a0b345e68
Add support for routing voice calls to devices in other audio
HALs by allowing playback and capture to/from AFE proxy
Change-Id: I2c6a1ddec072e1d5f1a8b7ded874e9c082a7b810
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
Sound trigger lookahead buffering data is read through audio hal.
Also the audio hal has to inform sound trigger hal about concurrencies
and subsytsem restart events. Audio Hal uses proprietary interface
defined by sound trigger for communication with sound trigger hal.
Change-Id: Id344077b40b481a953769518f8a6ac0adc13b709