Commit graph

965 commits

Author SHA1 Message Date
Ytai Ben-Tsvi
f30af28640 Add dependencies to VtsHalAudioTargetTest_defaults
Needed in response to libaudioclient/libaudiofoundation refactor.

Test: Compiles
Change-Id: I57ef815e932a2e775a70c38fb8e3c7cdda06db54
2020-11-18 14:36:45 -08:00
Hayden Gomes
e502a601c9 Changing package for audio_policy_configuration_V7_0
- Changed package to use android. prefix
- Added nullability flag to xsd_config

Bug: 171572311
Test: built and atest VtsHalAudioEffectV7_0TargetTest
VtsHalAudioEffectV7_0TargetTest VtsHalAudioEffectV4_0TargetTest
VtsAidlHalAudioControlTest

Change-Id: I9ac83a98256404313b5efef17c0a164d2ee72136
2020-11-11 15:41:32 -08:00
Mikhail Naganov
9d9f970ee4 audio: Add @export annotations to microphone-related enums
This addresses long-standing TODOs in system/audio.h.
Annotated the following enums:

 - AudioMicrophoneChannelMapping;
 - AudioMicrophoneLocation;
 - AudioMicrophoneDirectionality.

This allows removing hand-written conversion functions
since the values are guaranteed to match between HIDL and
system/audio.h.

Bug: 122858783
Test: m
Change-Id: I2bf250ef9154a7ae86679afa566c80dfd01f1d5b
2020-11-02 19:56:48 +00:00
Mikhail Naganov
a5273c760c Make audio*-base.h files autogenerated again
Major change: audio-base.h is generated from "core" types.hal,
new file audio_common-base.h is generated from "common" types.hal.

In order to be able to add system-only constants to generated
enums, the latter are made anonymous, values got "HAL_" prefix.
Then in system/audio.h a full enum is constructed.

Removed audio_drain_type_t from exported, as it belongs to
libhardware only.

Added missing enums that were introduced at the system side
only in Android R.

Bug: 122858783
Test: m
Change-Id: I8c017912395a03beacea077fd562fae2329ad975
2020-10-26 20:15:17 +00:00
Mikhail Naganov
bbbec8229f audio: Align lists of enum values between framework and HAL
Enum values defined in the XSD now correspond to the
"no system definitions" lists of enums in
system/media/audio/audio-hal-enums.h.

Added channel masks that used to be in s/m/a/audio-base-utils.h.
Removed use of "vectors of vectors" for channel masks
since individual channels are not allowed to be used
in the APM config and at the HAL transport level.

Fixed definition of the gain mode of audio ports:

1. Since it's a bit mask in the framework, it must be a list in
   the audio policy configuration XML file. Note that the old
   definition is compatible with the new one as one element is a
   valid list.
2. As gain mode is defined in the XSD file, it shouldn't be
   defined again in types.hal.

Bug: 122858783
Bug: 142480271
Test: audio smoke tests
Change-Id: I2df5eb4bc4a393611d3adb0ee30583767197591b
2020-10-23 00:22:30 +00:00
Mikhail Naganov
b0c4bd081e Revert "audio: Align lists of enum values between framework and HAL"
Revert submission 12851233-hal-enum-strings

Reason for revert: breaks slider device
Reverted Changes:
I4f64a8b61:Use system/audio to/from string converters in Type...
Iddaa92bf2:Move enums shared with HAL to audio-hal-enums.h
Ie5896775b:audio: Align lists of enum values between framewor...

Bug: 171262726
Change-Id: I35c1acf6ed07b533292d1264b6237766458fd711
2020-10-20 01:29:53 +00:00
Mikhail Naganov
8d8dfcd8ed audio: Align lists of enum values between framework and HAL
Enum values defined in the XSD now correspond to the
"no system definitions" lists of enums in
system/media/audio/audio-hal-enums.h.

Added channel masks that used to be in s/m/a/audio-base-utils.h.
Removed use of "vectors of vectors" for channel masks
since individual channels are not allowed to be used
in the APM config and at the HAL transport level.

Fixed definition of the gain mode of audio ports:

1. Since it's a bit mask in the framework, it must be a list in
   the audio policy configuration XML file. Note that the old
   definition is compatible with the new one as one element is a
   valid list.
2. As gain mode is defined in the XSD file, it shouldn't be
   defined again in types.hal.

