Commit Graph

45 Commits

Author SHA1 Message Date
Mikhail Naganov
776e65e35f Update visibility of libaudioserviceexampleimpl
In order for vendors to be able to use this library
it needs to have public visibility.

Bug: 205884982
Test: m
Change-Id: Idd47c942ee1e97372047ec1b44bcd996d454e3e2
2023-03-15 09:29:16 -07:00
Mikhail Naganov
e48e5737f3 audio: Make I/O operations in default stub more realistic
1. Increase the minimum buffer size to 256 frames. This is
   more realistic than 16 frames: 256 frames is ~5ms @ 48 kHz.

2. Make transfer delay in the stub module dependent on the frame
   count for synchronous transfers.

Bug: 270154517
Test: atest VtsHalAudioCoreTargetTest
Test: atest android.media.audio.cts.LoudnessEnhancerTest (w/AIDL enabled)
Change-Id: If968e30d145b52220f4dc3c33af48dbc163c78cd
2023-03-06 18:51:03 -08:00
Mikhail Naganov
79cb295819 Merge "audio: Make libaudioserviceexampleimpl just 'library'" 2023-03-03 00:00:08 +00:00
Mikhail Naganov
d48a13b1bd audio: Make libaudioserviceexampleimpl just 'library'
Remove the '_static' suffix to allow vendors compile
it as a dynamic library if needed.

Add missing dependency on SoundDose interface libs.

Bug: 205884982
Test: m
Change-Id: Id85945c7c680d1a718e2d692ffd435f30c029521
2023-03-02 14:14:05 -08:00
jiabin
783c48b00e AHAL: support volume control for USB audio HAL.
Use mixer control to support master mute, master volume and hardware
volume for USB audio HAL.

Bug: 266216550
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Iad544ba517cbfc778ebdf96dd161944886383b73
2023-03-01 22:10:34 +00:00
jiabin
253bd32b04 AOSP AIDL USB audio HAL implementation.
Bug: 266216550
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I82e053d3f6a918cafe0d43b030f724f63a99eb2a
2023-02-02 18:39:26 +00:00
Shunkai Yao
52ba4dc148 Effect AIDL: remove the shared_lib dependency for example binary
They will be dlopen so no need to add the shared_lib dependency.
But we need to add them as PRODUCT_PACKAGES in base_vendor.mk

Bug: 258124419
Test: build and boot cuttlefish, change effect lib path in Android.bp
and audio_effects_config.xml and bootup.

Change-Id: Ia3b9bef9b5ed86921d80adcc0ce2296f50939370
2023-02-02 03:19:53 +00:00
Shunkai Yao
f1f15a1e86 Merge "Audio AIDL : Add libeffects reverb implementation uuids" 2023-01-11 19:06:32 +00:00
Mikhail Naganov
f429c03d49 audio: Generalize stream implementations
This allows for more code reuse and composability when
implementing streams for a particular audio "backend."

The existing "stub" code has been moved to StreamStub* files.

Bug: 264712385
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I97fd41f87eb6d01e1d57f0d70a86d3b2b3555837
2023-01-10 19:18:42 +00:00
Shraddha Basantwani
b83ec07797 Audio AIDL : Add libeffects reverb implementation uuids
Bug: 258124419
Test: atest VtsHalEnvironmentalReverbTest
      atest VtsHalPresetReverbTargetTest

Change-Id: Ifa858ab002ee815f59b8582e5427eca566226fa2
2023-01-10 15:50:11 +05:30
Ram Mohan
e4064cebba DynamicsProcessing: Add AIDL placeholder implementation and its unit test
Update audio_effects_config.xml to use libeffect dynamicsProcessing
implementation.

Bug: 258124419
Test: atest VtsHalDynamicsProcessingTargetTest
Test: atest VtsHalAudioEffectTargetTest

