Commit Graph

499 Commits

Author SHA1 Message Date
Jooyung Han
6b6d0ef23c Merge "Revert "Install bluetooth audio VINTF fragment in apex"" into main am: c5c0b5eb6a
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2951227

Change-Id: Ia075e0a1eecf75781f243947a53536eb2a688e19
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-06 06:40:20 +00:00
Ke-Yu Lu
e9f8c8c4f5 Revert "Install bluetooth audio VINTF fragment in apex"
Revert submission 2949647-bt-audio-vintf

Reason for revert: b/323989115

Reverted changes: /q/submissionid:2949647-bt-audio-vintf

Change-Id: Ie335aa9a0ad2bb847cabe6f85ef37352e9065e3a
2024-02-06 04:04:01 +00:00
Jooyung Han
e5596af7e1 Merge "Install bluetooth audio VINTF fragment in apex" into main am: 0cacd8c7f5
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2949685

Change-Id: I043fbc9d39e21537b05e66d31d962addaaf8eb02
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-06 01:20:20 +00:00
Jooyung Han
92ca5545ca Install bluetooth audio VINTF fragment in apex
Previously, android.hardware.bluetooth.audio-impl was installed with no
use and the attached vintf was fulfilled by the
com.android.hardware.audio apex.

For cleanup, we no longer install android.hardware.bluetooth.audio-impl
separately (for cuttlefish) and install the VINTF inside the apex.

Bug: 312265159
Test: atest VtsHalBluetoothAudioTargetTest
Change-Id: I31e0ccd6a8c3c00565159f2be7fe3bf4d70e9ddf
2024-02-05 11:04:02 +09:00
Jooyung Han
3f23aa7523 Merge "Use LLNDK guard instead of builtin_available" into main am: 63b64e2995
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2943125

Change-Id: I85ae07b6cd65ac885f18dff099444573369dd528
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-02 02:19:53 +00:00
Jooyung Han
63b64e2995 Merge "Use LLNDK guard instead of builtin_available" into main 2024-02-02 01:58:22 +00:00
Jooyung Han
23e5bf2873 Use LLNDK guard instead of builtin_available
APEXSUPPORT_API was a workaround when we had no support for
__ANDROID_VENDOR_API__. Since we have it now, use it instead of
builtin_available(android APEXSUPPORT_API).

Bug: 302088370
Test: CtsMediaAudioTestCases
Change-Id: I28b0e0ebab5f357a2f5cc29f244ae5494e379fbe
2024-02-01 12:49:35 +09:00
Treehugger Robot
178592e696 Merge "AHAL: add default values for dynamic port config of hardcoded config." into main am: a64a264f2d
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2941766

Change-Id: I06ea348c29c0d4ed3055884f0151f2974b508f4e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-01 02:16:04 +00:00
Treehugger Robot
a64a264f2d Merge "AHAL: add default values for dynamic port config of hardcoded config." into main 2024-02-01 01:42:36 +00:00
jiabin
129b145133 AHAL: add default values for dynamic port config of hardcoded config.
If the values(format, sample rate, channel mask) are left as unset, they
will be null. In that case, when using them will require checking
nullablitiy to avoid crash.

Bug: 323255506
Test: make and boot
Change-Id: Ic66bf0b6f53750ff8700e531cca13f03fbb72936
2024-01-31 23:56:26 +00:00
Treehugger Robot
8eb4b053f7 Merge "audio: Add tracing to audio I/O and effect processing" into main am: c02d38d7b7
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2940231

Change-Id: I8628b1e11def48298f8f4adde20d49ebd9aaa05c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-01-31 23:49:06 +00:00
Mikhail Naganov
89a6bb7199 audio: Add tracing to audio I/O and effect processing
Emit trace events for audio reads and writes and effect
processing functions. This is to match the HIDL implementation.

