Commit graph

50 commits

Author SHA1 Message Date
John Muir
001e6f4650 audio: Update default audio implementation.
Allow the default audio implementation to use the sample rate and
format provided by the application, but default to 16-bit stereo
for both input and output.

Also, default to 10ms output buffer and 20ms input buffer.

Bug: 70692394
Test: Audio device and output stream created successfully with
      the default frame_count.
      Audio device reports 20ms for input buffer size.
      Audio input stream created successfully with defaults.
      Setup device with audio_policy_configuration_stub.xml;
          no failures for GTS tests: GtsGmscoreHostTestCases
          -t 'com.google.android.gts.audio.AudioHostTest'
Change-Id: If496fc89f72f26266a7ed9b59acf88d1ca76e704
2018-01-30 12:05:24 -08:00
Kevin Rocard
c6ec9486d8 Revert "Audio V4: Split system and vendor Audio.h"
This reverts commit fc9e212f01.

Reason for revert: Breaks multiple devices

Change-Id: I816671fd92246f85c97d00819858a74e36e2929d
2018-01-24 06:04:27 +00:00
Kevin Rocard
fc9e212f01 Audio V4: Split system and vendor Audio.h
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-20 21:39:40 -08:00
Tri Vo
4bf4a6d02e Build audio.primary.default, audio.stub.default, audio_policy.stub with BOARD_VNDK_VERSION
Bug: 37342627
Test: BOARD_VNDK_VERSION=current m -j64 audio.primary.default.vendor
Test: BOARD_VNDK_VERSION=current m -j64 audio.stub.default.vendor
Test: BOARD_VNDK_VERSION=current m -j64 audio_policy.stub.vendor
Change-Id: If3a8668429e20e75fc43aefe3b5a56ff0efc7135
2017-06-27 12:52:50 -07:00
Mark Salyzyn
1ae7379baa resolve merge conflicts of 7c451a93 to oc-dev-plus-aosp
Test: I solemnly swear I tested this conflict resolution.
Bug: 34250038
Change-Id: I4196a6d5a1365106643ac6c1548fd86faffead6f
2017-04-12 09:11:38 -07:00
Mark Salyzyn
d88dfe8607 libhardware: deprecate cutils/log.h
Replace cutils/log.h with log/log.h. Sort headers. Minimize conflicts.
Add missing required headers.

Test: compile
Bug: 34250038
Change-Id: I5c0f231cbfed90b73e0538c9d32ad3226c7cc5e4
2017-04-11 10:50:06 -07:00
Steven Moreland
02b5d168f2 audio.*.default: remove unneeded dependency/IWYU
libcutils not needed as only functions from liblog are being used

Test: links
Change-Id: I2a2cb58d883c0ec1e26a2f023865b137517da432
2017-04-11 17:37:41 +00:00
Po-Chien Hsueh
c535b2fded Move default HAL libraries to vendor
Libraries under /hardware/libhardware/modules should go to /vendor/.

These are conventionl HALs for default implementations, most of them
are not used.

Camera and thermal are already moved in other CLs.

Bug: 35907904
Test: Compiled and checked install path. Verified on Sailfish with
$ lsof | grep default.

Change-Id: Ibde574001c01cbfea014a20a0fbbb3265e6cdc8a
2017-03-07 11:28:32 +08:00
Dmitry Shmidt
a905c234da resolve merge conflicts of d20fe45 to stage-aosp-master
Change-Id: I4669a7566205f01217c9104b489fed4ee8d3fe3b
2016-10-26 16:02:39 -07:00
Dmitry Shmidt
a898f93475 audio: Fix size_t related warnings
Test: manual

Change-Id: I34961243f2d4b95c47d954fc616404391302595a
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2016-10-26 13:54:25 -07:00
Glenn Kasten
2494caec36 Be stricter about warnings
Test: build for several platforms
Change-Id: I8d66a74c72713f3cd7021b1924f72ea4a9e11c15
2016-10-07 08:44:58 -07:00
Andy Hung
a374941340 resolve merge conflicts of 03ed3e9 to master
Change-Id: Ib673e9cd0c2260bf5333ff0caa4a61cd2a98f473
2016-07-14 22:47:38 -07:00
Andy Hung
03ed3e9be0 Merge \"Improve stub hal read and write timing\" into nyc-mr1-dev
am: 4d2023e33a

