Commit Graph

36 Commits

Author SHA1 Message Date
Andy Hung
9072e5f0db Audio: Add AUDIO_FORMAT_DRA
China DTMB digital TV.
See SJ/T11368-2006
“Specification for multichannel digital audio coding technology”.

Test: atest AudioFormatTest
Bug: 185950819
Change-Id: I941c4991e598e864babfb888a8827d1625d95990
2021-04-20 19:22:22 -07:00
Andy Hung
67047d5a03 Merge changes from topics "24ch Audio HAL", "360RA HAL" am: 2092162bc3 am: a3bba5eb95 am: 24b2eac13a
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1677774

Change-Id: I88962b3c79f6a9c056bb0aefb54094d817dba109
2021-04-17 03:54:58 +00:00
Andy Hung
3cc6843bd5 audio: Add AUDIO_CHANNEL_OUT_22POINT2 constant
24 channel configuration for immersive audio

See new value in system/media/audio/audio-hal-enums.h.
Define the same enum to HALv7 and update getChannelCount().

Test: atest android.hardware.audio.common@7.0-util_tests
Bug: 185530406
Change-Id: I8dc5e6c504049908fef157b11ffa043ecaeacaf9
2021-04-15 18:22:42 -07:00
Kei Murayama
91ef183cf7 audio: Add AUDIO_CHANNEL_OUT_13POINT_360RA constant
13ch audio constant for 360 Reality Audio.

The enum value is added in system/media/audio/audio-hal-enums.h.
 - Define the same enum to HALv7.
 - Set 13 for the layout from getChannelCount().

Bug: 185100731
Test: Use the value on audio hal and build.
Test: Use the value on audio_policy_configuration.xml and build.
Test: atest android.hardware.audio.common@7.0-util_tests
Change-Id: Ifa37f9be96a94c623e5d4164774c39d05efbbb8b
2021-04-15 17:49:25 -07:00
Andy Hung
4da4945039 audio: Add device constants for HDMI EARC
Implementation check by grep -E -r  "HDMI_ARC|HDMI_EARC" .

Test: atest AudioDeviceInfoTest
Bug: 131385398
Bug: 151781316
Change-Id: Idfe27b468a9f09770a31b6b58d83de77bebc6c80
2021-04-08 21:02:25 -07:00
Andy Hung
a468cac258 Audio: Add AUDIO_FORMAT_DTS_UHD
See ETSI TS 103 491 V1.2.1 (2019-05)
DTS-UHD Audio Format; Delivery of Channels,
Objects and Ambisonic Sound Fields

Test: atest AudioFormatTest
Bug: 184538197
Change-Id: I4123efb29a95a599982af85068f8e4468ff15159
2021-04-06 10:30:36 -07:00
Jiabin Huang
e565a9967d Merge "Add AudioTransport to replace AudioProfile in AudioPort." am: 5bbfdbfbeb am: 3225bc292a am: 40d8d1eac6
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1650659

Change-Id: I685be54e0baf5bf6e55a026378c00ce05b949ca0
2021-03-24 20:39:38 +00:00
jiabin
574a86fa36 Add AudioTransport to replace AudioProfile in AudioPort.
An AudioTransport contains AudioProfile or hardware descriptor to
describe the audio capabilities for an AudioPort and the encapsulation
type to represent the encapsualtion format that must be used when
sending the audio data with the format associated the AudioTransport to
Android.

The hardware descriptor will be used when the format is not recognized
by the platform.

Currently, the short audio descriptor is added as one of the hardware
descriptors. Short audio descriptor is reported from EDID for HDMI.

Bug: 131736540
Bug: 178619392
Test: atest android.hardware.audio.common@7.0-util_tests
Test: atest VtsHalAudioV7_0TargetTest
Change-Id: Ic5ed9ff9b694511fdd7e90cdcda2777bdfa74f65
2021-03-23 17:22:38 -07:00
Mikhail Naganov
cfb664c451 Merge "Add IEC60958 audio format" am: f45a71d1c1 am: c8a3a1ad41 am: dd8f763bf1
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1567260

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ie7a4df123444934852eaa20353fe839a3d6f55c7
2021-02-08 18:36:43 +00:00
Mikhail Naganov
f45a71d1c1 Merge "Add IEC60958 audio format" 2021-02-08 16:59:13 +00:00
Mikhail Naganov
1a9732f9f8 audio: Update audioPolicyConfiguration version am: 8a52581b09 am: 2f111c17d5 am: 5c7f8e4d80
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1576844

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I33a722170ef4148f874a866b76641a1243bc68e4
2021-02-05 23:31:25 +00:00
Dean Wheatley
4a645c3f97 Add IEC60958 audio format
This format refers to the IEC 60958 specification. It can be used when
patching HDMI inputs. IEC 60958 can transport PCM and compressed audio.

Test: m
Change-Id: Idfafb3e2dc73ffb26529d797dce86f8419e5f75d
2021-02-05 22:13:30 +00:00
Mikhail Naganov
8a52581b09 audio: Update audioPolicyConfiguration version
HAL V7 uses spaces instead of ',' and '|' for delimiting
elements in channel masks, sample rates, and flags lists
in the Audio Policy Manager configuration XML.
The version specified in the APM XML has been updated
from '1.0' to '7.0' in order to reflect this.

