Commit Graph

112 Commits

Author SHA1 Message Date
Mikhail Naganov
189cd6a599 audio: Clarify that MMap h/w position must be continuous
The VTS test already verifies that the MMap hardware position
never resets or goes back, but the official wording in the AIDL
interface was lacking.

Bug: 350998390
Bug: 363139283
Test: none, doc change
Change-Id: I07b9842f53c89549fe648ee839d875d31a7a849d
2024-09-04 10:11:59 -07:00
François Gaffie
ed095e62ab Restore Default Device Effects support with AIDL AudioHAL
Bug: 329395147
Test: atest CtsMediaAudioTestCases
Test: atest --test-mapping hardware/interfaces/audio/aidl/vts:presubmit

Change-Id: I0f4f680b4db4eaa69d6c6e9e7b897631ed94928b
Signed-off-by: François Gaffie <francois.gaffie@renault.com>
2024-07-18 23:16:43 +00:00
Mikhail Naganov
ab222c63bc audio: Allow onError callback in any state
In practice, the AoC can crash while the stream is in
any state, thus this should be allowed for correct
handling of error conditions in the framework.

The list of states when `IStreamCallback.onError` can
be received is not enforced in VTS tests, thus no
test regressions are expected.

Bug: 339400414
Test: repro steps for simulating AoC crash in b/339400414
Change-Id: I9a52779f773307882109e159d715072de5af2ece
2024-05-21 14:31:56 -07:00
Shunkai Yao
5b15e005a9 Effect AIDL: add IEffect.reopen to update the effect instances data FMQ
The effect instance may choose to reallocate the input data message
queue under specific conditions. For example, when the input format
changes, requiring an update to the data message queue allocated during
the open time.
In such cases, the effect instance can destroy the existing data message
queue, when the audio framework see a valid status MQ and invalid data MQ,
it call reopen to get the new data message queue.

Bug: 302036943
Test: m android.hardware.audio.effect-update-api, m
Change-Id: Ia245b154176f64bc3cc6e6049bca4f9c68ad482d
Merged-In: Ia245b154176f64bc3cc6e6049bca4f9c68ad482d
2024-01-12 17:23:14 +00:00
Shunkai Yao
d090afe1af Update comment about headTrackingSensorId
Bug: 317405349
Test: m, aidl-format
Change-Id: I5f4b0e931c073d87b1a30a55c39e614d24a63030
2024-01-03 19:50:15 +00:00
jiabin
d470926597 AHAL: update doc for prepareToDisconnectExternalDevice.
Bug: 317405349
Test: make
Change-Id: If6c61a851c2e565ab16eb738b9dc0d42ebc04b05
2023-12-21 23:20:56 +00:00
jiabin
dd23b0e58e AHAL: add API to notify the HAL module about disconnecting device.
When external device is about to disconnect, the audio framework will
notify the HAL module about the coming device disconnection so that the
HAL module could abort any active read/write operations on drivers to
avoid problems with the HW interfaces.

Bug: 279824103
Test: atest VtsHalAudioCoreModuleTargetTest
Change-Id: I9f960b8ae5df11a764e70bd63f98c0f8b8386c34
Merged-In: I9f960b8ae5df11a764e70bd63f98c0f8b8386c34
2023-12-13 01:02:21 +00:00
Shunkai Yao
421ca19c14 Effect AIDL: add AudioTrack metadata as a common parameter for effects
Bug: 307368176
Test: m android.hardware.audio.effect-update-api
Test: atest --test-mapping hardware/interfaces/audio/aidl
Change-Id: I5affc96c09445a425361f326f728b8ef9b04daee
2023-11-29 17:04:58 +00:00
Shunkai Yao
d5b19ea384 Add Headtracking connection mode for Spatializer AIDL
Bug: 311474218
Test: m android.hardware.audio.effect-update-api
Test: m
Change-Id: I2578cc37f55000d881211048a10256e67aa26532
2023-11-17 04:27:23 +00:00
Shunkai Yao
992b009bc5 Effect AIDL: add Spatializer aidl in audio effect HAL
Spatializer is a union representing parameters for audio spatialization effects

Bug: 273373363
Test: Build
Change-Id: I6e8414238256903aeae171c5b7b7a98fe5f96f89
2023-11-10 05:33:58 +00:00
Treehugger Robot
1829d2133f Merge "audio: Fix state machine initial and final state symbols" into main 2023-07-18 22:59:06 +00:00
Mikhail Naganov
f082902b41 audio: Fix state machine initial and final state symbols
In UML, the initial state is a solid circle, the final
state is a double circle. In the Core HAL diagrams it
was the opposite.