Bug: 321233946
Test: `record_android_trace` with `audio` category enabled
Change-Id: I26907b09243fd3e5aaa470a0fb930b34addd3093
2024-01-31 14:19:08 -08:00
Aditya Choudhary
85d604d0db [DON'T BLOCK] Test ownership migration rules am: c5c6c62995
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2939799

Change-Id: I1046113ffdcd09649fa65e023aae0969262772e0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-01-31 17:06:10 +00:00
Aditya Choudhary
c5c6c62995 [DON'T BLOCK] Test ownership migration rules
This CL is created as a best effort to migrate test targets
to the new android ownership model. If you find incorrect or unnecessary
attribution in this CL, please create a separate CL to fix that.

For more details please refer to the link below,
<add g3 doc link>

Bug: 304529413
Test: N/A
Change-Id: I3322344f595f974f730dc824af0110388076d838
2024-01-31 11:06:17 +00:00
Xin Li
763c473c3d Merge Android 24Q1 Release (ab/11220357)
Bug: 319669529
Merged-In: I976f80006aeb88bde2ae34ca4f9be72cea727d9e
Change-Id: Id94b25af52bd2e2847b6858697ab21cc6ce27aa3
2024-01-30 10:36:50 -08:00
Treehugger Robot
320ef27af2 Merge "audio: Reduce the interval between BT proxy registration retries" into main 2024-01-29 23:00:57 +00:00
Mikhail Naganov
19de94764d audio: Reduce the interval between BT proxy registration retries
A follow-up for aosp/2929441. The interval between retries
of connecting to BT proxy must be reduced significantly.
Otherwise, in situations when the BT is not connected
(that happens during tests), the resulting long delay causes
failures at the frameowork level due to resulting long
timeout.

Bug: 322820830
Test: atest audiosystem_tests --iterations 100
Change-Id: Idd84cb22b28d109151f98bb5883dca18a9ae928d
2024-01-29 13:40:27 -08:00
Shunkai Yao
db9b8f08da Merge "Update work buffer size with input/output frame size change" into main 2024-01-29 18:51:47 +00:00
Mikhail Naganov
a5c0437327 audio: Add retries for BT proxy port registration
When ModuleBluetooth::createProxy is invoked on BT device
connection, the BT stack may not be fully ready yet,
and port registration can fail. This is an intermittent
state and registration should succeed after retrying.

Bug: 320838889
Test: atest pts-bot:A2DP/SRC/REL/BV-02-I
Change-Id: I0c7cf7c1c6a8ee03ef55b004f89139e3b56ee9cd
2024-01-26 16:19:45 -08:00
Shunkai Yao
08c05dd017 Update work buffer size with input/output frame size change
call process with the minimal of input/output fmq data capacity

Bug: 321543210
Test: atest VtsHalAudioEffectTargetTest
Test: flash to pixel phone and test audio
Change-Id: I0c5087f541dc8526ac733a0c35f0d06f878d78a1
2024-01-26 18:59:13 +00:00
Deyao Ren
0874626d77 Create vendor apex for cuttlefish audio and audio effect
Test: launch cuttlefish, CtsMediaAudioTestCases
Bug: 295803971
Change-Id: I056c3e81662f90207702b47664c23b7ddd1db378
2024-01-17 07:12:07 +00:00
Treehugger Robot
759fb98667 Merge "audio: Fix handling of a thread exit command with a bad cookie" into main 2024-01-13 00:40:04 +00:00
Mikhail Naganov
1850779bc4 audio: Fix handling of a thread exit command with a bad cookie
In case when the command was sent by the HAL itself (from another
thread), the worker thread must not post a reply. The only case
when a reply needs to be posted is in the case when the command
was sent from a VTS test. This case is identified by the fact that
the cookie has value '0'.

Bug: 300181540
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Ifeb0722b5cf7346a694c5a938f6b324f5fa825f1
2024-01-12 13:59:24 -08:00
Shunkai Yao
65c7c7051d Effect AIDL: implement IEffect.reopen
- add IEffect.reopen implementation
- now data MQs can update at runtime, sync
  EffectContext access
- add clang thread annotation

Bug: 302036943
Test: atest VtsHalAudioEffectTargetTest
Test: build and test audio effect on Pixel
Change-Id: I3e9fdc2d5eb50b8c1377e0da75573f0eba7ea3f1
Merged-In: I3e9fdc2d5eb50b8c1377e0da75573f0eba7ea3f1
2024-01-12 17:23:28 +00: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
Mikhail Naganov
198e8f747c Merge "audio: Improve logging in remote submix module" into main 2024-01-10 17:53:05 +00:00
Treehugger Robot
a10d3c536f Merge "Audio Effect : Add checks to validate the channel count" into main 2024-01-10 01:46:59 +00:00
Mikhail Naganov
9eb3314a24 audio: Improve logging in remote submix module
Implement IModule::dump to display the current state in
the audioflinger dump.

Throttle repetitive logging when there is nothing to read.

Remove stale comment for already fixed b/307586684.

Bug: 307586684
Test: adb shell dumpsys media.audio_flinger
Change-Id: I1f1f6e1658d035d46af3a933a825b20a78c7f297
2024-01-09 14:13:15 -08:00
Shraddha Basantwani
a3d4847794 Audio Effect : Add checks to validate the channel count
Bug: 302036943
Test: atest audioeffect_analysis
Change-Id: Ic64394e646fa23e02e499c2f01ef3bd4490450d2
2024-01-09 10:37:54 +00:00
Mikhail Naganov
878afae8f8 audio: Fix the type used for timekeeping
On 32-bit builds, the 'long' type is 32 bit. Thus, it can not
be used to store the value returned from 'uptimeNanos'.

Bug: 318055805
Test: atest CtsMediaAudioTestCases
Change-Id: I4abf72415b7241728d3ddb1d11043dfd59a8d08a
2024-01-03 11:27:31 -08:00
Mikhail Naganov
27719f12e8 Revert "Add remote submix direct paths"
This reverts commit ce9767a966.

Please see the comment on aosp/2832731. This configuration
leads to anomalous framework behavior.

Bug: 311830316
Test: atest audiorouting_tests
Change-Id: I5be3ac18819e297aa199c5a0f5d2e85758448b4b
2023-12-27 15:54:30 -08:00
Mikhail Naganov
a88cf60b87 audio: Fix BT AIDL HAL module implementation
In order to align with legacy behavior, when opening a stream,
the module must suggest the current configuration of the BT session.
For that to work, the BT device proxy must be opened prior
to creating a stream, code moved to ModuleBluetooth.

Fix minor inconsistencies and bugs found during testing.

Bug: 301213930
Bug: 316027906
Test: atest pts-bot
Change-Id: I04ddaf73be82f872a3f32a789563c3cbd648eb61
2023-12-26 16:34:58 -08:00
Mikhail Naganov
3b732895a8 audio r_submix: Suggest configuration from the peer
When there is a pipe established for a remote submix
device, suggest the configuration of the peer when opening
the other end.

Refactor SubmixRoute management to move it out from
StreamRemoteSubmix so that ModuleRemoteSubmix could also
use it.

Bug: 294962274
Test: atest audiorouting_tests
Change-Id: Ib31a662e7b65b92c614dc441a01160cae3485f3a
2023-12-26 10:31:43 -08:00
Mikhail Naganov
a92039ac48 audio: Refactor configuration population
In 'Module::setAudioPortConfig' allow subclasses to provide
their own suggested configuration.

In 'Module::populateConnectedDevicePort' provide the ID of
the device port instance that will be created as a result
of connecting an external device.

Also, expose 'ModuleDebug' flags to subclasses so that they
can know when device connections are simulated.

Bug: 264712385
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Iceb2bdeb61c3470554b592fe197efa54d3b9e578
2023-12-20 14:31:47 -08:00
Shunkai Yao
52da94e290 Effect AIDL: cleanup dependencies
Bug: 316236907
Test: Enable AIDL and build
Test: atest --test-mapping hardware/interfaces/audio/aidl/vts
Change-Id: Id1e28b5852a1a8c154f31f4918326de7df8bfc54
2023-12-19 00:37:36 +00:00
Shunkai Yao
f60fc373d9 Spatializer default implementatoin with VTS
Bug: 273373363
Test: atest VtsHalSpatializerTargetTest
Test: atest VtsHalAudioEffectTargetTest

Change-Id: I41218661ac7265723258303438dd01f704838188
2023-12-18 16:36:59 +00:00
Dean Wheatley
ce9767a966 Add remote submix direct paths
Explicitly reject remote submix non PCM input or output streams.

Bug: 311830316
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I3da9282d0f4ecb91dea65f784294e94436765538
2023-12-14 16:06:40 +11:00
Mikhail Naganov
6f69fb3608 Merge "audio: Fix remote submix behavior with multiple inputs" into main am: fb29f53f53 am: 06fef676a6 am: 6603708d1e
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2871775

Change-Id: I5b12d76acfd7229554c730b0526685022688276d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-13 19:32:38 +00:00
Treehugger Robot
0d3349c717 Merge "AHAL: add API to notify the HAL module about disconnecting device." into main 2023-12-13 18:40:21 +00:00
Mikhail Naganov
fb29f53f53 Merge "audio: Fix remote submix behavior with multiple inputs" into main 2023-12-13 17:45:13 +00:00
Treehugger Robot
e91038dfc4 Merge "Audio AIDL : Pick PreProcessing library for 2 audio effects" into main am: 71f56141e7 am: d02973eac8 am: 56df6b5fa0
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2870276

Change-Id: Iffa33b0a642d62d1d1a0cbebc1ea3320b1b4c237
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-13 08:44:13 +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
Mikhail Naganov
7b234d483f audio: Fix remote submix behavior with multiple inputs
Align the behavior of the new implementation with the legacy
implementation in the case when the client opens multiple
input streams on the same remote submix device.

Reduce the HAL buffer size to match legacy behavior.

Bug: 264712385
Test: atest CtsVirtualDevicesTestCases --test-filter=".*VirtualAudioTest.*"
(cherry picked from commit a83c8a5518)
Change-Id: I6f5e6a2c133059c66269b1bdd8a30392db282c4d
2023-12-12 15:55:22 -08:00
Shunkai Yao
0347f0eff0 Revert "audio: Fix remote submix behavior with multiple inputs"
Revert submission 2862771-cuttlefish_aidl_audio-2

Reason for revert: b/316027906

Reverted changes: /q/submissionid:2862771-cuttlefish_aidl_audio-2

Change-Id: I68932be8dad4b4fd4214d0ae6fc01202727f1658
2023-12-12 22:55:59 +00:00
jiabin
bc79ff19e8 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
2023-12-12 17:44:28 +00:00
Sneha Patil
71b814c4b7 Audio AIDL : Pick PreProcessing library for 2 audio effects
Bug: 305866207
Test: atest VtsHalAECTargetTest
Test: atest VtsHalNSTargetTest
Change-Id: I4fcd95abe6834dec13e570ad2ecb5cd4f1bdc1d3
2023-12-12 17:51:00 +05:30
Mikhail Naganov
a83c8a5518 audio: Fix remote submix behavior with multiple inputs
Align the behavior of the new implementation with the legacy
implementation in the case when the client opens multiple
input streams on the same remote submix device.

Reduce the HAL buffer size to match legacy behavior.

Bug: 264712385
Test: atest CtsVirtualDevicesTestCases --test-filter=".*VirtualAudioTest.*"
Change-Id: Ia86a8480495693595dbb501ec58e5d1d238abab2
2023-12-08 09:37:41 -08:00
Yi Kong
62b951e58b Fix -Wunused-variable compiler warning am: 810d41a774 am: 4eeda91a4a am: 76705af803
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2861356

Change-Id: I00242599f1a67f59a8e2f415ffa52231d54007dc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-06 13:50:56 +00:00
Yi Kong
810d41a774 Fix -Wunused-variable compiler warning
Test: presubmit
Change-Id: I146d3435fe76da7f300452a14b62ce430c38ae36
2023-12-06 14:03:58 +09:00
Mikhail Naganov
04b72a2c81 Merge "audio: Adjust after "bus" device type change" into main am: a0df73110e am: 727289b30d am: 2f397365a6
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2858026

Change-Id: I50e5c1f17014823891bf59542066bc13547c2198
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-05 21:01:11 +00:00