Change-Id: Ifde2c9c73e963c1513c1fd1bd82df1009963a676
2016-07-15 05:12:25 +00:00
Dan Willemsen
917bcc4df9 resolve merge conflicts of 69ed5d9 to stage-aosp-master am: d269bf4328 am: c1965c958c
am: 0002fe0e75

Change-Id: I0c0f7b10857f97e0e4d4700069beaee0cc4cfd11
2016-07-13 19:30:24 +00:00
Andy Hung
0caeee8ac4 Improve stub hal read and write timing
Now considers time to mix or record.

Bug: 29634175
Change-Id: Ifb2a2e11cb75ca9e83aadbc95943a618b0707f3f
2016-07-13 11:19:40 -07:00
Dan Willemsen
f51bf92061 Begin converting Android.mk to Android.bp
These modules have their dependencies satisfied.

Change-Id: I67986efd7478e477770bedac72ab35a407e3d06a
2016-07-12 23:34:37 -07:00
Greg Kaiser
6c59aadad9 audio_hw: Fix compiler warnings
Change-Id: Iab7e91df4d8fb0d8e74aa8e2ca0836cf7e43bf03
2016-06-30 16:08:53 -07:00
Glenn Kasten
e03bfa4f5c Fix build error on 64-bit
Change-Id: I9a308bf6499a74efa8084a2e4df1f029b26f3d6c
2015-03-23 10:53:55 -07:00
Ricardo Garcia
37cd77257b Creating audio.stub.default for default HAL audio output
Creating a simple "stub" audio HAL to be used in systems with no
hardware output.  This stub HAL allows systems to run CTS tests and
other audio system calls without crashing or unexpected behavior.
The stub can be used also as a starting point for creating a new HAL.

This is needed for audio_output feature support.

bug: 19439530
Change-Id: I9e8e06e5b7fea7c7f3ff1de303db015b51e8acde
2015-03-17 15:50:05 -07:00
Elliott Hughes
07c085565a Add missing includes.
Change-Id: I91730363386dae6ecb2193ec8f50ba9f8fc0ad60
2015-01-29 21:19:10 -08:00
Eric Laurent
f5e2469c02 audio HAL: add parameters to open stream
Pass device address (and audio source for inputs) to
open_output_stream() and open_input_stream() audio HAL functions.

Bug: 14815883.
Change-Id: I5535677db3f3027917a31a7ed5c0a4c6bc013639
2014-07-28 11:38:40 -07:00
Glenn Kasten
7d973adff4 Add audio_input_flags_t to HAL open_input_stream
Change-Id: I3519bfa45809e064d19473ebe6489c5249d306a8
2014-07-16 12:29:35 -07:00
Eric Laurent
c5ae6a0304 audio: different frame size calculation for input and output
Bug: 15000850.
Change-Id: I7813e99a0b7ce613cc3b7d7c95be0525cb2d6c81
2014-07-03 16:51:09 -07:00
Colin Cross
0dbcdf3aff audio: allow compiling for 64-bit
Set -Wno-unused-parameter, which makes the directory warnings-clean
on 32-bit and 64-bit.
Remove LOCAL_32_BIT_ONLY.

Change-Id: If0c0135e57935d785a0f36b7d5187ac567c7e21c
2014-04-18 15:46:30 -07:00
Glenn Kasten
329b926633 Audio HALs are 32-bit only
Change-Id: I97eef87849312610d82bc3f82e168bb40604e646
2014-03-13 09:56:42 -07:00
Colin Cross
3557abaae2 hardware/libhardware: convert LOCAL_MODULE_PATH to LOCAL_MODULE_RELATIVE_PATH
LOCAL_MODULE_PATH doesn't work for multiarch builds, replace it
with LOCAL_MODULE_RELATIVE_PATH.