Added 'AUDIO_SOURCE_HOTWORD'.

Bug: 122858783
Bug: 142480271
Test: audio smoke tests
Change-Id: Ie5896775b6bc7dfd3ab158c4a7b497dbda827e9d
2020-10-16 23:01:13 +00:00
TreeHugger Robot
28ba211ae0 Merge "Convert mask types from uint32_t to enum type" 2020-10-13 05:05:42 +00:00
Grzegorz Kolodziejczyk
8dff34bce3 Introduce LE Audio software provider for bluetooth audio 2.1 am: b5f2d23e26 am: a1663edb70 am: 9e834165ad am: 8e5eb20aad
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1404810

Change-Id: If8fda8b0ad4ee39ffd7d4a6df048efe758f456bd
2020-10-09 19:16:06 +00:00
Grzegorz Kolodziejczyk
9e834165ad Introduce LE Audio software provider for bluetooth audio 2.1 am: b5f2d23e26 am: a1663edb70
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1404810

Change-Id: I0d1d2a08de4b5a8184ff0457f7587a30905b5a46
2020-10-09 18:41:41 +00:00
Grzegorz Kolodziejczyk
b5f2d23e26 Introduce LE Audio software provider for bluetooth audio 2.1
Patch introduces LE Audio software encoding provider for bluetooth audio 2.1.

Bug: 150670922
Tag: #feature
Test: vts-tradefed run vts -m VtsHalBluetoothAudioV2_1TargetTest
Sponsor: jpawlowski@
Change-Id: If668593be7a46c9abcc45d21c5bdb9b493864cc1
2020-10-09 17:54:44 +00:00
Mikhail Naganov
9da19c7cfa Convert mask types from uint32_t to enum type
This applies to the following types:

- audio_gain_mode_t;
- audio_flags_mask_t;
- audio_channel_representation_t;
- audio_channel_mask_t;
- audio_devices_t.

Enum types are distinct thus proper overloading on the type
is possible in C++. Also, assignments to enum types are
less prone to errors.

Bug: 169889714
Test: basic audio functionality
Change-Id: I07e96ae99724f38fe0b40194f4feab7ff68418e7
2020-10-08 17:25:09 +00:00
Treehugger Robot
a668303dbe Merge "Remove vts10 reference vts_target_tests_defaults" am: c576a3ccba am: 06640f702b am: de1427a797 am: 659769bff3
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1449815

Change-Id: Ib28e3b72edf79f477b91627625208e2d43ce110e
2020-10-06 00:58:31 +00:00
Treehugger Robot
de1427a797 Merge "Remove vts10 reference vts_target_tests_defaults" am: c576a3ccba am: 06640f702b
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1449815

Change-Id: I18bf2466b59e26245d4bd43a484d14e966ef483d
2020-10-06 00:12:58 +00:00
Dan Shi
f27b504a10 Remove vts10 reference vts_target_tests_defaults
The module is obsoleted.

Bug: 169581727
Test: build
Change-Id: I55853a2cde4c042c489b0e6ac8bcab93fc47be73
2020-10-05 10:48:24 -07:00
Mikhail Naganov
58d9942ade Remove PREUPLOAD.cfg from audio HAL example
As suggested by the comment on ag/12691153

Bug: 142480271
Test: N/A
Change-Id: Ic9e2b986d3f9734dd884a2c88ca86d251147126b
2020-09-30 00:09:16 +00:00
TreeHugger Robot
6a73ac5b4a Merge changes from topic "nullzero-hal-v7"
* changes:
  audio: Implement VTS tests for V7.0
  audio: Add example HAL implementation
  audio: Reformat README as Markdown
  audio: HAL V7 tweaks
2020-09-29 21:02:17 +00:00
Mikhail Naganov
343450a074 audio: Implement VTS tests for V7.0
The major change in V7.0 is use of enum values defined
in the Audio Policy Configuration XSD schema. This allows
decoupling types used at the HIDL layer from system/audio.h.
Added a header audio_policy_configuration_V7_0-enums.h
with utility functions analogous to ones from system/audio.h
but defined for the types generated from XSD schema.

Since the code of VTS tests is shared between versions,
ensured that the VTS tests for the previous HAL versions
didn't regress.