The migration script has been updated to change the
version in the XML on update.

Bug: 142480271
Test: m
Change-Id: I92c206dddee6964fc2019fed80435cb8d69dbfe9
2021-02-05 02:01:43 +00:00
Treehugger Robot
1df025e5f4 Merge "audio: Create libraries for data types in core and effect" 2021-02-04 20:47:13 +00:00
jiabin
66e55bfd1e Add MPEG-H enum.
MPEG-H is a new surround audio codec. Add new enum format for MPEG-H in
the HIDL interface. Though MPEG-H has different profiles and audio
levels, only low complexity and baseline with audio level as 3 and 4 is
defined in this CL as they are relevant for the current and upcoming
commercial services.

Bug: 178619392
Test: make
Change-Id: I5672f3874f6cffe31a83b6d7e351d0bf56bfd038
Merged-In: I5672f3874f6cffe31a83b6d7e351d0bf56bfd038
2021-02-04 19:18:42 +00:00
TreeHugger Robot
ddd29f49af Merge "Add MPEG-H enum." into sc-dev 2021-02-03 18:54:13 +00:00
Mikhail Naganov
a9ac889b96 audio: Create libraries for data types in core and effect
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-02-03 01:28:38 +00:00
Mikhail Naganov
5ec48c2d4d audio: Create libraries for data types in core and effect
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
2021-02-02 18:17:26 +00:00
Treehugger Robot
033cc9a374 Merge "audio: Update common types to better match legacy structs" am: 39059ed17f am: 418ad80fee am: d5200fcdba
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1562143

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I1fc86a2ceb20d3723c395e3940fc1cc57920388d
2021-01-30 02:01:29 +00:00
Mikhail Naganov
ff611980f3 audio: Update common types to better match legacy structs
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
2021-01-28 21:27:43 +00:00
jiabin
226b119451 Add MPEG-H enum.
MPEG-H is a new surround audio codec. Add new enum format for MPEG-H in
the HIDL interface. Though MPEG-H has different profiles and audio
levels, only low complexity and baseline with audio level as 3 and 4 is
defined in this CL as they are relevant for the current and upcoming
commercial services.

Bug: 178619392
Test: make
Change-Id: I5672f3874f6cffe31a83b6d7e351d0bf56bfd038
2021-01-28 16:52:45 +00:00
Mikhail Naganov
1b444a5332 Implement a.h.audio.common@7.0-util module
This includes a rewrite of HidlUtils for V7.
A unit test is added for its conversion functions.

Made necessary minor adjustments to the HAL V7 types.
Also, fixed definition of 'audioFormatsList' to allow for
vendor extensions.

Bug: 142480271
Bug: 173647783
Test: m && atest android.hardware.audio.common@7.0-util_tests
Change-Id: Ib883f1c246fce78c004846516699aa724d4b5d44
Merged-In: Ib883f1c246fce78c004846516699aa724d4b5d44
2020-12-11 22:10:10 +00:00
Hayden Gomes
4e7d69e751 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
Merged-In: I9ac83a98256404313b5efef17c0a164d2ee72136
2020-12-04 16:50:37 +00:00
Mikhail Naganov
c9dbca51e6 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
Merged-In: I2df5eb4bc4a393611d3adb0ee30583767197591b
2020-12-01 23:37:53 +00:00
Eric Laurent
a0ff4be4b3 audio HAL: add output flag indicating support for gapless transitions
Add output profile flag AUDIO_OUTPUT_FLAG_GAPLESS_OFFLOAD to be used in
conjunction with AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD to indicate
that gapless transitions are supported when playing compressed audio.

Bug: 158191844
Test: make
Change-Id: Ifa551ff36d8571062cac3ad38f89be2f3addb960
2020-11-26 20:15:51 +01:00
Mikhail Naganov
355dd0630c 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
Merged-In: I1951b2de383751fe53b96954dfd02cdd1ab6cc8f
2020-11-21 01:15:03 +00:00
Mikhail Naganov
fda20429b4 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
Merged-In: I986b9bccdade5fa850b06b033143388715a656af
2020-11-20 01:41:38 +00:00
Mikhail Naganov
5b8a144d8c Implement a.h.audio.common@7.0-util module
This includes a rewrite of HidlUtils for V7.
A unit test is added for its conversion functions.

Made necessary minor adjustments to the HAL V7 types.
Also, fixed definition of 'audioFormatsList' to allow for
vendor extensions.

Bug: 142480271
Bug: 173647783
Test: m && atest android.hardware.audio.common@7.0-util_tests
Change-Id: Ib883f1c246fce78c004846516699aa724d4b5d44
2020-11-19 17:13:20 -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
60ced768f3 Audio: Copy HAL V6 into V7
This is an automated copy performed using copyHAL.sh script.

Bug: 142480271
Test: m
Change-Id: Ifd91cc0bb59608cd92d1d8e4e76c3abea0a8da5e
Merged-In: Ifd91cc0bb59608cd92d1d8e4e76c3abea0a8da5e
2020-10-27 15:24:36 +01: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
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
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
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