Test: dot -Tpng stream-{in|out}-[async-]sm.gv -o ...
Change-Id: Id69f17d0a47227e744eb6dadcb5fee08c07bb0bd
2023-07-18 14:46:18 -07:00
Shunkai Yao
a8c5e014db Update effect AIDL state machine graph
Bug: 271500140
Test: dot -Tpng state.gv -o state.png
Change-Id: Icbabe75e24497594f8bc62985553c1c13d268dae
2023-07-18 21:22:15 +00:00
Treehugger Robot
8182edb4ff Merge "Freeze Audio AIDL interfaces" 2023-05-02 23:28:26 +00:00
Shunkai Yao
dd6ec5291a Freeze Audio AIDL interfaces
Fix Visualizer and Volume type UUID

Bug: 279432911
Test: m
Test: atest --test-mapping hardware/interfaces/audio/aidl/vts:presubmit
Change-Id: I3e7d145aa37fb67d78cf05c06da22f74c0ea07ad
Merged-In: I3e7d145aa37fb67d78cf05c06da22f74c0ea07ad
2023-05-02 00:55:22 +00:00
Jiabin Huang
cf210c83b2 AHAL: add more comment for IModule.disconnectExternalDevice
Bug: 277955540
Change-Id: I0d6a73884ab4bcfec62da45124024e8680155144
Test: TH
2023-04-27 23:06:57 +00:00
Mikhail Naganov
7b2d12b1f7 audio: Clarify profiles management for external devices
Clarify what should happen to mix port profiles after
connection of an external device. Add a test to verify
this behavior.

Also, add an XML file for the test runner for
VtsHalAudioCoreTargetTest.

Bug: 273252382
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I3381dd29c5922bf31fa3a8ae6fa273597e8333a1
Merged-In: I3381dd29c5922bf31fa3a8ae6fa273597e8333a1
2023-03-30 20:32:00 -07:00
Vlad Popa
4d7aa9279b CSD: rename get/setOutputRs2 to include upper bound
RS2 represents an interval of power levels. This is why it is clearer to
specify upper bound in the naming to make it clear that we refer to the
upper limit which when exceeded will trigger a momentary exposure.

Test: atest VtsHalAudioCoreTargetTest
Bug: 273961110
Change-Id: If4e065deeedb32c3e5e81caf4cd6924fb5815dc0
Merged-In: If4e065deeedb32c3e5e81caf4cd6924fb5815dc0
2023-03-17 02:57:47 +01:00
Shunkai Yao
d30ff8fb80 Add some Effect type UUID and offload indicater in common parameter
Bug: 271500140
Test: atest --test-mapping hardware/interfaces/audio/aidl/vts:presubmit
Change-Id: I61ebf268600564cb5abddc90979070b675a85541
2023-03-14 16:07:25 +00:00
Mikhail Naganov
b4f8e67e1c audio: Add offload reconfiguration event to IBluetoothLe
Since BT LE can also have offloaded codecs, it might need
a reconfiguration event similar to the one that BT A2DP
receives.

Bug: 272658632
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I04fb7c99f0457f87e1f4aaf7e77165317163387b
2023-03-10 12:44:52 -08:00
Mikhail Naganov
b5647da1ad audio: Add IBluetoothLe
Similar to IBluetooth and IBluetoothA2dp interfaces,
IBluetoothLe controls the LE profile. This interface
replaces the following string parameter:

"LeAudioSuspended"

Bug: 270731693
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I9df28053cd270fc2d446ba9a8ada4dd6ab761c7b
Merged-In: I9df28053cd270fc2d446ba9a8ada4dd6ab761c7b
2023-03-08 09:28:00 -08:00
Mikhail Naganov
6f3474a98e audio: Add IStreamCommon.prepareToClose method
This method is needed to implement HAL modules that
are proxies for other subsystems, for example
the "bluetooth" and "r_submix" modules. This method
replaces string parameters "exiting=1" and "closing=true"
which the framework sends to streams prior to closing
them in order to unblock the I/O thread of the stream.

Bug: 270731693
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I3d13fe34535ab853c9f8237a08c31cdafadbb390
Merged-In: I3d13fe34535ab853c9f8237a08c31cdafadbb390
2023-03-07 09:41:08 -08:00
Treehugger Robot
9e741d67b5 Merge "Add vendor extension effect example" 2023-03-07 02:22:08 +00:00
Shunkai Yao
b2325e55e9 Add vendor extension effect example
Update Parameter.id from int to ParcelableHolder