Change-Id: I4e4ceec61d026bbe74ba604554c06104bde42e5e
2014-01-24 21:00:32 -08:00
Richard Fitzgerald
072a79d3e4 Code changes for offload support in hardware libhardware
Change-Id: Icfe9bf4b4768bbdcb11e6c77ac26163018f9c7c8
2013-07-18 09:23:27 -07:00
Eric Laurent
85e08e2625 audio: new audio devices enums
Changed audio device API version to 2.0 because of
new enums for audio input and output devices.

Removed implementations of get_supported_devices() in
stub and usb audio modules.

Change-Id: I09345d38929d931e5015e36d18259f5a5f950298
2012-09-07 10:32:57 -07:00
John Grossman
47bf3d7ea5 Extend the audio HAL interface to support get/set master mute
(cherry picked from commit d245968b7ef0be5c776c9aefff3eca9e293d1b35)

> Extend the audio HAL interface to support get/set master mute
>
> Hand merge from ics-aah
>
> > Extend the audio HAL interface to support get/set master mute: DO NOT MERGE
> >
> > Extend the audio HAL interface to allow HALs to optionally support HW
> > level master mute.  This follows the same pattern as master volume and
> > is part of the fix for bug 6828363.  Because of the divergences
> > between ICS and master, this change will need to be merged by hand.
> >
> > Signed-off-by: John Grossman <johngro@google.com>
> > Change-Id: Ica6f5e37e13d13dde60463966f41f271ffa104fd
>
> Change-Id: I5e7aea6d7da0012dcc077281f9077fc04cfb9889
> Signed-off-by: John Grossman <johngro@google.com>

Change-Id: I2011cc5bc41ca7081ce255a4bfba65f36f899bc4
Signed-off-by: John Grossman <johngro@google.com>
2012-08-07 15:59:07 -07:00
Glenn Kasten
48915acb39 struct effect_descriptor_s const correctness
Also struct audio_stream in audio_stream_frame_size

Change-Id: Ie0de708e38a1850c186a8b4eb5f491adc44b3275
2012-07-24 07:53:14 -07:00
Glenn Kasten
a635449697 Use audio_channel_mask_t consistently
Change-Id: Ib832c0b707b1e0b82adf4ab3d4d18a2dc459d240
2012-06-25 10:45:43 -07:00
Eric Laurent
da4b0b26d1 rename audio policy output flags.
Change-Id: I965fa9bcba45f223f2f2cbc4adccfb5491414c8b
2012-04-18 13:58:44 -07:00
Eric Laurent
55786bcf3c audio: updated audio HAL device API
Modified open output and input stream functions to add new
parameters needed by audio HAL. Also grouped parameters
in a config structure for clarity.

Change-Id: I60832d8e5b5e4a48f209a6d83f5ca9c044be61f1
2012-04-17 16:02:48 -07:00
Eric Laurent
83c62ce4e3 audio policy: use audio_devices_t when appropriate
Change-Id: Iee57cf5c3bdfefd981e1ed5958df10171f8716e6
2012-03-08 13:45:03 -08:00
Mike J. Chen
5ad38a901d Modifications to audio_hal for Android@Home.
This is a squashed merge of the following changes:

Commit f560da61a5e128ca9f82f7fe939afcf1f09188c7
Author: John Grossman <johngro@google.com>
Date:   Thu Aug 11 15:34:55 2011 -0700

    Fill out a missing entry in the audio HAL function table.

    The entry for get_initial_master_volume was missing from the non-legacy audio
    HAL and needs to be filled out.  Also fix up the order of the comments
    describing the get_initial_master_volume method.

    Change-Id: I87d5415ef92611497a6dab4c657fc00367c4d80b

commit cea82facb63fd237a4ea6fb770605fcb500850ff
Author: Jason Simmons <jsimmons@google.com>
Date:   Thu Jun 16 14:24:24 2011 -0700

    Define a replacement for getSampleDelta that returns a DMA start time and count of samples queued

    Change-Id: I2d13f57b5a8c5b97fb3aa0a90834ce91c56864ef

commit 60a9acd7eee470a8d870218e8be618bfa3be15a5
Author: Mike J. Chen <mjchen@google.com>
Date:   Tue Jun 7 09:13:23 2011 -0700

    Add Android@Home extensions to new Audio HAL interface.

    Change-Id: I3ea4676d4b7d2afd78a5a7a7003ad5c437276d05
    Signed-off-by: Mike J. Chen <mjchen@google.com>