Change-Id: If93d084be383b716ff950faf1c3e23d6c1edaa66
2023-01-06 23:00:09 +00:00
Mikhail Naganov
10c6fe2b8f audio: Add IBluetooth core interface
This interface corresponds to BT-specific functions
of the IPrimaryDevice in the HIDL HAL.

Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I5f52d65e06f42e1a5fb2e51d27b79e94fe423eaa
2023-01-03 18:23:33 +00:00
Vlad Popa
2afbd1e549 Refactor the ISoundDose.aidl interface
This refactoring is fixing the hal_implementation_test workaround from
aosp/2363076. Adjusted the package name to match the aidl_interface and
declared the ISoundDose interface types only.

Test: VtsHalSoundDoseFactoryTargetTest, VtsHalAudioCoreTargetTest,
hal_implementation_test
Bug: 263388737

Change-Id: Ibce4cd95aaf600de2096179f137243939114ba6a
Merged-In: Ibce4cd95aaf600de2096179f137243939114ba6a
2022-12-28 18:01:01 +01:00
Shunkai Yao
883d75b6f9 Effect AIDL Refine effect test parameter combination list
Add effects implementation shared lib dependency.

Bug: 258124419
Test: atest VtsHalVisualizerTargetTest
Test: atest VtsHalAECTargetTest
Test: atest VtsHalAGCTargetTest
Test: atest VtsHalNSTargetTest
Change-Id: I58be0b789b08c9211a6bc79e8fc3c21d9658dd4a
2022-12-27 23:25:23 +00:00
Shunkai Yao
e39cd36545 Effect AIDL Add visualizer libeffect implementation
Bug: 258124419
Test: atest VtsHalVisualizerTargetTest
Change-Id: I4ad827a4e8951a16738580ecf91fe1b9cf65cc20
2022-12-22 17:10:03 +00:00
Shraddha Basantwani
ae7dde5d10 Audio AIDL : Add libeffects haptic generator implementation uuid
Bug: 258124419
Test: atest VtsHalHapticGeneratorTargetTest

Change-Id: I09abbc7a74d1e75f18bd1fbb4f1c2276a420eb20
2022-12-22 01:01:18 +05:30
Treehugger Robot
b02f80b5c4 Merge "Audio AIDL : Add libeffects downmix implementation uuid" 2022-12-20 15:08:55 +00:00
Treehugger Robot
1ad0ff0f79 Merge "Downmix: Add AIDL placeholder implementation and vts test" 2022-12-20 04:39:34 +00:00
Shunkai Yao
2af598bfa5 Merge "Audio AIDL : Add libeffects loudness enhancer implementation uuid" 2022-12-19 21:15:33 +00:00
Shraddha Basantwani
4ff8698a25 Audio AIDL : Add libeffects downmix implementation uuid
Bug: 258124419
Test: atest VtsHalDownmixTargetTest

Change-Id: I32d415d83e0a068efbea93ef4c2af3403db0f0a5
2022-12-19 15:31:54 +05:30
Sham Rathod
40f55bd520 Downmix: Add AIDL placeholder implementation and vts test
Bug: 258124419
Test: atest VtsHalDownmixTargetTest

Change-Id: I6c202d474b738e0e0d242dc91cafa3892b9e9987
2022-12-19 09:15:49 +05:30
Vlad Popa
f4fe41c873 Audio HAL: Add new HAL for sound dose
The new HAL is running as part of the HIDL audio HAL process. It is
meant as a workaround for HAL implementors that can not switch to the
audio AIDL yet and need to certify with IEC62368-1 3rd edition or
EN50332-3. Note that this HAL will be deprecated in the future.

Test: atest VtsHalSoundDoseFactoryTargetTest & flash bluejay-userdebug
Bug: 257937004
Change-Id: Ifbbf235bab58c1ee2f1ea246cf98c9e8966893c0
2022-12-18 10:18:10 +01:00
Vlad Popa
943b7e2b91 Add default implementation and VTS for ISoundDose
The ISoundDose HAL interface is used for reporting the sound dose
relevant information from/to the HAL. This is necessary for all devices
that certify with the IEC62368-1 3rd edition and EN50332-3 standard
for safe hearing.