Bug: 271601435
Test: Build, atest VtsHalAudioEffectTargetTest
Change-Id: I5450fa90e95bdebe931c222f6bb177dbdef35c69
2023-03-04 02:01:33 +00:00
Treehugger Robot
0abca2170b Merge "AHAL: support volume control for USB audio HAL." 2023-03-02 17:19:36 +00: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
Mikhail Naganov
7499a00c04 audio: Add IBluetoothA2dp
Similar to IBluetooth interface which controls SCO/HFP,
IBluetoothA2dp controls the A2DP profile. This interface
replaces the following string parameters:

AUDIO_PARAMETER_A2DP_RECONFIG_SUPPORTED
AUDIO_PARAMETER_RECONFIG_A2DP
"A2dpSuspended"

Also, refactor fields used by Module implementation
for persistent child interfaces.

Bug: 270731693
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Ie62952c3bc3af2f53535d716e5b57bf48c661306
Merged-In: Ie62952c3bc3af2f53535d716e5b57bf48c661306
2023-03-01 13:29:29 -08:00
Mikhail Naganov
d150942aa7 audio: Add AudioOffloadMetadata and a method to update it
AudioOffloadMetadata contains the same information
as 'AUDIO_OFFLOAD_CODEC_*' framework parameters.
It is updated via a new method IStreamOut.updateOffloadMetadata
which only works for compressed offload streams.

Bug: 270731693
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I6c8a8853f216438284082f79e3f57e511a2a1f06
Merged-In: I6c8a8853f216438284082f79e3f57e511a2a1f06
2023-02-28 19:26:14 +00:00
Shunkai Yao
2ddafc227b [AIDL CTS] pass EnvReverb implementation cts
Bug: 270158223
Test: atest android.media.audio.cts.EnvReverbTest
Change-Id: Ie7fcc2d65a8daaef5d7a76cc6ca3ec6e13d4b547
2023-02-21 18:19:48 +00:00
Mikhail Naganov
e1ad6497a9 Merge "audio: Move Microphone[Dynamic]Info structs from core" 2023-02-16 15:39:31 +00:00
Shunkai Yao
c2e1b5f7f1 Merge "Effect AIDL: Add default extension with vector<uint8_t>" 2023-02-16 02:24:38 +00:00
Shunkai Yao
85b0169fca Effect AIDL: Add default extension with vector<uint8_t>
Bug: 258124419
Test: atest --test-mapping hardware/interfaces/audio/aidl/vts:presubmit
Change-Id: I3fa7f78ed2227d00b999c7e594d1b1d205f585e7
2023-02-16 00:28:21 +00:00
Mikhail Naganov
6725ef536b audio: Move Microphone[Dynamic]Info structs from core
These parcelables are also used by the framework.

Bug: 263964254
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Ib30b69c325040e474fb58a8e7e515912fccab4c7
Merged-In: Ib30b69c325040e474fb58a8e7e515912fccab4c7
2023-02-15 10:15:42 -08:00
Shraddha Basantwani
cac2e68b40 Audio AIDL : Add placeholder implementation and VTS test case for AGC1
Bug: 258124419
Test: atest VtsHalAGC1TargetTest
Change-Id: Ia9894ac21b284a554f8c2d66966d07e5e4621ccd
2023-02-15 23:36:06 +05:30
Shraddha Basantwani
84ea32e419 Audio AIDL : Rename AutomaticGainControl to AutomaticGainControlV2
Bug: 258124419
Test: atest VtsHalAGC2TargetTest
Change-Id: Ia3de57a109852e21d2f6e2b003e8f4286f8278b3
2023-02-15 18:11:11 +05:30
Shunkai Yao
376dbd96d3 Effect AIDL: Refactor effect capability with Range
Bug: 258124419
Test: atest --test-mapping hardware/interfaces/audio/aidl/vts:presubmit
Change-Id: I608fb7654591fb46061ecd5edbff20ccc977c5dd
2023-02-14 20:38:17 +00:00
Shunkai Yao
58aaf5bf0a Effect AIDL: Add back some effect parameters.
Bug: 258124419
Test: atest VtsHalAudioEffectTargetTest
Change-Id: I4daeb8cec2a0c0e33a55a9ffaea3e78b362bc949
2023-02-07 23:13:29 +00:00
Shunkai Yao
41500c1261 Effect AIDL: Rename Flags.noProcessing to Flags.bypass
Bug: 258124419
Test: atest VtsHalAudioEffectTargetTest
Change-Id: I3838fa71bed3aeb7824a7cdfb71d43041ddb4368
2023-02-03 01:39:23 +00:00
Shunkai Yao
ca10874012 AIDL effect: add AutomaticGainControlV1 AIDL
Bug: 261129656
Test: Compile and build, will add usage and test code in followup CL.
Change-Id: Ib20ff6e8f8fe9b7c3ac3286c5c05edc6880a44fe
2023-01-26 05:24:27 +00:00
Shunkai Yao
88b24b2dea AIDL effect: add Range for effect capabilities
Bug: 261129656
Test: Compile and build, will add usage in effect capabilities.
Change-Id: I29b80ee8b3e08fa3b6f0e5cf0e9349096adddb43
2023-01-25 19:46:10 +00:00
Shunkai Yao
32d8c29f51 AIDL effect: add VERY_HIGH level in NoiseSuppression
Bug: 261129656
Test: atest VtsHalAudioEffectTargetTest
Test: atest VtsHalNSTargetTest
Change-Id: I2afed63259f55b81101e4ae1239877d207fb740d
2023-01-21 00:37:26 +00:00
jiabin
b76981e2a7 Add interfaces to query aaudio hardware information.
Add interfaces to query aaudio hardware information. The new interfaces
are supposed to replace the system properties. The information includes
aaudio mixer burst count and aaudio hardware burst minimum usec.