Change-Id: I09f3756d12a1ce4f9af39610ed857890742a72df
Signed-off-by: Mike J. Chen <mjchen@google.com>
Signed-off-by: John Grossman <johngro@google.com>

Conflicts:

	include/hardware/audio.h
	modules/audio/audio_hw.c
2012-02-10 08:58:32 -08:00
Glenn Kasten
ae2e42b244 Use audio_source_t consistently
Change-Id: Ie25ddeb091646b7e24149b3b23a18ce0807e1891
2012-01-26 16:47:25 -08:00
Glenn Kasten
ea84c55f2c Merge "Use audio_format_t consistently" 2012-01-20 14:50:29 -08:00
Glenn Kasten
080a80212b Audio policy HAL set_ringer_mode is deprecated
Change-Id: If0f82d5c1cb9a0faf70f5a8434f68cdc39784ee6
2012-01-18 15:15:07 -08:00
Eric Laurent
d4cf73b362 Merge "audio policy: manage stream volume per device" 2012-01-17 17:34:53 -08:00
Glenn Kasten
fad1f606a2 Merge "set_mode and set_phone_state now take audio_mode_t" 2012-01-17 11:33:22 -08:00
Eric Laurent
ca20b17b41 audio policy: manage stream volume per device
Improve volume management by keeping track of volume for each type
of device independently.

Added functions at the audio policy interface to set and get stream volume
for a particular device.

Change-Id: Ic8899e82e48193cb65b3673e9d20383efed943b5
2012-01-17 09:10:45 -08:00
Glenn Kasten
5161a847dd Use audio_stream_type_t consistently
Change-Id: I1e92f018a07e4b1b73ef8d4de461ef1e08bc48e7
2012-01-12 16:55:03 -08:00
Glenn Kasten
fe79eb3f06 Use audio_format_t consistently
Was sometimes int or uint32_t

Change-Id: Ib3d82f5aefeda371c0439e43e72737a54882f519
2012-01-12 14:55:57 -08:00
Glenn Kasten
6df641e269 set_mode and set_phone_state now take audio_mode_t
Change-Id: I12a3a5ad6c3cadc6b9de8281f78edfef53908e2d
2012-01-12 10:06:24 -08:00
Eric Laurent
78d2c69af4 audio policy: register effect CPU on enable
Added a method on audio policy interface to register
audio effect CPU usage on enable and unregister on disable
instead of when the effect is created or destroyed.

Change-Id: Iee20bf70fee7302f817ec4c7d9bf7640caca2e95
2011-08-11 08:48:25 -07:00
Eric Laurent
f3008aa707 Audio HAL: added interface for audio preprocessing
Change-Id: I032f6dd8f9ad11283a3f0a6721018dabfd12236d
2011-07-08 09:59:52 -07:00
Dima Zavin
3bc15860a9 hardware: drop the _hal suffixes from audio.h and audio_policy.h
Change-Id: Ib9bfc4049cf350f72af3ee577ce4756ac4118cfc
Signed-off-by: Dima Zavin <dima@android.com>
2011-06-13 18:12:17 -07:00
Dima Zavin
1199865d0c hardware: move audio_policy.h to system/
Change-Id: I392c5f91db88ca923dead7202064169edc1cc0c7
Signed-off-by: Dima Zavin <dima@android.com>
2011-06-13 18:10:06 -07:00
Dima Zavin
aa21172bcd audio: move audio.h to system/core/include/system/audio.h
Change-Id: I523dfb361b1b3862cf8bc41c1691c607b2c815b0
Signed-off-by: Dima Zavin <dima@android.com>
2011-05-12 14:10:06 -07:00
Dima Zavin
8cc353abc9 libhardware: add stub audio and audio_policy modules
Change-Id: Ib6c0c49dbc369b735b2ac5fb5b583de96c3e9f3e
Signed-off-by: Dima Zavin <dima@android.com>
2011-04-27 14:08:57 -07:00