Bug: 248567177
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Ib89e09243a01cebc2f7996b6b572384a1471867a
Merged-In: Ib89e09243a01cebc2f7996b6b572384a1471867a
(cherry picked from commit 83a2146546)
2022-12-15 19:41:32 +00:00
Shraddha Basantwani
22834eab2c Audio AIDL : Add libeffects loudness enhancer implementation uuid
Bug: 258124419
Test: atest VtsHalLoudnessEnhancerTargetTest

Change-Id: I55449dc58cc65ae8697f2b33e190f3fd6aa5e4f9
2022-12-13 19:32:00 +05:30
Lorena Torres-Huerta
bc585bd986 Default implementation for IConfig engine configuration.
Added XML to AIDL conversion classes that support
audio_policy_engine_configuration and audio_policy_configuration
schemas.

CTS-Coverage-Bug: 261509055
Bug: 242678729
Test: atest VtsHalAudioCoreTargetTest
Change-Id: If47932093af45c5289d070d4893cd10e79593e31
2022-12-08 03:47:24 +00:00
Shunkai Yao
812d5b4ce0 AIDL effect vts test cases refinement
Bug: 255361653
Test: atest VtsHalAudioEffectTargetTest
atest VtsHalAudioEffectFactoryTargetTest
atest VtsHalEqualizerTargetTest

Change-Id: I4d4c4de97a73d4ea6dedd9c9e1733da03860430b
2022-11-18 19:50:24 +00:00
Shunkai Yao
f0c263b547 Use AIDL effect bundle in effectserviceexampleimpl.
Bug: 255361653
Test: atest VtsHalAudioEffectTargetTest
atest VtsHalAudioEffectFactoryTargetTest
atest VtsHalEqualizerTargetTest

Change-Id: Ia50ff5066e007f6a8569114e36f0e4565a6100ea
2022-11-16 18:09:17 +00:00
Shunkai Yao
6c04ef2c55 Merge changes from topic "aidl_audio_effect_8_config"
* changes:
  Add effect config xml parser in AIDL effect factory
  Support effect config parser in effect AIDL
2022-11-14 15:24:01 +00:00
Shunkai Yao
52abf0a662 Support effect config parser in effect AIDL
Bug: 255361653
Test: parse an example audio_effects.xml
atest VtsHalAudioEffectFactoryTargetTest
atest VtsHalAudioEffectTargetTest
atest VtsHalEqualizerTargetTest

Change-Id: I086905bcbe113a56767cae45102c84f5250d348e
2022-11-10 22:38:55 +00:00
Mikhail Naganov
3b125b76aa audio: Add volume/mute, audio mode, and screen state to IModule
Add the following methods to IModule:
 - getTelephony;
 - get/setMasterMute;
 - get/setMasterVolume;
 - get/setMicMute;
 - updateAudioMode;
 - updateScreenRotation;
 - updateScreenState;
The "update..." methods are "informational," the HAL may ignore
them and must not raise any errors.

ITelephony currently contains 2 methods:
 - getSupportedAudioModes;
 - switchAudioMode.
This "switchAudioMode" must validate the argument, and must
switch the HAL to the new mode synchronously.

Implement and add VTS tests.

Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I9174c81fe7d16f7068257051ae5e129b15e82648
2022-11-09 18:55:07 +00:00
Shunkai Yao
6afc855087 AIDL effect: Add all aosp effects default implementation
Bug: 238913361
Test: atest VtsHalAudioEffectTargetTest
atest VtsHalAudioEffectFactoryTargetTest
atest VtsHalEqualizerTargetTest