Bug: 142480271
Test: atest VtsHalAudioV6_0TargetTest
      atest VtsHalAudioEffectV6_0TargetTest
      atest VtsHalAudioV7_0TargetTest
      atest VtsHalAudioEffectV7_0TargetTest
Change-Id: Ia7c2d49a02783725080c8fed6a25853e91bba487
2020-09-29 17:45:13 +00:00
TreeHugger Robot
082aabe644 Merge "Make getPresentationPosition mandatory." 2020-09-29 00:10:24 +00:00
Mikhail Naganov
c9e1607de4 audio: Add example HAL implementation
This is partial implementation of the example V7.0 audio HAL
which passes VTS tests. Note that the 'core' part
of the HAL (IDevice/IStream) isn't implemented yet.
It passes VTS because it doesn't provide any devices
(modules) and the audio HAL isn't the 'default' instance.

Bug: 142480271
Test: atest VtsHalAudioV7_0TargetTest
      atest VtsHalAudioEffectV7_0TargetTest
Change-Id: Ie3dd62c5db1cdb5534df4dd7f326c4c8776bf3c4
2020-09-28 23:18:37 +00:00
Mikhail Naganov
108e702dc7 audio: Reformat README as Markdown
Rename README -> README.md, reformat it as Markdown.
Provide missing descriptions for some directories.

Bug: 142480271
Test: N/A
Change-Id: Ic6f60a21def4bf210a7e1446454d709f68a13422
2020-09-28 18:55:50 +00:00
Mikhail Naganov
648ec5b750 audio: HAL V7 tweaks
- rename AudioBasicConfig -> AudioConfigBase to better
  match a similar structure in audio.h;

- define AudioProfile structure for defining an I/O profile;

- use AudioProfile to replace IStream.getSupported* methods
  with a single IStream.getSupportedProfiles method;

- define AudioDevice type for convenience and clarity;

- move enums definition for AudioInputFlags and AudioOutputFlags
  into XSD. This allows parsing APM config w/o depending on
  the framework code.

Bug: 142480271
Test: m
Change-Id: I1951b2de383751fe53b96954dfd02cdd1ab6cc8f
2020-09-28 18:55:50 +00:00
Dan Shi
ecbff25e71 Merge "Suppress gtest error for tests without any instance" am: de3f15adc0 am: acfabe652f am: 6086e20a02
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1425889

Change-Id: Ifcff46f571a3b4d0fdd996c1249a8838ca1d7e84
2020-09-16 00:00:37 +00:00
jiabin
c3b3f81272 Make getPresentationPosition mandatory.
GetPresentationPosition is marked as optional method at audio HAL v4.0.
This method return a recent count of number of audio frames presented to
an external observer. Making it mandatory can help improve the timestamp
reporting.

Test: make
Bug: 158609200
Change-Id: Ic164c10e4c406e7382cdc676f13c64de49e48734
2020-09-11 23:14:42 +00:00
Dan Shi
ac9cf4482b Suppress gtest error for tests without any instance
Bug: 162052785
Test: m -j vts
Change-Id: I627d6790aa08aa9c6e3c5b8bdc533213ee08de21
Merged-In: I627d6790aa08aa9c6e3c5b8bdc533213ee08de21
2020-09-11 11:02:25 -07:00
Dan Shi
6b0fd062bb Suppress gtest error for tests without any instance
Bug: 162052785
Test: m -j vts
Change-Id: I627d6790aa08aa9c6e3c5b8bdc533213ee08de21
2020-09-08 10:42:38 -07:00
Xin Li
36dcf1a404 Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)
Bug: 166295507
Merged-In: I6502829205ede2de914b27e6c2c5c42916af2b39
Change-Id: I7cb06511e43bd1fffd5f80a11dbdf5b1314cfe8e
2020-08-28 13:05:04 -07:00
Mikhail Naganov
7dd87f42f1 Audio: Rearrange types in V7
Update channel mask and SR lists to conform to XSD.
Added a script for converting existing APM XML files.

Bug: 142480271
Test: m
Change-Id: I986b9bccdade5fa850b06b033143388715a656af
2020-08-17 18:06:46 +00:00
Mikhail Naganov
6cd03bfdb9 Audio: Build file updates
Add target for the library with code generated by xsdc.

Temporarily disable default implementation and VTS targets.

