summaryrefslogtreecommitdiff
path: root/audio/effect/all-versions/default
AgeCommit message (Collapse)Author
2022-12-16audio HAL: Optimize for Spatial AudioAndy Hung
Add CAP_SYS_NICE. Allow util_clamp_min for Spatializer Effect worker thread. Reduce glitches caused by core migration. Reduce power consumption as Spatializer Effect is DSP compute bound. This change only affects Spatial Audio Effect processing. Test: instrumented Test: adb shell 'uclampset -a -p $(pgrep -of android.hardware.audio.service)' Test: adb shell cat "/proc/$(adb shell pgrep -of android.hardware.audio.service)/status" Test: adb shell 'ps -Tl -p $(pgrep -of android.hardware.audio.service)' Bug: 181148259 Bug: 260918856 Bug: 261228892 Bug: 261686532 Bug: 262803152 Change-Id: I59ea99e8a1720f61954747f6c29e14cfea9a0f56
2022-12-05audio HAL: set minimum Binder access priorityAndy Hung
Use setMinSchedulerPolicy to enforce minimum thread priority when accessing the audio HAL to ANDROID_PRIORITY_AUDIO Test: instrumented Bug: 261496726 Change-Id: I700b04d3060e9405b1445206882a6131cea0d045
2022-10-19EffectHal: Support retrieving worker thread tidAndy Hung
Use 'gtid' as the command, returns the worker thread tid. Test: see bug Bug: 253276925 Change-Id: Ia4fa129c62cf6df97821c34876b517944bc5322f
2022-09-01audio: Add checks to effects feature configs retrievalMikhail Naganov
The size of the feature config needs to be limited by the Binder transaction size. This check is enforced before calling into legacy C API. Also, fixed invalid calculation of buffer size in Effect::getSupportedConfigsImpl. Bug: 240266798 Test: atest VtsHalAudioEffectV7_0TargetTest Change-Id: I1a1f7931a07e28642967fa68d9a358429138db29
2022-07-08audio: Add checks to HIDL -> effect_param_t conversionMikhail Naganov
By convention, the size of the resulting effect_param_t can not exceed EFFECT_PARAM_SIZE_MAX. This checks needs to be enforced when converting from HIDL arguments into legacy C API structures. Bug: 237291425 Test: atest VtsHalAudioEffectV7_0TargetTest Change-Id: Ie92f62b002dc622fa8246139c3d956909670fdb6
2022-05-04Effect: benchmark the effect processAndy Hung
Required for Spatializer tuning. Test: adb shell dumpsys media.audio_flinger Bug: 228862341 Change-Id: I59f3b35c9cdd1e45e9afc79cbf9aac30a5decd67
2022-01-25Audio HAL V7.1: Update VTSMikhail Naganov
Mechanical updates from global greps. Updated test code to use new methods from V7.1. Added missing checks for null pointers in PcmOnlyConfig...StreamTest::releasePatchIfNeeded for V7. Bug: 214426419 Test: atest VtsHalAudioV7_1TargetTest Change-Id: Id3a99993bf2ee0c87d44f668d759f7c10db9a435
2022-01-25Audio HAL V7.1: Update the default implementationMikhail Naganov
Split versions of "common" and "core" types from the version of the interfaces. "Common" and "core" versions are set to 7.0. Implemented new methods of V7.1 interfaces. Bug: 214426419 Test: m android.hardware.audio@7.1-impl Test: m android.hardware.audio@7.0-impl Test: m android.hardware.audio.effect@7.0-impl Test: m android.hardware.audio@6.0-impl Change-Id: Ic4c44d4ac9bbfa7b62695866b9aa7473658390b2
2021-08-18Remove libaudioclient from vendorAndy Hung
Test: compiles Bug: 189371870 Change-Id: Ic96bbb0c370883866fac731ef5e6941c1994c7c6
2021-03-30audio: Fix fixed size char array conversionsMikhail Naganov
For legacy HAL strings that are fixed size arrays the conversion code was using the array size for the HIDL string size. This lead to logging of error messages during reverse conversion. Fixed issue and refactored code to avoid duplication. Bug: 181269159 Test: atest android.hardware.audio.effect@7.0-util_tests also, verify that no error messages from EffectUtil appear during boot and audio playback Change-Id: Iac36ff33e65c502966ac2b7a4870cb5830545b23
2021-03-18audio: Update OWNERSMikhail Naganov
Add missing OWNERS files for default implementation and utilities code. Remove krocard@, add ytai@ to ST HAL default implementations. Test: N/A Change-Id: I22734cd7382c0988d0c6001164deb775e9ae55c0
2021-03-13audio: Use strings for EffectDescriptor.{name|implementor}Mikhail Naganov
The use of fixed size char arrays was a direct copy of the C structure approach. In HIDL, the canonical approach is to use strings. Bug: 181883090 Test: atest android.hardware.audio.effect@7.0-util_tests Change-Id: I468810e07e5ba8b3bd6f03c5acfa24009ef2e48a
2021-02-21[LSC] Add LOCAL_LICENSE_KINDS to hardware/interfacesBob Badour
Added SPDX-license-identifier-Apache-2.0 to: atrace/1.0/Android.bp atrace/1.0/default/Android.bp atrace/1.0/vts/functional/Android.bp audio/2.0/Android.bp audio/2.0/config/Android.bp audio/4.0/Android.bp audio/4.0/config/Android.bp audio/5.0/Android.bp audio/5.0/config/Android.bp audio/6.0/Android.bp audio/6.0/config/Android.bp audio/7.0/Android.bp audio/7.0/config/Android.bp audio/common/2.0/Android.bp audio/common/4.0/Android.bp audio/common/5.0/Android.bp audio/common/6.0/Android.bp audio/common/7.0/Android.bp audio/common/7.0/example/Android.bp audio/common/all-versions/default/Android.bp audio/common/all-versions/default/service/Android.bp audio/common/all-versions/test/utility/Android.bp audio/common/all-versions/util/Android.bp audio/core/all-versions/default/Android.bp audio/core/all-versions/default/util/Android.bp audio/core/all-versions/vts/functional/Android.bp audio/effect/2.0/Android.bp audio/effect/2.0/xml/Android.bp audio/effect/4.0/Android.bp audio/effect/4.0/xml/Android.bp audio/effect/5.0/Android.bp audio/effect/5.0/xml/Android.bp audio/effect/6.0/Android.bp audio/effect/6.0/xml/Android.bp audio/effect/7.0/Android.bp audio/effect/7.0/xml/Android.bp audio/effect/all-versions/default/Android.bp audio/effect/all-versions/default/util/Android.bp audio/effect/all-versions/vts/functional/Android.bp audio/policy/1.0/vts/functional/Android.bp audio/policy/1.0/xml/Android.bp audio/policy/1.0/xml/pfw_schemas/Android.bp authsecret/1.0/Android.bp authsecret/1.0/default/Android.bp authsecret/1.0/vts/functional/Android.bp authsecret/aidl/Android.bp authsecret/aidl/default/Android.bp authsecret/aidl/vts/Android.bp automotive/audiocontrol/1.0/Android.bp automotive/audiocontrol/1.0/default/Android.bp automotive/audiocontrol/1.0/vts/functional/Android.bp automotive/audiocontrol/2.0/Android.bp automotive/audiocontrol/2.0/default/Android.bp automotive/audiocontrol/2.0/vts/functional/Android.bp automotive/can/1.0/default/libnetdevice/Android.bp automotive/can/1.0/hidl-utils/Android.bp automotive/can/1.0/tools/Android.bp automotive/can/1.0/tools/configurator/Android.bp automotive/can/1.0/tools/configurator/proto/Android.bp automotive/can/1.0/tools/libcanhaltools/Android.bp automotive/can/1.0/vts/functional/Android.bp automotive/can/1.0/vts/utils/Android.bp automotive/evs/1.0/Android.bp automotive/evs/1.0/default/Android.bp automotive/evs/1.0/vts/functional/Android.bp automotive/evs/1.1/Android.bp automotive/evs/1.1/default/Android.bp automotive/evs/1.1/vts/functional/Android.bp automotive/evs/1.1/vts/fuzzing/Android.bp automotive/evs/common/utils/default/Android.bp automotive/evs/common/utils/default/test/fuzz/Android.bp automotive/occupant_awareness/aidl/Android.bp automotive/occupant_awareness/aidl/default/Android.bp automotive/occupant_awareness/aidl/mock/Android.bp automotive/occupant_awareness/aidl/vts/functional/Android.bp automotive/sv/1.0/Android.bp automotive/sv/1.0/default/Android.bp automotive/sv/1.0/vts/functional/Android.bp automotive/vehicle/2.0/Android.bp automotive/vehicle/2.0/default/Android.bp automotive/vehicle/2.0/default/impl/vhal_v2_0/proto/Android.bp automotive/vehicle/2.0/utils/Android.bp biometrics/face/1.0/Android.bp biometrics/face/1.0/default/Android.bp biometrics/face/1.0/vts/functional/Android.bp biometrics/fingerprint/2.1/Android.bp biometrics/fingerprint/2.1/default/Android.bp biometrics/fingerprint/2.1/vts/functional/Android.bp biometrics/fingerprint/2.2/Android.bp biometrics/fingerprint/2.2/vts/functional/Android.bp bluetooth/1.0/Android.bp bluetooth/1.0/default/Android.bp bluetooth/1.0/vts/functional/Android.bp bluetooth/1.1/Android.bp bluetooth/1.1/default/Android.bp bluetooth/1.1/vts/functional/Android.bp bluetooth/a2dp/1.0/Android.bp bluetooth/a2dp/1.0/default/Android.bp bluetooth/a2dp/1.0/vts/functional/Android.bp bluetooth/audio/2.0/Android.bp bluetooth/audio/2.0/default/Android.bp bluetooth/audio/2.0/vts/functional/Android.bp bluetooth/audio/2.1/Android.bp bluetooth/audio/2.1/default/Android.bp bluetooth/audio/2.1/vts/functional/Android.bp bluetooth/audio/utils/Android.bp boot/1.0/Android.bp boot/1.0/default/Android.bp boot/1.0/vts/functional/Android.bp boot/1.1/Android.bp boot/1.1/default/Android.bp boot/1.1/default/boot_control/Android.bp boot/1.1/vts/functional/Android.bp boot/1.2/Android.bp boot/1.2/default/Android.bp boot/1.2/vts/functional/Android.bp broadcastradio/1.0/Android.bp broadcastradio/1.0/default/Android.bp broadcastradio/1.0/vts/functional/Android.bp broadcastradio/1.1/Android.bp broadcastradio/1.1/default/Android.bp broadcastradio/1.1/vts/functional/Android.bp broadcastradio/2.0/Android.bp broadcastradio/2.0/default/Android.bp broadcastradio/2.0/vts/functional/Android.bp broadcastradio/common/tests/Android.bp broadcastradio/common/utils/Android.bp broadcastradio/common/utils1x/Android.bp broadcastradio/common/utils2x/Android.bp broadcastradio/common/vts/utils/Android.bp camera/common/1.0/Android.bp camera/common/1.0/default/Android.bp camera/device/1.0/Android.bp camera/device/1.0/default/Android.bp camera/device/3.2/Android.bp camera/device/3.2/default/Android.bp camera/device/3.3/Android.bp camera/device/3.3/default/Android.bp camera/device/3.4/Android.bp camera/device/3.4/default/Android.bp camera/device/3.5/Android.bp camera/device/3.5/default/Android.bp camera/device/3.6/Android.bp camera/device/3.6/default/Android.bp camera/metadata/3.2/Android.bp camera/metadata/3.3/Android.bp camera/metadata/3.4/Android.bp camera/metadata/3.5/Android.bp camera/provider/2.4/Android.bp camera/provider/2.4/default/Android.bp camera/provider/2.4/vts/functional/Android.bp camera/provider/2.5/Android.bp camera/provider/2.5/default/Android.bp camera/provider/2.6/Android.bp cas/1.0/Android.bp cas/1.0/default/Android.bp cas/1.0/vts/functional/Android.bp cas/1.1/Android.bp cas/1.1/default/Android.bp cas/1.1/vts/functional/Android.bp cas/1.2/Android.bp cas/1.2/default/Android.bp cas/1.2/vts/functional/Android.bp cas/native/1.0/Android.bp common/aidl/Android.bp common/fmq/aidl/Android.bp common/support/Android.bp compatibility_matrices/Android.bp compatibility_matrices/Android.mk compatibility_matrices/build/Android.bp compatibility_matrices/exclude/Android.bp configstore/1.0/Android.bp configstore/1.0/vts/functional/Android.bp configstore/1.1/Android.bp configstore/1.1/default/Android.mk configstore/utils/Android.bp confirmationui/1.0/Android.bp confirmationui/1.0/default/Android.bp confirmationui/1.0/vts/functional/Android.bp confirmationui/support/Android.bp contexthub/1.0/Android.bp contexthub/1.0/default/Android.bp contexthub/1.0/vts/functional/Android.bp contexthub/1.1/Android.bp contexthub/1.1/default/Android.bp contexthub/1.1/vts/functional/Android.bp contexthub/common/vts/Android.bp drm/1.0/Android.bp drm/1.0/default/Android.bp drm/1.0/vts/functional/Android.bp drm/1.1/Android.bp drm/1.1/vts/functional/Android.bp drm/1.2/Android.bp drm/1.2/vts/functional/Android.bp drm/1.3/Android.bp drm/1.3/vts/functional/Android.bp dumpstate/1.0/Android.bp dumpstate/1.0/default/Android.bp dumpstate/1.0/vts/functional/Android.bp dumpstate/1.1/Android.bp dumpstate/1.1/default/Android.bp dumpstate/1.1/vts/functional/Android.bp fastboot/1.0/Android.bp fastboot/1.0/default/Android.bp fastboot/1.1/Android.bp fastboot/1.1/default/Android.bp gatekeeper/1.0/Android.bp gatekeeper/1.0/default/Android.bp gatekeeper/1.0/software/Android.bp gatekeeper/1.0/software/tests/Android.bp gatekeeper/1.0/vts/functional/Android.bp gnss/1.0/Android.bp gnss/1.0/default/Android.bp gnss/1.0/vts/functional/Android.bp gnss/1.1/Android.bp gnss/1.1/default/Android.bp gnss/1.1/vts/functional/Android.bp gnss/2.0/Android.bp gnss/2.0/default/Android.bp gnss/2.0/vts/functional/Android.bp gnss/2.1/Android.bp gnss/2.1/default/Android.bp gnss/2.1/vts/functional/Android.bp gnss/common/utils/default/Android.bp gnss/common/utils/vts/Android.bp gnss/measurement_corrections/1.0/Android.bp gnss/measurement_corrections/1.1/Android.bp gnss/visibility_control/1.0/Android.bp graphics/allocator/2.0/Android.bp graphics/allocator/2.0/default/Android.bp graphics/allocator/2.0/utils/gralloc1-adapter/Android.bp graphics/allocator/2.0/utils/hal/Android.bp graphics/allocator/2.0/utils/passthrough/Android.bp graphics/allocator/3.0/Android.bp graphics/allocator/4.0/Android.bp graphics/bufferqueue/1.0/Android.bp graphics/bufferqueue/2.0/Android.bp graphics/common/1.0/Android.bp graphics/common/1.1/Android.bp graphics/common/1.2/Android.bp graphics/common/aidl/Android.bp graphics/composer/2.1/Android.bp graphics/composer/2.1/default/Android.bp graphics/composer/2.1/utils/command-buffer/Android.bp graphics/composer/2.1/utils/hal/Android.bp graphics/composer/2.1/utils/hwc2on1adapter/Android.bp graphics/composer/2.1/utils/hwc2onfbadapter/Android.bp graphics/composer/2.1/utils/passthrough/Android.bp graphics/composer/2.1/utils/resources/Android.bp graphics/composer/2.1/utils/vts/Android.bp graphics/composer/2.1/vts/functional/Android.bp graphics/composer/2.2/Android.bp graphics/composer/2.2/default/Android.mk graphics/composer/2.2/utils/command-buffer/Android.bp graphics/composer/2.2/utils/hal/Android.bp graphics/composer/2.2/utils/passthrough/Android.bp graphics/composer/2.2/utils/resources/Android.bp graphics/composer/2.2/utils/vts/Android.bp graphics/composer/2.2/vts/functional/Android.bp graphics/composer/2.3/Android.bp graphics/composer/2.3/default/Android.bp graphics/composer/2.3/utils/command-buffer/Android.bp graphics/composer/2.3/utils/hal/Android.bp graphics/composer/2.3/utils/passthrough/Android.bp graphics/composer/2.3/utils/vts/Android.bp graphics/composer/2.3/vts/functional/Android.bp graphics/composer/2.4/Android.bp graphics/composer/2.4/default/Android.bp graphics/composer/2.4/utils/command-buffer/Android.bp graphics/composer/2.4/utils/hal/Android.bp graphics/composer/2.4/utils/passthrough/Android.bp graphics/composer/2.4/utils/vts/Android.bp graphics/composer/2.4/vts/functional/Android.bp graphics/mapper/2.0/Android.bp graphics/mapper/2.0/default/Android.bp graphics/mapper/2.0/utils/hal/Android.bp graphics/mapper/2.0/utils/passthrough/Android.bp graphics/mapper/2.0/utils/vts/Android.bp graphics/mapper/2.0/vts/functional/Android.bp graphics/mapper/2.1/Android.bp graphics/mapper/2.1/default/Android.bp graphics/mapper/2.1/utils/hal/Android.bp graphics/mapper/2.1/utils/passthrough/Android.bp graphics/mapper/2.1/utils/vts/Android.bp graphics/mapper/2.1/vts/functional/Android.bp graphics/mapper/3.0/Android.bp graphics/mapper/3.0/utils/vts/Android.bp graphics/mapper/3.0/vts/functional/Android.bp graphics/mapper/4.0/Android.bp graphics/mapper/4.0/utils/vts/Android.bp graphics/mapper/4.0/vts/functional/Android.bp health/1.0/Android.bp health/1.0/default/Android.bp health/2.0/Android.bp health/2.0/default/Android.bp health/2.0/utils/libhealthhalutils/Android.bp health/2.0/utils/libhealthservice/Android.bp health/2.0/utils/libhealthstoragedefault/Android.bp health/2.0/vts/functional/Android.bp health/2.1/Android.bp health/2.1/default/Android.bp health/2.1/vts/functional/Android.bp health/storage/1.0/Android.bp health/storage/1.0/default/Android.bp health/storage/1.0/vts/functional/Android.bp health/storage/aidl/Android.bp health/storage/aidl/default/Android.bp health/storage/aidl/vts/functional/Android.bp health/storage/impl_common/Android.bp health/storage/test_common/Android.bp health/utils/libhealth2impl/Android.bp health/utils/libhealthloop/Android.bp identity/aidl/Android.bp identity/aidl/default/Android.bp identity/aidl/vts/Android.bp identity/support/Android.bp input/classifier/1.0/Android.bp input/classifier/1.0/default/Android.bp input/classifier/1.0/vts/functional/Android.bp input/common/1.0/Android.bp ir/1.0/Android.bp ir/1.0/default/Android.bp ir/1.0/vts/functional/Android.bp keymaster/3.0/Android.bp keymaster/3.0/default/Android.mk keymaster/3.0/vts/functional/Android.bp keymaster/4.0/Android.bp keymaster/4.0/default/Android.bp keymaster/4.0/support/Android.bp keymaster/4.0/vts/functional/Android.bp keymaster/4.0/vts/performance/Android.bp keymaster/4.1/Android.bp keymaster/4.1/default/Android.bp keymaster/4.1/support/Android.bp keymaster/4.1/vts/functional/Android.bp keymaster/aidl/Android.bp light/2.0/Android.bp light/2.0/default/Android.bp light/2.0/vts/functional/Android.bp light/aidl/Android.bp light/aidl/default/Android.bp light/aidl/vts/functional/Android.bp light/utils/Android.bp media/1.0/Android.bp media/1.0/xml/Android.mk media/Android.bp media/bufferpool/1.0/Android.bp media/bufferpool/2.0/Android.bp media/c2/1.0/Android.bp media/c2/1.1/Android.bp media/omx/1.0/Android.bp media/omx/1.0/vts/functional/audio/Android.bp media/omx/1.0/vts/functional/common/Android.bp media/omx/1.0/vts/functional/component/Android.bp media/omx/1.0/vts/functional/store/Android.bp media/omx/1.0/vts/functional/video/Android.bp memtrack/1.0/Android.bp memtrack/1.0/default/Android.bp memtrack/1.0/vts/functional/Android.bp memtrack/aidl/Android.bp memtrack/aidl/default/Android.bp memtrack/aidl/vts/Android.bp neuralnetworks/1.0/Android.bp neuralnetworks/1.0/utils/Android.bp neuralnetworks/1.0/vts/functional/Android.bp neuralnetworks/1.1/Android.bp neuralnetworks/1.1/utils/Android.bp neuralnetworks/1.1/vts/functional/Android.bp neuralnetworks/1.2/Android.bp neuralnetworks/1.2/utils/Android.bp neuralnetworks/1.2/vts/functional/Android.bp neuralnetworks/1.3/Android.bp neuralnetworks/1.3/utils/Android.bp neuralnetworks/1.3/vts/functional/Android.bp neuralnetworks/aidl/Android.bp neuralnetworks/aidl/utils/Android.bp neuralnetworks/aidl/vts/functional/Android.bp neuralnetworks/utils/common/Android.bp neuralnetworks/utils/service/Android.bp nfc/1.0/Android.bp nfc/1.0/default/Android.bp nfc/1.0/vts/functional/Android.bp nfc/1.1/Android.bp nfc/1.1/vts/functional/Android.bp nfc/1.2/Android.bp nfc/1.2/vts/functional/Android.bp oemlock/1.0/Android.bp oemlock/1.0/vts/functional/Android.bp oemlock/aidl/Android.bp oemlock/aidl/default/Android.bp oemlock/aidl/vts/Android.bp power/1.0/Android.bp power/1.0/default/Android.bp power/1.0/vts/functional/Android.bp power/1.1/Android.bp power/1.1/vts/functional/Android.bp power/1.2/Android.bp power/1.2/vts/functional/Android.bp power/1.3/Android.bp power/1.3/vts/functional/Android.bp power/aidl/Android.bp power/aidl/default/Android.bp power/aidl/vts/Android.bp power/stats/1.0/Android.bp power/stats/1.0/default/Android.bp power/stats/1.0/vts/functional/Android.bp power/stats/aidl/Android.bp power/stats/aidl/default/Android.bp power/stats/aidl/vts/Android.bp radio/1.0/Android.bp radio/1.0/vts/functional/Android.bp radio/1.1/Android.bp radio/1.1/vts/functional/Android.bp radio/1.2/Android.bp radio/1.2/default/Android.bp radio/1.2/vts/functional/Android.bp radio/1.3/Android.bp radio/1.3/vts/functional/Android.bp radio/1.4/Android.bp radio/1.4/vts/functional/Android.bp radio/1.5/Android.bp radio/1.5/vts/functional/Android.bp radio/1.6/Android.bp radio/1.6/vts/functional/Android.bp radio/config/1.0/Android.bp radio/config/1.0/default/Android.bp radio/config/1.0/vts/functional/Android.bp radio/config/1.1/Android.bp radio/config/1.1/vts/functional/Android.bp radio/config/1.2/Android.bp radio/config/1.2/vts/functional/Android.bp radio/config/1.3/Android.bp radio/config/1.3/vts/functional/Android.bp radio/deprecated/1.0/Android.bp rebootescrow/aidl/Android.bp rebootescrow/aidl/default/Android.bp rebootescrow/aidl/vts/functional/Android.bp renderscript/1.0/Android.bp renderscript/1.0/default/Android.bp renderscript/1.0/vts/functional/Android.bp secure_element/1.0/Android.bp secure_element/1.0/vts/functional/Android.bp secure_element/1.1/Android.bp secure_element/1.1/vts/functional/Android.bp secure_element/1.2/Android.bp secure_element/1.2/vts/functional/Android.bp security/keymint/aidl/Android.bp security/keymint/aidl/default/Android.bp security/keymint/aidl/vts/functional/Android.bp security/keymint/support/Android.bp security/secureclock/aidl/Android.bp security/secureclock/aidl/vts/functional/Android.bp security/sharedsecret/aidl/Android.bp security/sharedsecret/aidl/vts/functional/Android.bp sensors/1.0/Android.bp sensors/1.0/default/Android.bp sensors/1.0/vts/functional/Android.bp sensors/2.0/Android.bp sensors/2.0/default/Android.bp sensors/2.0/multihal/Android.bp sensors/2.0/vts/functional/Android.bp sensors/2.1/Android.bp sensors/2.1/default/Android.bp sensors/2.1/multihal/Android.bp sensors/2.1/vts/functional/Android.bp sensors/common/default/2.X/Android.bp sensors/common/default/2.X/multihal/Android.bp sensors/common/default/2.X/multihal/tests/Android.bp sensors/common/utils/Android.bp sensors/common/vts/2_X/Android.bp sensors/common/vts/utils/Android.bp soundtrigger/2.0/Android.bp soundtrigger/2.0/default/Android.bp soundtrigger/2.0/default/Android.mk soundtrigger/2.0/vts/functional/Android.bp soundtrigger/2.1/Android.bp soundtrigger/2.1/default/Android.mk soundtrigger/2.1/vts/functional/Android.bp soundtrigger/2.2/Android.bp soundtrigger/2.2/default/Android.bp soundtrigger/2.2/vts/functional/Android.bp soundtrigger/2.3/Android.bp soundtrigger/2.3/default/Android.bp soundtrigger/2.3/vts/functional/Android.bp tests/bar/1.0/Android.bp tests/bar/1.0/default/Android.bp tests/baz/1.0/Android.bp tests/baz/1.0/default/Android.bp tests/expression/1.0/Android.bp tests/extension/light/2.0/Android.bp tests/extension/light/2.0/default/Android.bp tests/extension/vibrator/aidl/Android.bp tests/extension/vibrator/aidl/client/Android.bp tests/extension/vibrator/aidl/default/Android.bp tests/foo/1.0/Android.bp tests/foo/1.0/default/Android.bp tests/foo/1.0/default/lib/Android.bp tests/hash/1.0/Android.bp tests/hash/1.0/default/Android.bp tests/inheritance/1.0/Android.bp tests/inheritance/1.0/default/Android.bp tests/lazy/1.0/Android.bp tests/lazy/1.1/Android.bp tests/libhwbinder/1.0/Android.bp tests/libhwbinder/1.0/default/Android.bp tests/libhwbinder/aidl/Android.bp tests/memory/1.0/Android.bp tests/memory/1.0/default/Android.bp tests/memory/2.0/Android.bp tests/msgq/1.0/Android.bp tests/msgq/1.0/default/Android.bp tests/multithread/1.0/Android.bp tests/multithread/1.0/default/Android.bp tests/safeunion/1.0/Android.bp tests/safeunion/1.0/default/Android.bp tests/safeunion/cpp/1.0/Android.bp tests/safeunion/cpp/1.0/default/Android.bp tests/trie/1.0/Android.bp tests/trie/1.0/default/Android.bp tetheroffload/config/1.0/Android.bp tetheroffload/config/1.0/vts/functional/Android.bp tetheroffload/control/1.0/Android.bp tetheroffload/control/1.0/vts/functional/Android.bp tetheroffload/control/1.1/Android.bp tetheroffload/control/1.1/vts/functional/Android.bp thermal/1.0/Android.bp thermal/1.0/default/Android.bp thermal/1.0/vts/functional/Android.bp thermal/1.1/Android.bp thermal/1.1/vts/functional/Android.bp thermal/2.0/Android.bp thermal/2.0/default/Android.bp thermal/2.0/vts/functional/Android.bp tv/cec/1.0/Android.bp tv/cec/1.0/default/Android.bp tv/input/1.0/Android.bp tv/input/1.0/default/Android.bp tv/input/1.0/vts/functional/Android.bp tv/tuner/1.0/Android.bp tv/tuner/1.0/default/Android.bp tv/tuner/1.0/vts/functional/Android.bp usb/1.0/Android.bp usb/1.0/default/Android.bp usb/1.0/vts/functional/Android.bp usb/1.1/Android.bp usb/1.1/vts/functional/Android.bp usb/1.2/Android.bp usb/1.2/vts/functional/Android.bp usb/gadget/1.0/Android.bp usb/gadget/1.1/Android.bp usb/gadget/1.1/default/Android.bp usb/gadget/1.1/default/lib/Android.bp vibrator/1.0/Android.bp vibrator/1.0/default/Android.bp vibrator/1.0/vts/functional/Android.bp vibrator/1.1/Android.bp vibrator/1.1/vts/functional/Android.bp vibrator/1.2/Android.bp vibrator/1.2/vts/functional/Android.bp vibrator/1.3/Android.bp vibrator/1.3/example/Android.bp vibrator/1.3/vts/functional/Android.bp vibrator/aidl/Android.bp vibrator/aidl/default/Android.bp vibrator/aidl/vts/Android.bp vr/1.0/Android.bp vr/1.0/default/Android.bp vr/1.0/vts/functional/Android.bp weaver/1.0/Android.bp weaver/1.0/vts/functional/Android.bp weaver/aidl/Android.bp weaver/aidl/default/Android.bp weaver/aidl/vts/Android.bp wifi/1.0/Android.bp wifi/1.0/vts/functional/Android.bp wifi/1.1/Android.bp wifi/1.1/vts/functional/Android.bp wifi/1.2/Android.bp wifi/1.2/vts/functional/Android.bp wifi/1.3/Android.bp wifi/1.3/vts/functional/Android.bp wifi/1.4/Android.bp wifi/1.4/default/Android.mk wifi/1.4/vts/functional/Android.bp wifi/hostapd/1.0/Android.bp wifi/hostapd/1.0/vts/functional/Android.bp wifi/hostapd/1.1/Android.bp wifi/hostapd/1.1/vts/functional/Android.bp wifi/hostapd/1.2/Android.bp wifi/hostapd/1.2/vts/functional/Android.bp wifi/offload/1.0/Android.bp wifi/offload/1.0/vts/functional/Android.bp wifi/supplicant/1.0/Android.bp wifi/supplicant/1.0/vts/functional/Android.bp wifi/supplicant/1.1/Android.bp wifi/supplicant/1.1/vts/functional/Android.bp wifi/supplicant/1.2/Android.bp wifi/supplicant/1.2/vts/functional/Android.bp wifi/supplicant/1.3/Android.bp wifi/supplicant/1.3/vts/functional/Android.bp Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-NCSA to: Android.bp automotive/can/1.0/Android.bp automotive/can/1.0/default/Android.bp Added SPDX-license-identifier-NCSA to: automotive/can/1.0/default/libc++fs/Android.bp Bug: 68860345 Bug: 151177513 Bug: 151953481 Test: m all Exempt-From-Owner-Approval: janitorial work Change-Id: I602b072f77ff41e9eb8d3c36b6b5315d63664006 Merged-in: I602b072f77ff41e9eb8d3c36b6b5315d63664006
2021-02-03audio: Create libraries for data types in core and effectMikhail Naganov
Add 'CoreUtils' library similar to 'HidlUtils' for the types specific to the core HAL. Add 'EffectUtils' library similar to 'HidlUtils' for the types specific to the effects HAL. Move into them and de-duplicate code previously scattered across the default HAL implementation and libaudiohal. Add unit tests. Removed 'AUDIO_{INPUT|OUTPUT}_FLAG_NONE' from the list of values in the XSD file to avoid additional complexity due to equivalence of this value to an empty list of flags. Bug: 142480271 Test: m android.hardware.audio@X.0-impl Test: m android.hardware.audio.effect@X.0-impl Test: atest android.hardware.audio@7.0-util_tests Test: atest android.hardware.audio.common@7.0-util_tests Test: atest android.hardware.audio.effect@7.0-util_tests Change-Id: I71a95cbe07fcc162dc6d74ff9665747a17ce5a80 Merged-In: I71a95cbe07fcc162dc6d74ff9665747a17ce5a80
2021-01-28audio: Update common types to better match legacy structsMikhail Naganov
HAL V7 types were updated to better match data structure definitions from the legacy HAL: - Added 'AudioConfigBaseOptional' struct to match legacy structs that have 'mask' field to specify initialized fields. - All fields in 'AudioConfigBase' made mandatory. - Removed 'EffectConfigParameters' in favor of 'AudioConfigBaseOptional' and safe_unions. - Added missing enum string values to ensure that round-trip conversions from the legacy HAL to HIDL and back to legacy preserve enum values. Bug: 142480271 Test: atest android.hardware.audio.common@7.0-util_tests Test: atest VtsHalAudioV6_0TargetTest Test: atest VtsHalAudioV7_0TargetTest Test: atest VtsHalAudioEffectV7_0TargetTest Change-Id: If02a81b3f6790a8eb315fa57123141aad2419132
2020-12-16audio: Update default effect HAL wrapper to support V7Mikhail Naganov
During this conversion, the functionality of the V7 wrapper hasn't been tested yet. This will be done in a separate CL that will also include required updates to the VTS tests. Since the changes were made to the code shared with pre-V7 versions, verified that V6 HAL didn't regress. Bug: 142480271 Test: atest VtsHalAudioEffectV6_0TargetTest Test: m VtsHalAudioEffectV7_0TargetTest Test: m android.hardware.audio@7.0-service.example Change-Id: I72389c8d564596bef22b47dfdcb2e77d636ef0a3 Merged-In: I72389c8d564596bef22b47dfdcb2e77d636ef0a3
2020-12-11Move UUID conversions into their own classMikhail Naganov
Mechanical extraction of HidlUtils::uuidFrom/ToHal into a dedicated class UuidUtils. Bug: 142480271 Test: m Change-Id: Ic5333ba32dc293f32c5562d0ef05bde8e5f9b302 Merged-In: Ic5333ba32dc293f32c5562d0ef05bde8e5f9b302
2020-10-27Audio: Build file updatesMikhail Naganov
Add target for the library with code generated by xsdc. Temporarily disable default implementation and VTS targets. Bug: 142480271 Test: m Change-Id: I6c891893398617a36f4748f185e189064ba4d4ee Merged-In: I6c891893398617a36f4748f185e189064ba4d4ee
2020-10-27Audio: Copy HAL V6 into V7Mikhail Naganov
This is an automated copy performed using copyHAL.sh script. Bug: 142480271 Test: m Change-Id: Ifd91cc0bb59608cd92d1d8e4e76c3abea0a8da5e Merged-In: Ifd91cc0bb59608cd92d1d8e4e76c3abea0a8da5e
2019-12-09Audio effect HAL: Add device ID to createEffect APIEric Laurent
Add the possibility to specify a target audio device when creating an audio effect by passing its audio port handle to createEffect API. To attach an effect to a device, the framework will use session ID AudioSessionConsts.DEVICE and provide a valid AudioPortHandle as device ID. Bug: 136294538 Test: make Change-Id: Ic697eeafbd5df6800ad4c7fd9e0698e3d8e3beae
2019-12-04Audio HAL: Fix UAF if the effect is removed after close am: 532240f4eb am: ↵Mikhail Naganov
78836599d2 am: 21dfccb823 Change-Id: I0c607d42aa174c7e50ee53b838a811ae00c33970
2019-12-04Audio HAL: Fix UAF if the effect is removed after closeMikhail Naganov
Effect::close in V6 releases the underlying HAL effect. It was not removing the effect entry from the effects map, thus a call to Stream::removeEffect was retrieving a stale handle. Bug: 145656878 Test: start and stop recording for VOICE_COMMUNICATION Change-Id: I47f486d3b6b4b0dc29acd1e3a2093e421b28d90b
2019-11-21audio effect: Avoid using stack-allocated arraysMikhail Naganov
This is to prevent OOB write in case when a sufficiently large HIDL vector is provided via a HwBinder call. Bug: 143787559 Test: atest VtsHalAudioEffectV5_0TargetTest Change-Id: I6ea78804a5a3ed7a245929d3de47580b12c0da9a
2019-11-21Audio V6 wrapper: IDevice|IStream|IEffect.close releases HAL resourceMikhail Naganov
Fixed behavior of IStream|IEffect.close to release the underlying HAL resource synchronously. This is to avoid adding artificial delays in VTS that become totally unpractical in V6. Added clarification about expected client behavior for IStream|IEffect.close w.r.t. audio data transfer. Added IDevice.close method which releases HAL device resource. Updated VTS tests to remove delays in V6. Bug: 114451103 Bug: 141989952 Test: atest VtsHalAudioV6_0TargetTest Change-Id: I439f0f923c091af2ab234d15ca847cfade341f25 Merged-In: I439f0f923c091af2ab234d15ca847cfade341f25
2019-11-18Audio V6 wrapper: IDevice|IStream|IEffect.close releases HAL resourceMikhail Naganov
Fixed behavior of IStream|IEffect.close to release the underlying HAL resource synchronously. This is to avoid adding artificial delays in VTS that become totally unpractical in V6. Added clarification about expected client behavior for IStream|IEffect.close w.r.t. audio data transfer. Added IDevice.close method which releases HAL device resource. Updated VTS tests to remove delays in V6. Bug: 114451103 Bug: 141989952 Test: atest VtsHalAudioV6_0TargetTest Change-Id: I439f0f923c091af2ab234d15ca847cfade341f25
2019-11-07Introduce Audio V6Kevin Rocard
Generate with ./newHal.sh 5.0 + some typo fix in the .hal + some clang-tidy run This new HAL is an exact copy of the V5. It will be modified in following patches while R is developed. Test: push V6 to device and check audio works fine Bug: 134940862 Change-Id: Ic25d30175032e76e0d3208fb876451de9ae6b7b4 Merged-In: Ic25d30175032e76e0d3208fb876451de9ae6b7b4 Signed-off-by: Kevin Rocard <krocard@google.com>
2019-11-07Change some formatting for better script parsingKevin Rocard
Test: Compile Bug: 134940862 Change-Id: Ibbafdcaa6e0bfa8fd2b80f4a6c9ac6ac95058f93 Merged-In: Ibbafdcaa6e0bfa8fd2b80f4a6c9ac6ac95058f93 Signed-off-by: Kevin Rocard <krocard@google.com>
2019-10-08Introduce Audio V6Kevin Rocard
Generate with ./newHal.sh 5.0 + some typo fix in the .hal + some clang-tidy run This new HAL is an exact copy of the V5. It will be modified in following patches while R is developed. Test: push V6 to device and check audio works fine Bug: 134940862 Change-Id: Ic25d30175032e76e0d3208fb876451de9ae6b7b4 Signed-off-by: Kevin Rocard <krocard@google.com>
2019-10-07Change some formatting for better script parsingKevin Rocard
Test: Compile Bug: 134940862 Change-Id: Ibbafdcaa6e0bfa8fd2b80f4a6c9ac6ac95058f93 Signed-off-by: Kevin Rocard <krocard@google.com>
2019-09-06Remove libhwbinder/libhidltransport depsSteven Moreland
Since these were combined into libhidlbase. Bug: 135686713 Test: build only (libhwbinder/libhidltransport are empty) Change-Id: I075670b64eebbbbd6a6ae0e84ad51bf1c6f5ba36
2019-02-22audio: Add support for dumping info from effect HAL modulesMikhail Naganov
The implementation uses IBase::debug() method which can write debugging info into the provided file descriptor (same model as used for devices and streams). Bug: 69939533 Test: adb shell dumpsys media.audio_flinger Change-Id: I7876fd43a7066c0f081ea2ca0b3b4b37bbdf8e6c
2018-12-14Audio HAL: More generalization for types importsMikhail Naganov
Complement imports of audio::CPP_VERSION with audio::common::CPP_VERSION for core. Import namespaces in VTS tests. Remove "using namespace" from .cpp files where there are already imports in the .h file. Test: try moving types between audio/types.hal and common/types.hal. Change-Id: I49c2e2466c8175f2516c2273f5c26d125afd4801
2018-12-13Audio HAL: Simplify types updates for 'common' and 'effect' packagesMikhail Naganov
Instead of importing every single type individually ("using <type>"), import entire namespaces of ::android::hardware::audio::common::CPP_VERSION and ::android::hardware::audio::effect::CPP_VERSION inside the "implementation" namespace in the default implementation. This simplifies modifying types, as it is not needed anymore to surround "using <type>" directives with #if MAJOR_VERSION ... Note that the contents of the namespaces are imported inside the "implementation" namespace, which reduces risks of name collision Test: make Change-Id: I5daa0ed91203726d1df67408ac9af728c247704a
2018-12-11Audio HAL: Simplify types updates for 'common' and 'audio' packagesMikhail Naganov
Instead of importing every single type individually ("using <type>"), import entire namespaces of ::android::hardware::audio::CPP_VERSION and ::android::hardware::audio::common::CPP_VERSION inside the "implementation" namespace in the default implementation. This simplifies modifying types, as it is not needed anymore to surround "using <type>" directives with #if MAJOR_VERSION ... Note that the contents of the namespaces are imported inside the "implementation" namespace, which reduces risks of name collision Also, fixed the namespace for HidlUtils--it needs to be in 'implementation'. Test: make Change-Id: I81bbb3074b5763717ae72e747a075fd46dc36d18
2018-12-02Audio HAL V5: Introduce HAL V5, equal to V4 for nowKevin Rocard
find -name 4.0 | xargs -I@ cp -r @ @/../5.0 find 5.0 */5.0 -type f | xargs sed -Ei 's/V4/V5/;s#(@|/)4.0#\15.0#' find -name *cpp -o -name *.h | xargs sed -i 's/VERSION == 4/VERSION >= 4/g' mv {4.1,5.0}/config/audio_policy_configuration.xsd Then a manual update to Android.bp to add V5 support. Then a manual update to service.cpp to add support for loading 5.0. If someone knows a way to avoid copying the .hal, it would be great. They will be 99% identical between V4 and V5. Bug: 118203066 Test: vts-tradefed run commandAndExit vts --module VtsHalAudioEffectV2_0Target vts-tradefed run commandAndExit vts --module VtsHalAudioV2_0Target vts-tradefed run commandAndExit vts --module VtsHalAudioEffectV4_0Target vts-tradefed run commandAndExit vts --module VtsHalAudioV4_0Target Change-Id: If99a5645d19c9780019704ea4f51f8114d83ee8f Signed-off-by: Kevin Rocard <krocard@google.com>
2018-11-28Audio HAL: Factorize Android.bpKevin Rocard
Lots of Android.bp content was duplicated per version. Bug: 118203066 Test: compile Change-Id: I4072314f1e1278c6d876fc681ba20363728f151b Signed-off-by: Kevin Rocard <krocard@google.com>
2018-11-28Audio HAL: Factorize V2 and V4 like libaudiohalKevin Rocard
Use the same technique developed for the simpler libaudiohal to factorize the audio HAL impl. Generated with script: set -euo pipefail cd hardware/interfaces/audio # Make 2.0 and 4.0 files mostly identical by removing all 2.0, V4.0... # and replacing it by CPP_VERSION and FILE_VERSION # This allow both implementation to be mostly identical, except for code difference # Also remove IncludeGuard.h as it will be included from compiler flag # Also update license to 2018 find -name *.cpp -o -name *h | grep -v -e service.cpp | xargs sed -Ei \ -e 's/(#.*)V[42]_0_(.*_H_?)$/\1\2/' \ -e 's/(LOG_TAG.*)[24]_0/\1/' \ -e '/#ifndef AUDIO_HAL_VERSION/,/#endif/d' \ -e '/^#.*def.*AUDIO_HAL_VERSION\b/d' \ -e's/V[42]_0/CPP_VERSION/' \ -e 's/(#include ).(android.*)[24].0(.*).$/\1PATH(\2FILE_VERSION\3)/' \ -e 's|(#include) .(.*)[24].0/(default/.*).$|\1 "\2\3"|' \ -e 's/\bAUDIO_HAL_VERSION\b/CPP_VERSION/' \ -e '/IncludeGuard.h/d' \ -e 's/(Copyright .C. 201)./\18/' # set MAJOR_VERSION instead of having a different macro for each version # this allow to do preprocessor arithmetic (eg: MAJOR_VERSION >= 4) for v in 2 4; do find -ipath '*/'$v'.0/*/Android.bp' | xargs sed -i -e '/cflags:/,/^$/d' -e '/vndk/{:a;/}/!{N;ba};d}' -e '$i\ cflags: [\ "-DMAJOR_VERSION='$v'",\ "-DMINOR_VERSION=0",\ "-include common/all-versions/VersionMacro.h",\ ]'; done # replace# ifdef VERSION_X by #if MAJOR_VERSION == X find -path *all-versions/*.h | xargs sed -Ei -e 's/def.*AUDIO_HAL_VERSION_([24])_0.*/ MAJOR_VERSION == \1/' \ -e 'T;s/ +/ /' # copy all-versions impl in each version impl find -path '*/[24].0/*.[hc]*' | grep -ve all-versions -e test | xargs -P99 -n4 sed -i -Ee '/include <.*all-versions.default/!b' \ -e 's#.*<#find -path */#' -e 's/>$/|xargs tail -n +16/' -e e # remove all-versions impl rm -r {core,effect}/all-versions/ # merge version impl into a single all-version for dir in core/*.0/vts/functional/*.0/ ;do dest=$(echo $dir | sed 's#/..0/#/all-versions/#') mkdir -p $dest mv -T $dir $dest done find -mindepth 3 -path '*/2.0/*' -a \( -name '*cpp' -o -name '*h' \) | grep -v 'all-versions' | sed -E 'h;s/2/4/g;H;s/4.0/all-versions/;s/4.0//;H;g;s/\n/ /g;'| xargs -P99 -L1 sh -c ' set -euo pipefail mkdir -p $(dirname $2); diff --old-group-format="#if MAJOR_VERSION == 2 %<#endif " \ --new-group-format="#if MAJOR_VERSION == 4 %>#endif " $0 $1 > $2 || true; rm $0 $1' # merge the X.0 Android.bp & OWNERS in the all-versions for dir in common effect core; do for sub in default vts/functional; do test -f $dir/2.0/$sub/Android.bp || continue awk 1 $dir/*.0/$sub/Android.bp >> $dir/all-versions/$sub/Android.bp # delete licenses except for the first one and add whitelines sed -i -e '/^}$/{N;/^}\n$/!s/\n/&\n/}' $dir/all-versions/$sub/Android.bp sed -i -e '1,17b;/^\/\//,/^$/{d}' $dir/all-versions/$sub/Android.bp done for sub in default vts; do test -d $dir/2.0/$sub || continue test -f $dir/2.0/$sub/OWNERS && awk 1 $dir/*.0/$sub/OWNERS | sort -u > $dir/all-versions/$sub/OWNERS || true rm -r $dir/*.0/$sub done done # delete all-versions-impl dependencies find -name 'Android.bp' | xargs sed -i -e '/all-versions-impl/d' # cleanup unused files rm common/all-versions/default/include/common/all-versions/default/HidlUtils* rm common/all-versions/util/include/common/all-versions/IncludeGuard.h find -depth -type d -empty -delete # Clamp consecutive number of empty lines to 2 find -name *.cpp -o -name *h | xargs sed -Ei ':a;/^\n*$/{N;ba};s/\n\n+/\n\n/' # transform #endif\n#if to #elif find -name *.cpp -o -name *h | xargs sed -i '/^#endif/{N;s/.*\n#if/#elif/}' # remove leftover include guard in cpp find -name *.cpp |xargs sed -Ei '/^#.*_H_?$/d' # apply clang-format find -name *cpp -o -name *h | xargs ../../../prebuilts/clang/host/linux-x86/clang-stable/bin/clang-format --style file -i # clang format breaks PATH(a/b) to PATH(a / b), remove the space surrounding / find -name *cpp -o -name *h | xargs sed -i "/#include PATH/s# / #/#g" Test: compile Bug: 118203066 Change-Id: I3692a444307afc5f71064fe0b9e6b8af3c9ff1dd Signed-off-by: Kevin Rocard <krocard@google.com>
2018-11-28Audio HAL: Align V2 and V4 VTSKevin Rocard
It was thought that the V2 VTS were not going to be supported after V4 VTS were created. Thus a large portion of the code was copy paste and modified. That assumption ended up wrong as a lot of OEM reported bugs that needed to be fixed in both versions. As a result align the code of both version VTS as much as possible. The code will be merged in a follow up patch. Bug: 118203066 Test: compile Change-Id: I994232db237b5d7c52e7d796f199ab3c6eec21f4 Signed-off-by: Kevin Rocard <krocard@google.com>
2018-11-28Audio: Run clang-format on all filesKevin Rocard
That will permit minimal change on future refactors. Bug: 118203066 Test: compile Change-Id: Ibed095d3821e2f7b6177faa07775bde9821459c7 Signed-off-by: Kevin Rocard <krocard@google.com>
2018-10-10audio: Add a missing break to EffectsFactory::getAllDescriptorsMikhail Naganov
Would the legacy HAL return -ENOENT while retrieving an effect, the enumeration has to be aborted, and the effects queried so far need to be returned. A missing 'break' was causing returning no effects at all. Bug: 117567478 Test: make Change-Id: I7cc05004f88b39272d06d2ed33a0693f8e1e3d04
2018-04-23Merge "Audio V4: dump effect HAL using the standard debug()" into pi-dev am: ↵Eric Laurent
8370b093bc am: 798626f3a8 Change-Id: I37085b916ba8ae1d1a4e2f752c5a14820a0d338d
2018-04-20Audio V4: dump effect HAL using the standard debug()Kevin Rocard
A debugDump was used previously because the debug did not exist. Now that the framework uses debug(), the HAL must also do so. Bug: 78307161 Test: adb shell dumpsys media.audio_flinger Change-Id: Ic5841d5284d742c572629249b80aa1de841983c7 Signed-off-by: Kevin Rocard <krocard@google.com>
2018-04-10Merge "Audio V4: Use of EffectFlags over bitfield<EffectFlags>" into pi-dev ↵Kevin Rocard
am: c4db9d17cd am: b062d08b93 Change-Id: I6df306192dbc0ca3d8de84a936e215e5e400da9f
2018-04-10Audio V4: Use of EffectFlags over bitfield<EffectFlags>Kevin Rocard
This was breaking Treble interface consistency test. Bug: 77853088 Test: play music effect work Change-Id: Ieb54f9c154e346286da353d0c3cdc770574c9bfe Signed-off-by: Kevin Rocard <krocard@google.com>
2018-03-07audio hal default impl: Check for "default" instance nameMikhail Naganov
With MSD it's possible to have another instance of IDeviceFactory. For passthrough implementations it's necessary to check whether the instance name is "default" because otherwise HIDL framework will attempt to use the default implementation for MSD. Do the same for effects in case some special effects will be needed for MSD. Bug: 38184704 Bug: 63901775 Change-Id: I18044f3a97e3f6ec4dc3f35b3a9300ea404fc07e Test: audio works, effects work
2018-03-06Audio V4: Implement the shim effect 4.0 -> legacyKevin Rocard
All the new files added are a copy of the 2.0 ones, with just the version 2 that was changed to 4. Due to the rollback on the retrocompatiblity breakage, the split of implementation is not strictly needed any more. This makes the current split in .impl.h and double include unnecessary complicated. This will need to be factorized in a future patch. Bug: 38184704 Test: compile Change-Id: If412eb55ebf6afc773593547af9395a09b6825c2 Merged-In: If412eb55ebf6afc773593547af9395a09b6825c2 Cherry-picked from master Signed-off-by: Kevin Rocard <krocard@google.com>
2018-03-02Audio V4: Implement the shim effect 4.0 -> legacyKevin Rocard
All the new files added are a copy of the 2.0 ones, with just the version 2 that was changed to 4. Due to the rollback on the retrocompatiblity breakage, the split of implementation is not strictly needed any more. This makes the current split in .impl.h and double include unnecessary complicated. This will need to be factorized in a future patch. Bug: 38184704 Test: compile Change-Id: If412eb55ebf6afc773593547af9395a09b6825c2 Signed-off-by: Kevin Rocard <krocard@google.com>
2018-01-24Revert "Audio V4: Split system and vendor Audio.h"Kevin Rocard
This reverts commit 49c56de516b4e9556ae1b0af0ccfa7d695f5807b. Reason for revert: Breaks the build of multiple devices Change-Id: Iebd868467948b8afa5907462ccc0720cd9c4871e
2018-01-22Audio V4: Split system and vendor Audio.hKevin Rocard
audio.h and its dependencies (audio-effect.h, sound_trigger.h...) used to be shared between system and vendor code. This led to multiple problems: 1) Such sharing contradicts the Treble policy of strict independence of framework and vendor code. 2) When audio.h was changed, every vendor needed to update its code in the next release. This meant that audio*.h headers were mostly changed in backward compatible manner. Nevertheless, for P the HIDL interface and thus the audio.h interface are changed in backward incompatible way. (Some enum are becoming 64 bit long). 3) As the headers were common, some API used only by the framework needed to be visible to the vendors (mostly enum values). 4) Treble policy is to support at least one previous HAL version As a result the audio*.h headers are now duplicated, one set for the framework, and one for the vendor. Each set will evolve independently. After this split, the framework-only APIs will be removed from the vendor headers and vice versa. The split is implements as such: + for system code - NOT moving the libaudio_system_headers Eg: system/audio.h and system/audio_effects/effect_equalizer.h are still in system/media/audio - the legacy audio HAL API that were in libhardware headers are now in libaudiohal_legacy_headers Eg: hardware/audio.h and hardware/audio_effect.h are now in frameworks/av/media/libaudiohal/legacy/ + for vendor code - moving libaudio_system_headers and the legacy audio HAL API that were in libhardware_headers in android.hardware.audio.common.legacy@2.0 Note that those headers are now versioned, so migrating to a @4.0 HIDL HAL will mean changing the legacy dependency too. Eg: system/audio.h, system/audio-effect.h, hardware/audio.h are now in hardware/interfaces/audio/common/2.0/legacy - the legacy audio effect HAL API that was in libaudioeffects is now moved in android.hardware.audio.effect.legacy@2.0 Eg: audio_effects/effect*.h are now in hardware/interfaces/audio/effect/2.0/legacy - the legacy sound trigger HAL API that were in libhardware_headers is now moved in android.hardware.soundtrigger.legacy@2.0 Eg: hardware/sound_trigger.h is now in hardware/interfaces/audio/effect/2.0/legacy libaudioutil being used by both system and vendor, had to be renamed for system to libaudioutil_system. Vendor libs that now depend on the audio.h of a specific version and are not extensively referenced in non google code, append @2.0 to their name. Note that headers that are not expected to change in the 4.0 HAL are left in all-versions folder to avoid duplication. This is an implementation detail as the versioned libraries export the all-versions headers. Note that strict vendor-system separation is enforced by the build-system. The system headers are not available for vendor libs and vice-versa. Note that this patch is split between numerous git repository (>10), all the commits having the same Change-id for searchability. Note that audio_policy.h is no longer exposed to vendors as the legacy audio policy HAL API was never officially supported. As a result the audiopolicy stub implementation has been removed. Test: compile taimen-userdebug walleye-userdebug sailfish-userdebug marlin-userdebug gce_x86_phone-userdebug gce_x86_phone full-eng aosp_arm aosp_x86-eng Test: check that the emulator booted and played audio Test: full QA on sailfish-userdebug and taimen-userdebug Bug: 38184704 Change-Id: I950f4e0a55613d72e32eba31bd563cb5bafe2d1a Signed-off-by: Kevin Rocard <krocard@google.com>
2018-01-20Audio V4: Make effect default wrapper device independentKevin Rocard
What was done in this patch: # move headers in all-versions/default folder for qualified inclusion mkdir -p audio/effect/all-versions/include/effect/all-versions/default/ mv audio/effect/all-versions/*[hp] $_ # Go in the all-versions header folder cd $_ # Use a macro for the version sed -i '/^#/!s/V2_0/AUDIO_HAL_VERSION/g' * #Remove 2.0 includes sed -i "/include.*2.0/d" * # Add include guard to make sure AUDIO_HAL_VERSION is set sed -i '/limitations under the License/!b;N;a\n#include <common/all-versions/IncludeGuard.h>' * # Remove guard include macro sed -i '/^#.*[H_]$/d' * # Remove LOG_TAG sed -i '/LOG_TAG/d' * # Remove local include (include "XXX") sed -i '/include.*"/{N;/\n$/d;D}' * # Replace implementation with inclusion cd audio/effect/2.0/ git checkout HEAD^^ ls *h *cpp| sed -r 's/.*h$/\0 \0/;s/(.*)cpp/\1impl.h \0/' |xargs -L1 printf '1h;2,$H;$!d;g;s$namespace.*}[^\\n]*$#define AUDIO_HAL_VERSION V2_0\\\n#include <effect/all-versions/default/%s>\\\n#undef AUDIO_HAL_VERSION$\000%s\000'|xargs -0 -n2 sed -i + manual update of Android.bp and removal of duplicate include Bug: 38184704 Test: compile Change-Id: If99871516f3069fcb9e699ab670a665d7d507e7d