Change-Id: I6825ba77ae0707f97e852f0faa52ce3486ba2af5
2022-10-31 22:53:57 +00:00
Shunkai Yao
a4ab38caf0 AIDL effect: Add Equalizer parameters implementation and vts
Bug: 238913361
Test: atest VtsHalAudioEffectTargetTest
atest VtsHalAudioEffectFactoryTargetTest
atest VtsHalEqualizerTargetTest

Change-Id: I94b2283ca2aa0e45715e1c9ac3ea6ad809ec2a2c
2022-10-19 19:13:25 +00:00
Shunkai Yao
bd9c79cbd8 Remove the absolute path in AIDL EQ Android.bp
Bug: 253474521
Test: m android.hardware.audio.effect.service-aidl.example; m libequalizer
Change-Id: Ic8ce31572e2fc6c566e306c25350680a7d352709
2022-10-13 18:43:53 +00:00
Shunkai Yao
ea24c1a128 AIDL effect: Add effect AIDL implementationi and vts test
Bug: 238913361
Test: atest VtsHalAudioEffectTargetTest; atest VtsHalAudioEffectFactoryTargetTest
Merged-In: If8000b7396360996bdfb8eb269bc3de543871673
Change-Id: If8000b7396360996bdfb8eb269bc3de543871673
2022-10-13 02:14:23 +00:00
Shunkai Yao
4590517a96 AIDL effect: Initial IEffect interface implementation and vts test
Bug: 238913361
Test: atest VtsHalAudioEffectTargetTest
Merged-In: Id64d28af9122e82acd96e3349cf37c3d9728069a
Change-Id: Id64d28af9122e82acd96e3349cf37c3d9728069a
2022-09-22 01:36:00 +00:00
Lorena Torres-Huerta
308e257397 Use explicit aidl versions for audio hal and soundtrigger dependencies.
There are still issues with importing implicit versions. Switching to explicit versions while b/188871598 is worked out.

Bug: 242678729
Test: m; AIDL_TRANSITIVE_FREEZE=true m aidl-freeze-api && AIDL_FROZEN_REL=true m
Merged-In: Ide6a90716bf042fbb925357e110bc84ddb9e96fb
Change-Id: Ide6a90716bf042fbb925357e110bc84ddb9e96fb
(cherry picked from commit 8296aa824b)
2022-09-01 21:57:03 +00:00
Lorena Torres-Huerta
9ae4f224ab Add AudioAttributes and AudioFlag for use in HAL interface for engine configuration.
This requires a version bump to android.media.audio.common.types.

cc_defaults and java_defaults are used in order to avoid explicitly updating version references in several Android.bp files when we do future version bumps.

Bug: 242678729
Test: m
Merged-In: Id17820f210f625e370992db4f9f85e37887b088b
Change-Id: Id17820f210f625e370992db4f9f85e37887b088b
(cherry picked from commit bf94fa32cb)
2022-09-01 21:37:43 +00:00
Shunkai Yao
43f9a07e04 AIDL effect: Extract common parts of effect service into cc_defaults
Bug: b/238913361
Test: atest VtsHalAudioEffectTargetTest
Merged-In: I58d925b3f4a3d41d4014f54f78d95c26cc5520ea
Change-Id: I58d925b3f4a3d41d4014f54f78d95c26cc5520ea
(cherry picked from commit c8ed5c27a1)
2022-08-30 22:34:04 +00:00
Shunkai Yao
c23916b96f AIDL effect: Minimal example implementation
Add effect factory placeholder implementation.
Update android.hardware.audio.service-aidl.example to include effects.

Bug: 238913361
Test: atest VtsHalAudioEffectTargetTest

Merged-In: I88266b509a03ee336e22be460580c5b22123659e
Change-Id: I88266b509a03ee336e22be460580c5b22123659e
(cherry picked from commit 8a0ae5430f)
2022-08-30 22:11:16 +00:00
Mikhail Naganov
4f5d3f12f5 audio: Implementation of audio I/O, part II
This patch implements audio I/O for the synchronous, non-MMAP
case.