Bug: 142480271
Test: m
Change-Id: I6c891893398617a36f4748f185e189064ba4d4ee
2020-08-14 18:13:31 +00:00
Mikhail Naganov
159260c586 Audio: Copy HAL V6 into V7
This is an automated copy performed using copyHAL.sh script.

Bug: 142480271
Test: m
Change-Id: Ifd91cc0bb59608cd92d1d8e4e76c3abea0a8da5e
2020-08-14 18:13:31 +00:00
Mikhail Naganov
5ebbfe417c Audio: Update and fix copyHAL script
Make necessary updates and fixes to produce HAL V7 and VTS.

Bug: 142480271
Test: audio/common/all-versions/copyHAL.sh 6.0 7.0 &&
      atest --rebuild-module-info -b VtsHalAudioV7_0TargetTest &&
      m
Change-Id: I5bc2344dae611fbf7e3e0fef185deee999c4aefa
2020-08-14 18:13:22 +00:00
Jasmine Cha
10828b9168 Audio VTS: Fix empty parameter list failures for AudioV6 am: 1eb1f36877 am: 0c0bdf4db2 am: 58a2095cc0
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1382482

Change-Id: I6711731b080eed56c7605194fa83faa8e76367cc
2020-08-03 21:01:37 +00:00
Jasmine Cha
58a2095cc0 Audio VTS: Fix empty parameter list failures for AudioV6 am: 1eb1f36877 am: 0c0bdf4db2
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1382482

Change-Id: I7798e6c080a090459a646d9ee3013f3d101b5978
2020-08-03 20:33:06 +00:00
Jasmine Cha
1eb1f36877 Audio VTS: Fix empty parameter list failures for AudioV6
For AudioV6, OptionalInputBufferSizeTest isn't included in macro
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST.

Bug: 162715033
Test: atest VtsHalAudioV6_0TargetTest

Signed-off-by: Jasmine Cha <chajasmine@google.com>
Change-Id: I526fe166594283540804ee61265c6000de5a89e8
2020-08-03 08:49:38 +00:00
Treehugger Robot
b4a1b4f93a Merge "Provide defaults for android.hardware.audio@6.0-impl" am: 3f5116a1f6 am: 5912212c62 am: 3ef9947624
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1366502

Change-Id: I6bfc3c3cc6209c93721d490d644f5babf10682cc
2020-07-22 17:31:46 +00:00
Treehugger Robot
3ef9947624 Merge "Provide defaults for android.hardware.audio@6.0-impl" am: 3f5116a1f6 am: 5912212c62
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1366502

Change-Id: Ib211fdb5c61f6ad1893561d9bd6d86bff0b28178
2020-07-22 17:05:44 +00:00
Treehugger Robot
3f5116a1f6 Merge "Provide defaults for android.hardware.audio@6.0-impl" 2020-07-22 16:37:39 +00:00
Mikhail Naganov
cc4656f5a8 Audio VTS: Suppress empty parameter list failures am: b9743d4728 am: 948929d067 am: 4084fa17b5
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1368656

Change-Id: I6384554bbd26a38c8b3e947b1db313e841d4cd56
2020-07-22 00:47:30 +00:00
Mikhail Naganov
4084fa17b5 Audio VTS: Suppress empty parameter list failures am: b9743d4728 am: 948929d067
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1368656

Change-Id: I3d5925bd34bd84cbf65cf6f86797c1a4f4263ac6
2020-07-22 00:33:45 +00:00
Mikhail Naganov
b9743d4728 Audio VTS: Suppress empty parameter list failures
GTest has introduced a check verifying that the parameter list
for TEST_P tests isn't empty. Having an empty parameter list
isn't actually a problem when the VTS test runs on a device
that lacks the corresponding HAL version.

Bug: 161758075
Test: atest VtsHalAudioV4_0TargetTest
Test: atest VtsHalAudioV5_0TargetTest
Test: atest VtsHalAudioV6_0TargetTest
Test: atest VtsHalAudioEffectV4_0TargetTest
Test: atest VtsHalAudioEffectV5_0TargetTest
Test: atest VtsHalAudioEffectV6_0TargetTest
Change-Id: Ib2a017b74f69b1608d8985f403e9b2a8e54b8311
2020-07-21 10:57:03 -07:00
Roman Kiryanov
411edccbb3 Provide defaults for android.hardware.audio@6.0-impl
This will allow vendors to create instances of
this library with other names. A different name
is required if a vendor wants to provide a custom
version (e.g. in HIDL) of
android.hardware.audio@6.0-impl and still
be able to use the library itself (e.g. to load
audio.r_submix.default) -
android.hardware.audio.service does not load both
libraries and prefers the default one.