Bug: 193275465
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Id3442dae15937baba84f053f2e244bc294f4d718
2023-01-19 18:06:22 +00:00
Eric Laurent
e2432ea1a7 audio: Add supportsBluetoothVariableLatency API to IModule
Add API to query if the Module supports control of variable latency over
playback paths.

Bug: 197823000
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I3a08d682a1a639d8373869725e12702fff962d53
2023-01-16 11:32:02 +01:00
jiabin
9a8e686628 Add API to query mmap policy information.
Bug: 193275465
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I8374a6e7942d68259d820b5de1f4ec597f1b6473
2023-01-13 22:57:34 +00:00
Mikhail Naganov
04ae822302 audio: Remove android.hardware.audio.core.AudioMode type
I missed that there is already android.media.audio.common.AudioMode.
However, due to use by the framework, it contains more values
(all of them are SYS_RESERVED), thus the implementation and VTS
have to be updated as well.

Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Change-Id: If260413b1f774a69514de978792d5ad2eb46481a
Merged-In: If260413b1f774a69514de978792d5ad2eb46481a
2023-01-12 17:42:02 +00:00
Shunkai Yao
5df4e6c4b0 AIDL effect: update AudioDeviceDescription to list
Bug: 261129656
Test: atest VtsHalAudioEffectTargetTest
Change-Id: I424afb287fa97a6bf39221ba64d6af50c1d697eb
2023-01-11 17:02:21 +00:00
Sham Rathod
e362a46cd9 EnvironmentalReverb : Add minimum and maximum capabilities for params.
Bug: 263416041
Test: atest VtsHalEnvironmentalReverbTest
Change-Id: I7acd88483f844792776ccc2a310623d84b76c3ae
2023-01-09 16:33:58 +05:30
Treehugger Robot
99d4458c3b Merge changes Ic8eaee53,Ide961d91,Ie97f3ce9
* changes:
  audio: Allow going to 'IDLE' for synchronous drain
  audio: Improve test coverage
  audio VTS: Refactor support for non-deterministic SM behavior
2023-01-09 08:51:53 +00:00
Shunkai Yao
5bfe81fb79 DynamicsProcessing: update AIDL interface definition
Enum change aidl_api was automatically generated.

Bug: 258124419
Test: atest VtsHalDynamicsProcessingTargetTest
Change-Id: I942c20124190f91efdebbf2fd8d66692699a65cd
2023-01-06 23:00:09 +00:00
Mikhail Naganov
194daaac57 audio: Allow going to 'IDLE' for synchronous drain
For small buffers, the driver can perform draining
synhronously, returning control to the HAL only after
the buffer is empty. This makes going through
the 'DRAINING' state artificial. Thus, we allow going
to the 'IDLE' state directly.

In order to make sure that VTS handles both transitions:
to 'DRAINING' and to 'IDLE', correctly, add an "AOSP as
vendor" parameter "aosp.forceSynchronousDrain" to induce
this behavior in the default implementation.

Bug: 262402957
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Ic8eaee53cb4596afb5317b4b905e004af3f112aa
2023-01-06 19:43:14 +00:00