Updated the StreamDescriptor structure to make it usable.
Clarified comments on the expectations for the client and
the HAL module.

Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Merged-In: I09651c6e80a397c80870622ac19234b4d4a38cbb
Change-Id: I09651c6e80a397c80870622ac19234b4d4a38cbb
(cherry picked from commit 01803d454a)
2022-08-30 01:39:24 +00:00
Mikhail Naganov
0b9c5feed1 audio: Fix the lifetime of the StreamWorker's logic part
Fix the mistake of making StreamWorker to inherit
from the part which provides actual thread logic (Impl).
The lifetime of the logic object must be longer
than the lifetime of the StreamWorker's thread.
Otherwise, the thread could still have running while
the logic has already been destroyed (consider
the order of destructors in C++ class inheritance).

With this fix, the StreamWorker class does not have
to be a template anymore, thus reorganize the code
to move big methods into a .cpp file.

Bug: 205884982
Test: atest libaudioaidlcommon_test --iterations
Merged-In: I5bc2c8fd9d78a0fbc9fddab67456cc5214584045
Change-Id: I5bc2c8fd9d78a0fbc9fddab67456cc5214584045
(cherry picked from commmit 84024eccee)

Change-Id: I70958f437657b574cda6480c3216a0b1ea252433
2022-08-30 01:36:31 +00:00
Mikhail Naganov
6a4872dff0 audio: Implementation of audio I/O, part I
This patch adds necessary structures and prepares for implementing
data flow for audio I/O.

Also in this patch we clarify the relationship between audio patches
and buffer size for audio I/O, and between buffer size and latency.

Bug: 205884982
Bug: 233816848
Test: atest VtsHalAudioCoreTargetTest
Merged-In: I8522632607d4cf50a112225c19b5dd5ad8848591
Change-Id: I8522632607d4cf50a112225c19b5dd5ad8848591
(cherry picked from commit 68bee70442)
2022-08-26 02:44:15 +00:00
Mikhail Naganov
111e0ceab5 audio: Add support for compressed offload
- Add compressed offload mix port into default implementation.
- Require AudioOffloadInfo to be passed to IModule.openOutputStream
  for compressed offload port configs.
- Update VTS to handle compressed offload.

Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Merged-In: I118b2c04bff12b64a7cac4dc2c88217a6a270046
Change-Id: I118b2c04bff12b64a7cac4dc2c88217a6a270046
(cherry picked from commit 975ea3ae89)
2022-08-25 00:25:55 +00:00
Mikhail Naganov
00603d14b3 audio HAL: Support for external device connections
Add methods 'IModule.connect/disconnectExternalDevice' which inform
audio HAL about connection / disconnection of an external
non-attached device. Add method 'getAudioRoutesForPort' to
retrieve only routes that include the specified port.

Update the behavior of 'getAudioPorts' and 'getAudioRoutes'
indicating that the result may change due to instantiation
of new device ports for connected external devices.

Clarify behavior of 'IModule.setAudioPortConfig' that it can not
work with device ports with no profiles.

Add debug flags structure 'ModuleDebug' and method
'IModule.setModuleDebug' to control the debugging aspects. VTS
tests use these flags to test HAL behavior which would otherwise
require human intervention.

Update the default implementation and VTS for the AIDL changes.

Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Merged-In: Iad5f7009e283729206f88b6278c8992f7f8a92a2
Change-Id: Iad5f7009e283729206f88b6278c8992f7f8a92a2
2022-08-23 22:40:20 +00:00
Mikhail Naganov
df5adfde15 audio HAL: Minimal example implementation
Implements basic functionality for enumerating
capabilities of an audio module, audio patches
creation, and opening of I/O streams.

Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Merged-In: Ie5d67e9192a598260e762ae9368f99592c8ad97e
Change-Id: Ie5d67e9192a598260e762ae9368f99592c8ad97e
(cherry picked from commit ecdc6ca8e8)
2022-08-20 00:14:53 +00:00