Bug: 161485545
Test: boot emulator, check if audio works
Signed-off-by: Roman Kiryanov <rkir@google.com>
Change-Id: I55c4f9b1386be3464ad0f5f2568423843e7eae88
2020-07-20 16:08:17 -07:00
Inseob Kim
e396a3d004 Use shared variant of VNDK libmedia_helper
Vendor modules should use shared VNDK.

Bug: 137178339
Test: m && boot blueline
Change-Id: I56ad69125811ff768d8064af34acf5603b575b4b
Merged-In: I56ad69125811ff768d8064af34acf5603b575b4b
2020-07-20 16:08:00 -07:00
Victor Khimenko
bc17fa5b94 Make android.hardware.renderscript@1.0 buildable for native_bridge am: 7cac9425b0 am: d454bfb695 am: 7d537ae398
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1358405

Change-Id: I706673f510b982658d1d20aa05d34cae07ef97e6
2020-07-09 20:37:45 +00:00
Victor Khimenko
7d537ae398 Make android.hardware.renderscript@1.0 buildable for native_bridge am: 7cac9425b0 am: d454bfb695
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1358405

Change-Id: I9b3d2a48add5c2dd65948dbd1e779cc29b5a2fb9
2020-07-09 20:26:55 +00:00
Victor Khimenko
7cac9425b0 Make android.hardware.renderscript@1.0 buildable for native_bridge
Bug: http://b/153609531

Test: m android.hardware.renderscript@1.0.native_bridge

Change-Id: If11376cdd583629c8edfea17efb130dd68dc9b8f
2020-07-08 21:20:03 +00:00
Jooyung Han
d610435ac4 update hidl .bp
HIDL libs are not necessarily part of VNDK now. Because some are
used by VNDK libs, they are still VNDK. But rest are now just
vendor-available.

.hidl_for_test files are also removed because they are used to exclude
test-purpose hidl libs from VNDK libs.

Instead, .hidl_for_system_ext files are added to tests/lazy to
distinguish them from others which are installed /system.

Bug: 143933769
Test: update-makefiles.sh && m com.android.vndk.current
Merged-In: Ia81312dda340b6b5cbdd7a3c21e1d323bda39a4a
Change-Id: Ia81312dda340b6b5cbdd7a3c21e1d323bda39a4a
(cherry picked from commit b0907a6bb8)
2020-07-07 16:22:36 +09:00
Jooyung Han
cd47c5e12f Merge "update hidl .bp" into rvc-dev-plus-aosp am: 84ff4f4640
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/interfaces/+/12066061

Change-Id: I7c9b5b977b92536c33c901fb91e0048c414c5bfc
2020-07-06 21:53:06 +00:00
Jooyung Han
d18cba85fe update hidl .bp
HIDL libs are not necessarily part of VNDK now. Because some are
used by VNDK libs, they are still VNDK. But rest are now just
vendor-available.

.hidl_for_test files are also removed because they are used to exclude
test-purpose hidl libs from VNDK libs.

Instead, .hidl_for_system_ext files are added to tests/lazy to
distinguish them from others which are installed /system.

Bug: 143933769
Test: update-makefiles.sh && m com.android.vndk.current
Merged-In: Ia81312dda340b6b5cbdd7a3c21e1d323bda39a4a
Change-Id: Ia81312dda340b6b5cbdd7a3c21e1d323bda39a4a
(cherry picked from commit b0907a6bb8)
2020-07-02 12:26:37 +09:00
Treehugger Robot
5afb2c148a Merge "Build 64-bit audio service on 64-bit-only" am: 01937cb938 am: a0ac5fce1e am: 4a432b55c2
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1327194

Change-Id: I197f4cd6d203ed0b151943b66a6dd6d05bb796ef
2020-06-26 23:24:41 +00:00
Treehugger Robot
4a432b55c2 Merge "Build 64-bit audio service on 64-bit-only" am: 01937cb938 am: a0ac5fce1e
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1327194

Change-Id: Icbba8512e69264181b8ed68f84064f1563f54cb9
2020-06-26 23:10:19 +00:00