• Home
  • History
  • Annotate
  • only in /frameworks/av/media/libaudioclient/
History log of /frameworks/av/media/libaudioclient/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
3432e0439d3b09756f125dfa734951c654d63baf 06-Apr-2018 Aniket Kumar Lata <alata@codeaurora.org> audiopolicy: Optimize A2DP codec config change

Handle A2DP codec config change in audio HAL without
closing / re-opening outputs or invalidating streams
from AudioPolicyManager.

Bug: 79476124
Test: music playback over BT A2DP
Change-Id: I87263da32815a4d4f6273068ef0b2a5b93c73b75
nclude/media/AudioParameter.h
f824853eabf8eab483de7387c001493dda63966b 15-May-2018 Jiabin Huang <jiabin@google.com> Merge "Add support for manually set surround formats." into pi-dev
817729095966c338615a8a791d2dbf774fc034ef 03-Apr-2018 jiabin <jiabin@google.com> Add support for manually set surround formats.

To make surround sound setting more clear to users, we are changing
surround setting from ALWAYS to MANUAL. With MANUAL, users could enable
surround formats according to their need.

Bug: 67479735
Test: Try creating AudioTrack with enable/disable surround formats.
Change-Id: Ia6c0e1210ff6215f4b80a278a0aa90ca9543f262
udioSystem.cpp
AudioPolicyService.cpp
nclude/media/AudioSystem.h
nclude/media/IAudioPolicyService.h
fb4e361a9e49651b30c1d023ae2619143ae62665 10-May-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "audio policy: re enable setForceUse for system apps." into pi-dev
e17378d11b275daecd20ff840bcb7d275b6801bf 09-May-2018 Eric Laurent <elaurent@google.com> audio policy: re enable setForceUse for system apps.

Some system apps (not having system AIDs) still need this
hidden API due to lack of better option for media use case routing.

Add protection by privileged permission MODIFY_AUDIO_ROUTING instead.

Bug: 79475856
Test: manual regression for music playback over speaker and bluetooth
Change-Id: Icaa585a9fa4c043c291f24c9bab4a93f02406955
AudioPolicyService.cpp
4c5ed30aeb86b2b1aeaf7809d569e46bc75d330c 09-May-2018 Andy Hung <hunga@google.com> AudioTrack: Allow flush in flush state to clear subsequent written data

Fixes Photos a/v sync issue introduced by
commit 1d3556d6a068f141ac390a04f6a9d92a70f8d7ed

Test: Photos, pause, then seek several times, then play.
Test: CTS AudioTrackTest, Bluetooth, Offload, Gallery, Play Music.
Bug: 79327282
Change-Id: I9de8edd88b526b5a9dbc9cd720bf725474949dfc
udioTrack.cpp
d9ed870e6402de3ec1253c5c2a43ed1d10078518 09-May-2018 Eric Laurent <elaurent@google.com> Merge "audiopolicy: restore normal binder call watchdog timeout" into pi-dev
84e84a5dd3b6d9ee4cf032e8d6206c70969b7107 04-May-2018 Ray Essick <essick@google.com> collect more media metrics around audio

new fields in the media metrics 'audiorecord' record for more detail
length of time recorded, error conditions
add new media metrics type 'audiopolicy' that describes attempts to get
microphone access -- success, failure on contention, what type of access
was requested, and (important for the contention) which programs are
doing the requesting and holding of the microphones.

whitelist the 'audiopolicy' metrics type with the media.metrics service.

Bug: 78595399
Test: concurrent/serial recordings, dumpsys media.metrics
Change-Id: Ia17860940d4c329b0215b4cf97c6dacacb6a8e32
udioRecord.cpp
nclude/media/AudioRecord.h
da6a5a80b402fa0d836240d7e05cd887080c4f4d 03-May-2018 Eric Laurent <elaurent@google.com> audiopolicy: restore normal binder call watchdog timeout

Remove special timeout for long binder command added to
work around issues b/78901123, b/72823323 and similar

Bug: 72823323
Test: connect/disconnect BT headset while playing music

Change-Id: Ic5b57673ee95c29e5510af3b647ff3beb84dd7d7
AudioPolicyService.cpp
a591fc4cde5eac46030d9d494c15056e5dd4299c 26-Apr-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "audioserver: return binder call permission error in reply" into pi-dev
ef92bff8d2e8f6ec9a526fdb4fcfead0146a10f3 26-Apr-2018 Eric Laurent <elaurent@google.com> audioserver: return binder call permission error in reply

When a transaction to IAudioFlinger or IAudioPolicyService is detected
from an unauthorized source, return the INVALID_OPERATION status in
reply Parcel and not as transaction status.

Also removed check on SET_RINGER_MODE as it is not implemented on client
side and allow SET_MODE from system AIDs instead of just audioserver.

Bug: 78615605
Test: manual audio smoke tests.
Change-Id: Ia4fdfc22f049da69aaa9d45075e1c502eecf4521
AudioFlinger.cpp
AudioPolicyService.cpp
2443760584e8e9798b65b297f1636953c287e5d8 23-Apr-2018 François Gaffie <francois.gaffie@renault.com> audio policy service: fix audioserver port cb upon APS crash

In case of an audioserver crash, clients that registered AudioPort
cb are no more notified of Port and Patch update (only Service Died
continues to work).
The AudioPolicyService client shall upon registration set again the
cb flag to continue beeing notified.

Also clear binder caller identity before registering a client to
audio flinger and audio policy services to avoid registering the
wrong client when get_audio_flinger() or get_audio_policy_service()
is called while executing a binder call.

Bug: 78506562
Test: launch a test app registering to Port Callback. Check upon
setDeviceConnectionState and createAudioPatch that cb are called.
Kill the audio server, and check cb continue to be called.

Change-Id: If1e803f59cb02fba84b6259e9da2d7031235d9c2
Signed-off-by: François Gaffie <francois.gaffie@renault.com>
udioSystem.cpp
nclude/media/AudioSystem.h
54274035905ef52c7eb88309aec5e5b8f25be471 20-Apr-2018 Andy Hung <hunga@google.com> AudioTrackShared: Fix wrap condition for stop limit

Test: Photos video playback and repeat accessing info
Bug: 68747620
Change-Id: I8c4afa44c0a0a7f689fbc8797ee815e8ae960979
udioTrackShared.cpp
b8ca98e81617f33e1b15a210c673b8f4c5a6de28 16-Apr-2018 Paul McLean <pmclean@google.com> Add retry mechanism to AudioRecord::restoreRecord_l().

This is analogous to similar code in AudioTrack::restoreTrack_l().

Bug: 77682459
Test: Connect USB headset. Start Skype call. Note input audio on DUT is
heard on remote phone. Manually kill audio server, verify that input
from USB headset is restored on DUT and heard on remote phone.

Change-Id: Icbf624aba8a3fe6917b132d8c38c2812f9519ec6
(cherry picked from commit 782049413376ee1833a08ba02cc5ba6b5905792f)
udioRecord.cpp
f1047e87767be1acd2c32f4d36028d1d0014f4c0 17-Apr-2018 Eric Laurent <elaurent@google.com> audioflinger: filter out reserved keys from setParameters()

Only allow setParameters() for reserved keys when received from
audioserver UID. For instance, keys used to control routing or audio
stream configuration are reserved for use by audio policy manager.

Also use multiuser_get_app_id() instead of duplicated code to
extract application ID from UID.

Bug: 77869640
Test: manual audio smoke tests.
Change-Id: I88852e8fddf7f705e4a084fc02d9ced1f4b0de92
AudioFlinger.cpp
AudioPolicyService.cpp
ef22118bd17471d63040015df8e3f77230a9d2af 17-Apr-2018 Eric Laurent <elaurent@google.com> Merge "audiopolicy: clear caller identity before calling audio policy manager" into pi-dev
b0272097450ef868637e8a50d2575e16e37c90fb 12-Apr-2018 Andy Hung <hunga@google.com> Sanitize effect descriptors for AudioPolicyService binder calls.

Zero initialize structs before parcel read, if status is not checked.
Sanitize parcel read audio_port_config.

Test: Audio CTS, See bug for POC
Bug: 73126106
Merged-in: Iece43eb463385927e6babcf93654eea8aaebc29c
Change-Id: Iece43eb463385927e6babcf93654eea8aaebc29c
AudioPolicyService.cpp
nclude/media/IAudioPolicyService.h
10b7123bd6ce29fe756422aeedc5cfe469c4309f 14-Apr-2018 Eric Laurent <elaurent@google.com> audiopolicy: clear caller identity before calling audio policy manager

Audio policy manager methods must always be executed with the
level of priviledge of audioserver process.
After checking calling permissions, audio policy service will
clear binder caller identity before calling into audio policy manager.

Also add restrictions for start source and stop source binder
transactions.

Bug: 77869640
Test: manual audio smoke tests
Change-Id: I993d4fddcea9bfa3f44093c38406b85d69ca8890
AudioPolicyService.cpp
0967c6c06d030636e2c584ce3e24924357a3a854 05-Apr-2018 Andy Hung <hunga@google.com> Merge "AudioTrack: Prevent server from reading client data after stop" into pi-dev
1d3556d6a068f141ac390a04f6a9d92a70f8d7ed 30-Mar-2018 Andy Hung <hunga@google.com> AudioTrack: Prevent server from reading client data after stop

Prior to this CL, if an AudioTrack client wrote audio data after
AudioTrack stop(), but before the track was drained by the server,
the newly written client data would be consumed in the drain.

We now limit the server read to the client write position on stop.
This interlocking is essential for rapid asynchronous AudioTrack
command processing.

Test: AudioTrack CTS, SoundPool looping, bug test case
Bug: 75788313
Change-Id: Ib70e3dc46afe047a8c6cf1fb906a618b3c66cc7f
udioTrack.cpp
udioTrackShared.cpp
f2c4711aaed2a845e94a50c707c1ba7cec443443 31-Mar-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add retries in restoreTrack_l if the track does not start" into pi-dev
b13b35d7e2732227c1593257d4ef1353bf672a1f 31-Mar-2018 Mikhail Naganov <mnaganov@google.com> Add retries in restoreTrack_l if the track does not start

Connecting to a BT A2DP device supporting multiple codecs causes
a lot of churn on the audio service side, and it can reject
starting playback of a previously created track. As a
workaround, allow restoreTrack_l to retry in this case.

Bug: 74409267
Test: switching between 2 HD BT headsets while playing audio
Change-Id: I5d2ecf4da9ff680af7ae5bb837081b22ecd84f85
udioTrack.cpp
83028d5920884992b16f34aca167cd6c27734d3c 30-Mar-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Support query microphones information." into pi-dev
9ff780e58ff96ff98acaae4166bb218880bf9e73 20-Mar-2018 jiabin <jiabin@google.com> Support query microphones information.

Get list of all/currently active microphones from hal.

Bug: 64038649
Test: Manual Testing and Cts test
Change-Id: Id39cae38ba040f9bc91571e713487f87c2eb67b0
AudioFlinger.cpp
b1eb717472814adea3daa6b276af68d71a6b892f 27-Mar-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "audioserver: fix UID checks for multi user" into pi-dev
96c7eed596077ff84e75b7b1c6f20c3a29219bd1 27-Mar-2018 Eric Laurent <elaurent@google.com> audioserver: fix UID checks for multi user

Fix UID checks in audioserver to take into account multi user UIDs
where the top part above AID_USER_OFFSET contains the user number.

Bug: 76439650
Test: manual audio smoke tests.
Change-Id: I6dbd616021bcb2639c7b7369000ce911c7e7e030
AudioFlinger.cpp
AudioPolicyService.cpp
09e621a7b1b417b47618e7d8bd71ebade73b9089 27-Mar-2018 Eric Laurent <elaurent@google.com> audiopolicy: increase binder command timeout for some commmands

Extend timeout for SET_DEVICE_CONNECTION_STATE and HANDLE_DEVICE_CONFIG_CHANGE
binder commmands in IAudioPolicyService.cpp while we investigate why BT A2DP
device connection/disconnection can sometimes take more than 5 seconds.

Bug: 74840091
Test: check that no timout occurs for A2DP headset connections
Change-Id: I7dcba80059898ac1c73d580594d4956b4608ade0
AudioPolicyService.cpp
3528c9330f481f236f16753cb0846c7d6ddcc7ee 24-Feb-2018 Eric Laurent <elaurent@google.com> audio services: monitor execution time for binder commands

Add a mechanism to monitor execution time of incoming binder
calls to audio flinger and audio policy and cause native audioserver
restart in case of timeout.

Bug: 69250055
Test: manual. audio smoke tests
Change-Id: I01b5bf2599fb2a4cd265cbbe8d4e34b2b059aaf4
AudioFlinger.cpp
AudioPolicyService.cpp
c9685f39f807c64176ad8ea4db5bae0369817b86 03-Mar-2018 Yi Kong <yikong@google.com> Merge "Remove unreachable condition" am: f140201ff1 am: a49a1bf9bd
am: 7c67371466

Change-Id: I79f1c1457244c708d06124453a111d33a0460029
7c6737146601f04dc3f3dbc6359dc4f08ecf5904 03-Mar-2018 Yi Kong <yikong@google.com> Merge "Remove unreachable condition" am: f140201ff1
am: a49a1bf9bd

Change-Id: I305a2c6cd22966c0c2918596aa5fd9c585101345
e5b052ea1209bf0ced35e82a0096bf799011499e 01-Mar-2018 Yi Kong <yikong@google.com> Remove unreachable condition

Comparison of unsigned enum expression < 0 is always false. Fixes
tautological-unsigned-enum-zero-compare warning.

Bug: 72331526
Test: m
Change-Id: I9b4aa103ed64d3d08d1e36abbd8f3bf960cdf5d4
oneGenerator.cpp
1bc088a918d7038603230637d640941953b314d4 10-Feb-2018 Andy Hung <hunga@google.com> Call AudioMixer only from MixerThread threadLoop.

As part of change:
Remove track name offset by TRACK0.
Move track name management to the Tracks class.
Sync mixer track name to FastMixer track index.

Fixes regression introduced by commit 8ed196a.

Test: SoundPool, AudioTrack CTS, Usability
Bug: 72937362
Bug: 73004420
Change-Id: I2f1a33f6f0da66bcd7aa91e2a4b663ff822df645
nclude/media/AudioMixer.h
fee1976a2849c37a53d8a01ac10327d522a1ba93 30-Jan-2018 Eric Laurent <elaurent@google.com> Revert "Revert "audio policy: refactor audio record APIs""

This reverts commit e9ebcdbb0580bd4a75f4530b957b1859e535c028.

Bug: 72628781
Test: manual camcorder tests
Change-Id: I9fb550a9f62d2d15cafbd7534e5e7eaa155a7213
udioSystem.cpp
AudioPolicyService.cpp
nclude/media/AudioSystem.h
nclude/media/IAudioPolicyService.h
3cb0605ea4300ee997c2c7983533af8ea74df8ad 08-Feb-2018 Glenn Kasten <gkasten@google.com> Merge "Pull out commonly used constants to <audio_utils/clock.h>"
de15b8c160c720c48b93796016801e7ae0b6bd2d 31-Jan-2018 Ray Essick <essick@google.com> link media.metrics native strings to api-controlled java strings

add comments to native media.metrics code pointing to how they
are (and aren't) to be kept in synch with their java counterparts
that are part of the public API (and therefore pretty much fixed).

Bug: 72492234
Test: compilation
Change-Id: Ic096545a5cdfb2160c6b66438d345d8e625384b9
udioRecord.cpp
udioTrack.cpp
de2c195a218cc24eaf3a7ced149f7eb723656a97 01-Feb-2018 Mikhail Naganov <mnaganov@google.com> Merge changes from topic "fix-b-63901775-add-presentation"

* changes:
Audio presentation selection for AudioTrack native
Add presentation API interface
5dd03a5825d06033c1e66353dbbfcfc7f60990c5 01-Feb-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Support query active microphones information in AudioRecord."
31067d4b87475dd0a90145d4849cf66f7bf93f86 31-Jan-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove finalized concept from media.metrics"
77973c438b758da730a72ab3bb85b67f6767bf6b 31-Jan-2018 Glenn Kasten <gkasten@google.com> Pull out commonly used constants to <audio_utils/clock.h>

Test: builds OK
Change-Id: I7d2c4cb8982a3d792edf8fad7a7bae0ac3c4331c
udioTrack.cpp
34c238eaf4af84787648c714289de9dcfa1668d3 31-Jan-2018 Eric Laurent <elaurent@google.com> Merge "audio: filter reserved binder calls"
4980df29f61d5fad95e17ca1d1969f6ca4c1f296 27-Jan-2018 Eric Laurent <elaurent@google.com> audio: filter reserved binder calls

Block incoming binder calls to audio flinger and audio policy service
for sensitive functions if they are not coming from a system UID.

Bug: 72278478
Test: audio smoke tests. CTS tests for AudioTrack and AudioRecord
Change-Id: I78e02efffe135d5450ced125e51e2084719ca03d
AudioFlinger.cpp
AudioPolicyService.cpp
8ec3d5d415776cf37398b6cf788a3d4be2335a73 30-Jan-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes I6bcc87c6,If633e677

* changes:
Revert "audio policy: refactor audio record APIs"
Revert "audio flinger: move record permission checks to audio policy service"
92d23b433bd770c22c2d4a30b573602f5565de1b 29-Jan-2018 Ray Essick <essick@google.com> Remove finalized concept from media.metrics

the 'finalized' concept didn't pan out -- remove references to it.
Simplifies the code flow.
Also purged some uses of generateSessionID().

Bug: 71874686
Test: logcat/dumpsys
Change-Id: I39e48526a5696158d8195f47154881ca6ecda266
nclude/media/AudioRecord.h
nclude/media/AudioTrack.h
e9ebcdbb0580bd4a75f4530b957b1859e535c028 29-Jan-2018 Eric Laurent <elaurent@google.com> Revert "audio policy: refactor audio record APIs"

This reverts commit 0f4b3c5449f85c1cd78e1b9ac4850de962b8edbe.

Bug: 72628781
Test: Capture several videos from camera app
Change-Id: I6bcc87c618ac9bfe5c911915cbb37de616bc727a
udioSystem.cpp
AudioPolicyService.cpp
nclude/media/AudioSystem.h
nclude/media/IAudioPolicyService.h
653cc0ab6d5b714d1f26adcd08f9bc3269b62fa0 18-Jan-2018 jiabin <jiabin@google.com> Support query active microphones information in AudioRecord.

This is part of device enumeration. With the new add API, developer
could get the active microphones information for each channel.

Bug: 64038649
Test: Run cts and check the print log.
Change-Id: Ic63d86e533a30e40697da7522a5a81f7cfcea988
udioRecord.cpp
idl/android/media/IAudioRecord.aidl
nclude/media/AudioRecord.h
46a76fa5ffb88dbde2c67335dbc5cf20b75b10b6 05-Jan-2018 jiabin <jiabin@google.com> Add support for getting all available microphones characteristics.

Add MicrophoneInfo class in native side and native logic for supporting
query all available microphones.

Bug: 64038649
Test: Run test and check the print log.
Change-Id: Ic0a9cce55a1265a66ba08fe81b56b56cb88ba42f
udioSystem.cpp
AudioFlinger.cpp
idl/android/media/MicrophoneInfo.aidl
nclude/media/AudioSystem.h
nclude/media/IAudioFlinger.h
a70eef730d7665c9f4b2dfd25faf072785f80a2d 04-Jan-2018 Dean Wheatley <dwhea@dolby.com> Audio presentation selection for AudioTrack native

Bug: 63901775
Test: make
Change-Id: I63c9bdef880c7c387fd05f093b8d1094307a2754
Signed-off-by: Previr Rangroo <prang@dolby.com>
udioTrack.cpp
nclude/media/AudioParameter.h
nclude/media/AudioTrack.h
b2eb24b64f4a7bd367caaee345ca73271ce9af51 25-Jan-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "add getMetrics() apis for AudioTrack and AudioRecord"
8839430158e22382f0f6450c9274071eca945989 24-Jan-2018 Ray Essick <essick@google.com> add getMetrics() apis for AudioTrack and AudioRecord

add getMetrics() method to access media.metrics for AudioTrack and
AudioRecord.

Bug: 72179020
Bug: 72178968
Test: tweaked CTS
Change-Id: Id69862887b8b58655f59057e06f96b20a8e7d332
udioRecord.cpp
udioTrack.cpp
nclude/media/AudioRecord.h
nclude/media/AudioTrack.h
0f4b3c5449f85c1cd78e1b9ac4850de962b8edbe 05-Jan-2018 Eric Laurent <elaurent@google.com> audio policy: refactor audio record APIs

Refactor audio policy service APIs controlling audio record (startInput, stopInput, releaseInput)
To allow finer grain control per AudioRecord client and prepare for new concurrent capture
policy

Test: AudioRecord CTS test. manual test of capture use cases:
camcorder, OK Google VoIP

Change-Id: I4992fd5a115853c47be5dac5465989eb53f1287c
udioSystem.cpp
AudioPolicyService.cpp
nclude/media/AudioSystem.h
nclude/media/IAudioPolicyService.h
c6116926de37cabb1d35ddd57eaff0e19fcec8bc 24-Jan-2018 Andy Hung <hunga@google.com> Merge "AudioMixer: Enable 256 tracks, up from 32 tracks"
03570a65a46bd0d577aa4c860c4f32f4abf79c7c 24-Jan-2018 Andy Hung <hunga@google.com> Merge "AudioFlinger: Allocate client memory based on total device memory"
8ed196ac0f4aa8ae811c012dfa6f596fddebf1bf 05-Jan-2018 Andy Hung <hunga@google.com> AudioMixer: Enable 256 tracks, up from 32 tracks

Client apps can have 40 tracks, up from 14 tracks

Related code cleanup:
a) Removed State nested class
b) Moved static functions to Track member functions
c) Moved static function hooks to pointer-to-member-function hooks
d) Some reorganization of touched code for recent C++ style

Test: test-mixer native mixer test
Test: SoloTester effect test
Test: SoundPool with many tracks
Test: CTS AudioTrackTest
Bug: 64161002
Change-Id: I0d09620acd715d577e776bb6f76e94e87e554520
nclude/media/AudioMixer.h
34abab103a6eb3fc7417c9e9169ee172b2303952 24-Jan-2018 Kevin Rocard <krocard@google.com> Merge "Revert "Audio V4: Split system and vendor Audio.h""
07be14fb96fc5c106ea2b874faf2b768f468eb8e 24-Jan-2018 Kevin Rocard <krocard@google.com> Revert "Audio V4: Split system and vendor Audio.h"

This reverts commit f8ad7f85e9891b2614338330c75ae9e946fccc5a.

Reason for revert: Breaks the build of multiple devices

Change-Id: I24f17a0fa0c7ba171c4a3639f890e7f4e42f6b1e
ndroid.bp
6f248bb57a6a0febe8fc0f253acc86289237ace8 23-Jan-2018 Andy Hung <hunga@google.com> AudioFlinger: Allocate client memory based on total device memory

Test: Debug logging
Bug: 64161002
Change-Id: I7156748e5678c3232d1f1672439d11aecf3f458b
udioSystem.cpp
AudioFlinger.cpp
nclude/media/AudioSystem.h
nclude/media/IAudioFlinger.h
6a784e71ca122347789faa73367877d41831592f 24-Jan-2018 Kevin Rocard <krocard@google.com> Merge changes from topic "audio-hal-v4-tmp"

* changes:
Audio V4: Split system and vendor Audio.h
Audio V4: Use the framework audio.h instead of the HAL's
766fb020a50b64bf9a808bd80df60c54c2ca8cc3 06-Jan-2018 Nadav Bar <nadavbar@google.com> Support routing audio playback to telephony uplink

This change enables phone apps to play audio to the uplink stream
during a call.
This change maks the AUDIO_OUTPUT_FLAG_INCALL_MUSIC_UPLINK flag to be added to the flags that are sent to the HAL when an ongoing call is active, the chosen output device is the TX telephony device, the stream type is music, and the calling app has the MODIFY_PHONE_STATE permission.
For this change to take place, the following changes were made to the signature of getOutputForAttr in IAudioPolicyService:
1. Add pid (process id) parameter to getOutputForAttr.
2. Make the flags parameter a pointer so changed value can be
examined by calling function.

Bug: 69973354.
Test: tested manually.
Change-Id: I74cef3f8b66de6e0e8f87b6235130c2cdf423da7
udioSystem.cpp
AudioPolicyService.cpp
nclude/media/AudioSystem.h
nclude/media/IAudioPolicyService.h
f8ad7f85e9891b2614338330c75ae9e946fccc5a 18-Jan-2018 Kevin Rocard <krocard@google.com> 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>
ndroid.bp
65a438c6429c7f46cb0ab056c7f672ea0aa9e7f5 20-Jan-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Don't record audio if UID is idle - media framework"
f4ddfefc8ba59a8486d91826154cc9447821409e 16-Jan-2018 Svet Ganov <svetoslavganov@google.com> Don't record audio if UID is idle - media framework

To protect user's privacy if a UID is in an idle state we allow
recording but report silence (all zeros in the byte array) and once
the process goes in an active state we report the real mic data.
This avoids the race between the app being notified aboout its
lifecycle and the audio system being notified about the state
of a UID.

Test: Added - AudioRecordTest#testRecordNoDataForIdleUids
Passing - cts-tradefed run cts-dev -m CtsMediaTestCases
-t android.media.cts.AudioRecordTest

bug:63938985

Change-Id: I1442a9dda1553e9ea7a4a654c50555ac1ec06aa0
udioSystem.cpp
AudioFlinger.cpp
AudioPolicyService.cpp
nclude/media/AudioSystem.h
nclude/media/IAudioFlinger.h
nclude/media/IAudioPolicyService.h
0cde7e5863df60ece6986ad9b5b4358dc82380eb 16-Jan-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "prevent null pointer in audio track media metrics"
a10a2d361758752715744023b4109e8007fa34d4 16-Jan-2018 Ray Essick <essick@google.com> prevent null pointer in audio track media metrics

Disable a piece of audio track metrics code that triggered a
null pointer exception.

Bug: 72027185
Test: manual
udioTrack.cpp
783bd0d74d142493b4ef0a15a2664535854e99f9 11-Jan-2018 Ray Essick <essick@google.com> media.metrics changes AString -> std::string

change from AString to std::string for how media.metrics handles
strings. This severs the dependency on libstagefright_foundation,
where AString is implemented, so we can integrate into places
which do not want to introduce a dependency on libstagefright_foundation.

Bug: 70805723
Test: compilation/linking, CTS subset
Change-Id: I66de971b6ec354444e06112607a2d7614084cef8
ndroid.bp
734d186db7ec3d1f877001d71c71de6562ead7f7 09-Jan-2018 Ray Essick <essick@google.com> Metrics for AudioRecord

Collect media metrics for audiorecord. Basic framework and initial set
of metrics.

Bug: 70569777
Test: recordings, observe stats
Change-Id: I66fce1eec46cc13a93b106c2be34d23c138920de
udioRecord.cpp
nclude/media/AudioRecord.h
ed30470cf0a20c0c1edb2b82075985ccaa6c75c1 12-Dec-2017 Ray Essick <essick@google.com> collect media.metrics from audiotrack

initial pass at collecting metrics information from audiotrack.

Bug: 70569777
Test: manual via dumpsys media.metrics
Change-Id: Ia6ed6d93bd487e4323b86dd4ffabae232f79f94b
ndroid.bp
udioTrack.cpp
nclude/media/AudioTrack.h
49f36ba3b4624ddd3d7efa34c95128a73bda6208 06-Dec-2017 Glenn Kasten <gkasten@google.com> Logs use either %#x or 0x%x for flags, channel mask, format, device

Preferred is %#x but 0x%x is also permitted because it is widely used.

The benefit is that it reduces ambiguity and possible confusion,
without needing to read the source code for each log.

Test: builds OK and logs are less ambiguous
Change-Id: Ie2404e071d22278b8bba1e094ad336887844212c
udioSystem.cpp
udioTrack.cpp
d466435670d1beb80beeeb1a140ebe6a5bfd0d9f 21-Dec-2017 Andy Hung <hunga@google.com> Merge "AudioEffect: Convert aux buffer format from q4.27 to float"
53ad17fd64e1415d7c29480f0cc3d413f1c71936 20-Dec-2017 Eric Laurent <elaurent@google.com> ToneGenerator: fix use of STREAM_VOICE_CALL

ToneGenerator is only used for signalling, never for voice.
In order to use proper audio attributes usage and content type, convert
requests to play on stream VOICE_CALL to stream DTMF.
This will produce consistent routing and volume behavior when apps use
DTMF or VOICE_CALL streams.
Also use audio attributes when creating the AudioTrack

Test: CTS for ToneGenerator, voice and VoIP calls
Change-Id: Ic67abaeed0ea09f08ad5586cebe858e74fe21af9
oneGenerator.cpp
0a7885e717e498167520a6ed2fdec45fb472ceee 07-Dec-2017 Eric Laurent <elaurent@google.com> add test for AudioRecord constructor

This test contructs a number of AudioRecords from arguments
listed in an input file and outputs dumps of the constructed
AudioRecords to an output file.
The output file can be compared to previous iterations to spot regressions.
An reference input file and the corresponding output file are added for
further comparison.

Test: run this test
Change-Id: I0d1b596ca91c3c58f159887fbd48aa3f04ae38c2
ests/Android.bp
ests/record_test_input_v1.0_ref.txt
ests/record_test_output_v1.0_ref_walleye.txt
ests/test_create_audiorecord.cpp
ests/test_create_audiotrack.cpp
ests/test_create_utils.cpp
ests/test_create_utils.h
724a1816e7bd503d7a1f491a90f76c8cf3ca6a16 07-Dec-2017 Eric Laurent <elaurent@google.com> add dump() method to AudioRecord

Add a dump() method to AudioRecord.
Can be used by dumpsys or tests.

Test: run test_create_audiorecord
Change-Id: I4b3133601eeff4d5447ca2c5b13a01ff3451b6c7
udioRecord.cpp
nclude/media/AudioRecord.h
b1cc36b5d52de7cb3d78426d41dee87f25d7164a 11-Dec-2017 Eric Laurent <elaurent@google.com> Revert "Revert "restrict binder transactions to audioserver""

This reverts commit 009c1e37d07936178b59346ee8f7cb19484644b6.

Bug: 70388312
Test: AudioRecord CTS, Audio smoke tests
Change-Id: I263aa1ed7ef832d593bc0fb02000d986ad1a3f69
AudioFlinger.cpp
AudioPolicyService.cpp
f14db3c3ebc1ea29b3eb5b7e9b944cabcb5f83ff 08-Dec-2017 Eric Laurent <elaurent@google.com> Revert "Revert "refactor AudioRecord and AudioFlinger openRecord()""

This reverts commit 0aa3c6eba07f987fe84b5fa450274a8e730971e3.

Bug: 70388312
Test: AudioRecord CTS, Audio smoke tests
Change-Id: I45394bccf82b922aa2b68fee3e02afc280f6729c
udioRecord.cpp
AudioFlinger.cpp
idl/android/media/IAudioRecord.aidl
nclude/media/AudioClient.h
nclude/media/AudioRecord.h
nclude/media/AudioSystem.h
nclude/media/IAudioFlinger.h
3700e162a5526ada762d081de34c9abdd085c5fe 09-Dec-2017 Eric Laurent <elaurent@google.com> Merge "Revert "restrict binder transactions to audioserver""
009c1e37d07936178b59346ee8f7cb19484644b6 09-Dec-2017 Eric Laurent <elaurent@google.com> Revert "restrict binder transactions to audioserver"

This reverts commit 4db794441a5ef63733e109213269bb6324387b36.

Change-Id: Ifae4f59e4aed489bb22958674cf96d556b170d2d
AudioFlinger.cpp
AudioPolicyService.cpp
cef7b7a656aaa1d6e875a0f0ffdf6e31f17d1aa6 08-Dec-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Revert "refactor AudioRecord and AudioFlinger openRecord()""
0aa3c6eba07f987fe84b5fa450274a8e730971e3 08-Dec-2017 Eric Laurent <elaurent@google.com> Revert "refactor AudioRecord and AudioFlinger openRecord()"

This reverts commit 3e1acc0c58b337dec4054d78c28b48b2e77e0784.

bug: 70388312

Change-Id: I6782d6eceeece1bad998b02af26c0119da70a13d
udioRecord.cpp
AudioFlinger.cpp
idl/android/media/IAudioRecord.aidl
nclude/media/AudioClient.h
nclude/media/AudioRecord.h
nclude/media/AudioSystem.h
nclude/media/IAudioFlinger.h
116a49881b35f561f6ee316990d425fad56e7487 30-Nov-2017 Andy Hung <hunga@google.com> AudioEffect: Convert aux buffer format from q4.27 to float

Test: Solo Tester aux reverb
Bug: 69853407
Change-Id: I72ca2377036e5ccfd5f4631ac6cc5e86d2e40433
nclude/media/AudioMixer.h
4db794441a5ef63733e109213269bb6324387b36 05-Dec-2017 Eric Laurent <elaurent@google.com> restrict binder transactions to audioserver

Prevent other processes from sending reserved binder transactions
to IAudioFlinger and IAudioPolicyService.

Test: Manual audio smoke tests
Test: CTS: AudioRecordTest, AudioTrackTest, AudioEffectTest,
AudioPreProcessingTest, AudioManagerTest

Change-Id: I3643e03cb056236f5e88476d0a575cc28c220f2c
AudioFlinger.cpp
AudioPolicyService.cpp
2d8876492d9031978a917764bb3e38c2927284ea 05-Dec-2017 Eric Laurent <elaurent@google.com> Merge "refactor AudioRecord and AudioFlinger openRecord()"
3e1acc0c58b337dec4054d78c28b48b2e77e0784 02-Dec-2017 Eric Laurent <elaurent@google.com> refactor AudioRecord and AudioFlinger openRecord()

Refactor the mechanism used by audio record tracks to query and
attach to an input mixer/stream in audio flinger. This will:
- reduce the number of binder transactions needed to create a record track
- move sample rate, framecount and flags validations to audio server side
- move audio session allocation to audio server side
- prepare restriction of certain binder transactions to audioserver only

Also:
- renamed openRecord() to createRecord() for consistency with AudioTrack
- make AudioRecord mStatus update consistent when calling default
contructor + set() or constructor with arguments
- make AudioClient, CreateTrackXXX and CreateRecordXXX classes derive
from Parcelable
- restore audio session ID validity check in AudioFlinger::createTrack()

Test: CTS tests: AudioRecordTest, AudioRecordingConfigurationTest, AudioPreProcessingTest
Test: manual test for capture use cases: camcorder, OK Google, VoIP calls
Change-Id: I72edaa7ddef1da11c77df21e88378e3aa9012d58
udioRecord.cpp
AudioFlinger.cpp
idl/android/media/IAudioRecord.aidl
nclude/media/AudioClient.h
nclude/media/AudioRecord.h
nclude/media/AudioSystem.h
nclude/media/IAudioFlinger.h
0225a1883b85466e59ba479314ca7056f2c5de98 03-Dec-2017 Colin Cross <ccross@android.com> Merge "Export AIDL files as a filegroup for framework.jar"
9c036d8c32187c1e2612d1341ac9713f13252eab 02-Dec-2017 Kevin Rocard <krocard@google.com> IAudioPolicyService: Add attribute tags sanitization am: 39fdbd097a
am: f3cb11a0bc

Change-Id: I4334fc550cd5c2660e2e6f128d2cdd7429917a56
f3cb11a0bc9e7b397c2ae84c56ae0574c68f9379 02-Dec-2017 Kevin Rocard <krocard@google.com> IAudioPolicyService: Add attribute tags sanitization
am: 39fdbd097a

Change-Id: I2bccade7b7164dd3b912a1f891c4bf077120812a
39fdbd097a147b5c719dac9ad2759e6c44eb3a4e 13-Nov-2017 Kevin Rocard <krocard@google.com> IAudioPolicyService: Add attribute tags sanitization

When audio_attributes_t was read from the binder parcel,
the string tags field was copied without checking that
it contained a '\0'.

This could lead to read past the end when tags were used.

This patch always adds a '\0' at the end of the buffer when
deserializing.

Bug: 68953950
Test: manual playback/record
Test: send binder payload without \0 in tags attribute, check that only
AUDIO_ATTRIBUTES_TAGS_MAX_SIZE - 1 char are printed.
Change-Id: I285258cbf7cfaf26b191d1f31b3b1e2d724c4934
Merged-In: I285258cbf7cfaf26b191d1f31b3b1e2d724c4934
Signed-off-by: Kevin Rocard <krocard@google.com>
AudioPolicyService.cpp
nclude/media/IAudioPolicyService.h
f32d7814f56f0a07b8aaacc88a0d8d00349fc916 30-Nov-2017 Eric Laurent <elaurent@google.com> AudioTrack: fix status reporting

Make sure mStatus is updated when set() is executed
from outside of the constructor
Also update mStatus when createTrack_l() is executed.

Test: manual test of audio playback use cases
Test: AudioTrack contructor test.
Change-Id: I70700c84800e144cbf34dac2f9d1526eaf7df292
udioTrack.cpp
4473d78d092ffc442edeaed022c7e56366e1c504 28-Nov-2017 Eric Laurent <elaurent@google.com> add test for AudioTrack constructor

This test contructs a number of AudioTracks from arguments listed in an input file
and outputs dumps of the constructed AudioTracks in an output file.
The output file can be compared to previous iterations to spot regressions.

An reference input file and the corresponding output file is added for
further comparison.

Test: run this test
Change-Id: I88e458a194a18c9ec919e1e903d49686632c18bf
ests/Android.bp
ests/test_create_audiotrack.cpp
ests/track_test_input_v1.0_ref.txt
ests/track_test_output_v1.0_ref_walleye.txt
6bf135b03e58c8b6399df2937358242977c77b2b 14-Nov-2017 Colin Cross <ccross@android.com> Export AIDL files as a filegroup for framework.jar

Put AIDL files into a filegroup so they can be imported as sources
for framework.jar.

Bug: 69917341
Test: m checkbuild
Change-Id: Ia500ff881bcc8d4a6f0aa66e12d9e6bb5a07ecc1
ndroid.bp
fec2f93fae282ad10bbb5e3fcce9f60eff2cfb48 24-Oct-2017 jiabin <jiabin@google.com> Add AudioRouting interface in AudioRecorder.

Bug: 64038649
Test: Run cts in RoutingTest
Switching input device when using MediaRecorder

Change-Id: I53f22974f8c3dacaef6044ea742e62951961c1fd
udioRecord.cpp
nclude/media/AudioRecord.h
d114b624ea2ec5c51779b74132a60b4a46f6cdba 28-Nov-2017 Eric Laurent <elaurent@google.com> audio track: dump more data

Add more information to AudioTrack::dump();

Test: run dumpsys media.player
Change-Id: Ia0799c65c02dd27b623b53d550ebf08c5c1b724c
udioTrack.cpp
ee9ab22ebabab3e3669b38badf8b0a0f504fc3b4 21-Nov-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "refactor AudioTrack and AudioFlinger createTrack()"
602417cd10c569783c2cc32bb7c13b1e02d9645e 16-Nov-2017 Tomoharu Kasahara <tomoharu.kasahara@sonymobile.com> Merge "Support Ireland specific supervisory tone" am: 289cce6034 am: 899b78c12b
am: db5b6cb6c3

Change-Id: I7308f696e575344a9a8d887d63b765942905ef78
21da647792c0b78ab3943be0f32066015d5e8c34 10-Nov-2017 Eric Laurent <elaurent@google.com> refactor AudioTrack and AudioFlinger createTrack()

Refactor the mechanism used by audio tracks to query and attach
to an output mixer/stream in audio flinger. This will:
- reduce the number of binder transactions needed to create a track
- move sample rate, framecount and flags validations to audio server
side
- move audio session allocation to audio server side
- prepare restriction of certain binder transactions to audioserver only

Test: CTS tests for AudioTrack

Change-Id: If4369aad6c080a56c0b42fbfcc97c8ade17a7439
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
nclude/media/AudioClient.h
nclude/media/AudioSystem.h
nclude/media/AudioTrack.h
nclude/media/IAudioFlinger.h
899b78c12b25fa381b1d6c90330ce45f758ef28d 16-Nov-2017 Tomoharu Kasahara <tomoharu.kasahara@sonymobile.com> Merge "Support Ireland specific supervisory tone"
am: 289cce6034

Change-Id: I857c315649c27d6424ff97775aab813d330f5aaa
289cce603494363f9d0f6d42b16289b632205f77 16-Nov-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Support Ireland specific supervisory tone"
4593b04bdad2ae66b22c5d3fb78276b523b7e942 11-Nov-2017 Xin Li <delphij@google.com> Merge commit '79edadcea74151b573d5b973d5a421baee693ec1' from
oc-mr1-dev-plus-aosp into stage-aosp-master

Change-Id: I04234f284e3117e8343e7c888646400c81f5a131
Merged-In: Icf228c701afe37dd3c7f00ea9e6fb740b0d450f1
8f8932c41e7c0a1f65e3556733ed33bbc88793ce 06-Nov-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Revert "Revert "audio policy: refactor getOutput() method"""
f4e63452b37c799c9387a6a88b46e6191f6a5f7e 06-Nov-2017 Eric Laurent <elaurent@google.com> Revert "Revert "audio policy: refactor getOutput() method""

This reverts commit e198f26cae6f0b5c67340935c291363fdfff87f1.

Change-Id: I65eb2905adb45c3809a499d85c1a8ef68cec7ed5
udioSystem.cpp
AudioPolicyService.cpp
nclude/media/AudioSystem.h
nclude/media/AudioTrack.h
nclude/media/IAudioPolicyService.h
70fa3f429beb5f3a0d6468010668d901c117e03f 04-Nov-2017 Eric Laurent <elaurent@google.com> Merge "Revert "audio policy: refactor getOutput() method""
e198f26cae6f0b5c67340935c291363fdfff87f1 04-Nov-2017 Eric Laurent <elaurent@google.com> Revert "audio policy: refactor getOutput() method"

This reverts commit e1dd2075105317ef8ff2b924423c88856e8fe8ea.

Change-Id: I4b7a2177af5bff5013ec4fe7fcdeb722f6b158c5
udioSystem.cpp
AudioPolicyService.cpp
nclude/media/AudioSystem.h
nclude/media/AudioTrack.h
nclude/media/IAudioPolicyService.h
98b1b5ec9122dde302879878b255b44ce03cfec9 03-Nov-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "audio policy: refactor getOutput() method"
e1dd2075105317ef8ff2b924423c88856e8fe8ea 03-Nov-2017 Eric Laurent <elaurent@google.com> audio policy: refactor getOutput() method

getOtuput() was long replaced by getOutputForAttr() for the purpose of
querying an appropriate HAL output stream for a given playback use case.
It is now only used internally by AudioSystem to find an existing output
corresponding to a given stream type in limited cases.

This CL simplifies getOutput() by removing unused arguments and just
returning an output from already opened outputs.
This is in preparation of limiting access to audio policy binder calls
to what is strictly needed by apps.

Test: test main playback, capture and call use cases.
Change-Id: I137c5526aa7e82303b43948326c77ec798f432f5
udioSystem.cpp
AudioPolicyService.cpp
nclude/media/AudioSystem.h
nclude/media/AudioTrack.h
nclude/media/IAudioPolicyService.h
156c6873a5e69af71f3c28b236c5831b9cb2ac95 06-Oct-2017 jiabin <jiabin@google.com> Add AudioRouting interface for MediaPlayer

Bug: 64038649
Test: Run cts in RoutingTest
Switch output device when playing music/video with MediaPlayer

Change-Id: I5b5c288e6557199b0a6986785f9335a18a80ab89
udioTrack.cpp
nclude/media/AudioTrack.h
bdfaf7e6081a3a4fc5b0b613d9b2d42f488cb0a9 31-Oct-2017 Glenn Kasten <gkasten@android.com> Merge "Limit notification period when a fast track denied" am: 89a1e53856 am: 66446e6135
am: 53a82d0a1a

Change-Id: Idf2b0e981ddbae38aeb4838595e303d0b8b1da2f
53a82d0a1ae2875cff9d8253f9b6ba2fff5f93a4 31-Oct-2017 Glenn Kasten <gkasten@android.com> Merge "Limit notification period when a fast track denied" am: 89a1e53856
am: 66446e6135

Change-Id: I4403db70ddcbcc5f29332342531c33eb12563661
9bf34d542787dd322f7ad56f8bb8607633004009 24-Oct-2017 Glenn Kasten <gkasten@google.com> Limit notification period when a fast track denied

If client requests a fast track and this request is denied, then don't
allow notification period to exceed FMS_20. FMS_20 is the minimum task
wakeup period in ms for which CFS operates reliably. This reduces
glitching when an app uses a buffer size that is too small for the endpoint.
The theory is that if the app wanted a fast track but couldn't get it,
then at least wake it up as often as possible (while still not waking
up so often than CFS can't handle it).

Also clarify in the log when the denial is by client vs server.

Test: as described in bug
Bug: 63040475
Change-Id: I2c171bda7929a8f309c2286d868e09887680d234
udioTrack.cpp
599ca05559f93c608f00f2ad13846bf27ba82648 23-Oct-2017 Tomoharu Kasahara <tomoharu.kasahara@sonymobile.com> Support Ireland specific supervisory tone

Ringtone and call waiting tone for Ireland are not
following ITU-T specification.
This patch implements them as per ITU-T specification.

Bug: 68294204
Test: Build and test ringback tone for Ireland
Change-Id: I2cf3f425aec47b9dbc6ecf2ffb3aef44ca4f783c
oneGenerator.cpp
nclude/media/ToneGenerator.h
ec8aec0d83678ab4fea92639610f234fa0f01a65 03-Oct-2017 tomoki hanzawa <tomoki.x.hanzawa@sonymobile.com> Merge "Support Hong Kong specific supervisory tone" am: 78041ba297 am: cbb79ebda5 am: 593f9251c8
am: d60b9de7c4

Change-Id: I21fe2515577cc09f649ae38141ad65d6ed76d737
80b3165a6ad328dc6b864bdb096066689de6a422 03-Oct-2017 Johan Gustavsson <johan1.gustavsson.x@sonymobile.com> Merge changes I86076b07,I7409732e,I248b1b27 am: d773fbbb5c am: 160741e742 am: c9d45b85a4
am: d3bce141ed

Change-Id: I7982b3733c6142d4694004fe7ea0e3a06f8a7820
d60b9de7c4594be831d23b9614a2475ff08e0633 03-Oct-2017 tomoki hanzawa <tomoki.x.hanzawa@sonymobile.com> Merge "Support Hong Kong specific supervisory tone" am: 78041ba297 am: cbb79ebda5
am: 593f9251c8

Change-Id: I7176f17472b32753ef0342eec954d6e18a58025f
d3bce141edb95bd06fe6d1ff593f7a9a8f66460e 03-Oct-2017 Johan Gustavsson <johan1.gustavsson.x@sonymobile.com> Merge changes I86076b07,I7409732e,I248b1b27 am: d773fbbb5c am: 160741e742
am: c9d45b85a4

Change-Id: I797853c94c87b0a183accafb2a43f74434edf223
cbb79ebda5f4aec6ef5309d965d693f26ba33bd8 03-Oct-2017 tomoki hanzawa <tomoki.x.hanzawa@sonymobile.com> Merge "Support Hong Kong specific supervisory tone"
am: 78041ba297

Change-Id: I4a22b757e2e55155b041c97581118d3d02813afa
160741e7425ba50f428a8b9982301bb5139cf2d8 03-Oct-2017 Johan Gustavsson <johan1.gustavsson.x@sonymobile.com> Merge changes I86076b07,I7409732e,I248b1b27
am: d773fbbb5c

Change-Id: I7ad0e8ccb29f5f626b6f4ef4b951f4f321a607e1
78041ba297e0c9e8d3550f79d751683a4dd2a332 03-Oct-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Support Hong Kong specific supervisory tone"
d773fbbb5c23ae7b67eba52eca79a19926157025 03-Oct-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge changes I86076b07,I7409732e,I248b1b27

* changes:
Support Singapore specific supervisory tone
Support Australia specific supervisory tone
Support GB specific supervisory tone
158482dcc8a81172ef6ac5725bee2bf7329b1e96 03-Oct-2017 Glenn Kasten <gkasten@google.com> Merge "Split nblog off from nbaio"
930d7fc3ca11c4628aea2e8ed0c953f47eb2873e 22-Sep-2017 Eric Laurent <elaurent@google.com> Merge "ToneGenerator: fix dual sim ringback tone" am: 85e8823fc7 am: fe08c18918 am: 831da6ee4c
am: 7e23edf184

Change-Id: I085f1ede562c6a21a476774b4f1200b44f67a699
7e23edf1844198b4b31c3ce384c8f535a9aad155 22-Sep-2017 Eric Laurent <elaurent@google.com> Merge "ToneGenerator: fix dual sim ringback tone" am: 85e8823fc7 am: fe08c18918
am: 831da6ee4c

Change-Id: Iea171fc613f8449a88593dcb4c07e63d57b586a6
fe08c18918afc6c15e9f0a0b36d0cb735d330b10 22-Sep-2017 Eric Laurent <elaurent@google.com> Merge "ToneGenerator: fix dual sim ringback tone"
am: 85e8823fc7

Change-Id: Ic77a7c6723b0483aeaac6c83e42722e7f6e6b7c5
eae07a40aeadf4f0e339c331487c80d3216e3b6e 07-Feb-2017 Krzysztof Semko <krzysztof.semko@sonymobile.com> ToneGenerator: fix dual sim ringback tone

If dual sim device has two SIM cards inserted,
in airplane mode it sets "gsm.operator.iso-country" prop
to a single comma, which prevents ToneGenerator to access
prop for "gsm.sim.operator.iso-country" - SIM provider
country code. When VoWifi is used to make a call,
incorrect ringback tone is being played (generic one),
instead if one being read from gsm.sim.operator.iso-country.

This patch fix this, and allows ToneGenerator to correctly
recognize SIM country code.

Bug: 65859291
Test: Check ringback tone during SIM2 VoWiFi in flight mode

Change-Id: Ibb57d38432f3d99f2eac568aec2a949af5e2a9cd
oneGenerator.cpp
92197f86b1184133107ee66314467f4676850ab8 19-Sep-2017 Eric Laurent <elaurent@google.com> Fix various AAudio device selection issues am: ad2e7b902c
am: 282ca69583

Change-Id: I051d56560608444c47b5a827ef921b878e8f4a4e
ad2e7b902c0432a0db40906a4b1f5b693ce439dd 15-Sep-2017 Eric Laurent <elaurent@google.com> Fix various AAudio device selection issues

Bug: 65292224
- Audio policy manager should not use an unavailable device when an explicit
route is requested. This causes a device selection made by a client to
become sticky after device disconnection.

Bug: 64945845
- Remove spurious device change callback occuring after registering a
new client to audio server by creating a specific configuration event
for client registration.
- Do not keep strong references to device callback interfaces in
AudioTrack, AudioRecord and AudioSystem.
- Do not update selected device in AudioTrack and AudioRecord when
not active as the new device selection on the stream is because of other
clients activity which is not relevant to an inactive client.

Bug: 65693340
- Fix missing increment of SessionRoute ref count in getInputForAttr() for
MMAP inputs

Test: AAudio CTS tests

Change-Id: I2a01b02e8b064d352004f6065495fd99aee55745
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
nclude/media/AudioIoDescriptor.h
nclude/media/AudioRecord.h
nclude/media/AudioSystem.h
nclude/media/AudioTrack.h
f89090e284b8ef61eb8cae68c657c8a60877b9fb 14-Sep-2017 Andy Hung <hunga@google.com> Merge "AudioTrack, AudioRecord: Fix latency computation" into oc-mr1-dev am: 5deda0e784
am: c0e75a7d57

Change-Id: I1f95a6372752e2e47e7f022db0333517c387eadf
13969262f704ca27c82d60e3c7cf4b271e3b5918 12-Sep-2017 Andy Hung <hunga@google.com> AudioTrack, AudioRecord: Fix latency computation

Force 64 bit arithmetic to avoid integer overflow on 32 bit
platforms.

Test: CTS AudioTrackTest
Bug: 65536481
Change-Id: I774a7811fce08c7cbe59f0a062fd2c2d72220203
udioRecord.cpp
udioTrack.cpp
8589ce7045fd4f5520aabbc773f00c7136925fd7 09-Sep-2017 Glenn Kasten <gkasten@google.com> Split nblog off from nbaio

nbaio is an acronym for "non-blocking audio I/O", and nblog means
"non-blocking logger" so nblog does not belong with nbaio.

There are a lot of improvements planned for nblog, and having the
restructuring done will make it clearer as more files are added.

Test: builds OK
Change-Id: Ib28bada2566c1d64bdbe9f5d7a5ce40e080178ef
nclude/media/AudioMixer.h
5d874b5bcc9577b4e9054b6fb1d41cb6462dbb58 07-Sep-2017 jiabin <jiabin@google.com> Merge "Fix failure at AudioTrack_ListenerTest#testAudioTrackCallback" into oc-mr1-dev am: 310dd0a2d9
am: fd513fff31

Change-Id: Ic28d34a8cf8bed962642a7e2535d6936d69495f4
310dd0a2d96e97d4f3983a6e70b5e0653a521030 07-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix failure at AudioTrack_ListenerTest#testAudioTrackCallback" into oc-mr1-dev
c7bb8324c7c19ed4ab5bdafae0d750bf41c299f1 07-Sep-2017 jiabin <jiabin@google.com> Fix failure at AudioTrack_ListenerTest#testAudioTrackCallback

After cold start, running the test will cause failure. The reason is
that with cold start, the buffer is being processed faster than the
position callback.
Calling the callback earlier at the very start will fix this issue.

Bug: 63056426
Test: adb shell am instrument -e class 'android.media.cts.AudioTrack_ListenerTest#testAudioTrackCallback'
-w 'android.media.cts/android.support.test.runner.AndroidJUnitRunner'

Change-Id: I7416cecb2837fac4a966e832412948c357e7b8dc
udioTrack.cpp
a488402046bffd51803cc98815824a27f510d1c5 07-Sep-2017 Andy Hung <hunga@google.com> Merge "AudioTrack: Fix extended timestamp offset" into oc-mr1-dev am: 7966b44126
am: 12131a23cb

Change-Id: Icc86ada7ecf279827f7a43bd93dbdae1ff445cb0
c4e60eb165608f08cd85ed2fccbdaa6700f271cd 06-Sep-2017 Andy Hung <hunga@google.com> AudioTrack: Fix extended timestamp offset

The extended timestamp server and kernel location positions
need the proper client side delta offset for native AudioTrack API calls.
The client location position is unaffected along with the legacy timestamp.

Test: test_timestamp, Photos, kill audioserver
Bug: 65386236
Change-Id: Idd71b6a31e0e86a323d0e5e343a2836e34c08673
udioTrack.cpp
e247023e785e581349d8fb926c4a1bed239b623c 06-Sep-2017 Andy Hung <hunga@google.com> Merge "AudioTrack: Limit timestamp time lag after start" into oc-mr1-dev am: cea54cf940
am: 0fbd5badd5

Change-Id: I910d96c6901bad81987191ea2485435a6fcf8a7f
ef8d73a77cb2a4a344ce29a9aaaacbc7ca4f2206 15-Sep-2015 tomoki hanzawa <tomoki.x.hanzawa@sonymobile.com> Support Hong Kong specific supervisory tone

Added the conditions that determine the region for HK,
then support Hong Kong specific ring tone and busy tone.

Bug: 63120797
Test: Build and test ringback tone for Hong Kong
Change-Id: Ifc836321ca1ac1f670d4640305727f4ea3800716
oneGenerator.cpp
nclude/media/ToneGenerator.h
0f6500b61b7aaf3299eef8309c67ba2e86d2d065 18-Mar-2014 Johan Gustavsson <johan1.gustavsson.x@sonymobile.com> Support Singapore specific supervisory tone

Singapore use CEPT standard supervisory tones except
for busy and ringtone. The Singapore mapping will be
used if gsm.operator.iso-country == "sg".

Bug: 63120560
Test: Build and test ring back tone for Singapore
Change-Id: I86076b0799a741ad8c54968799e400622d223ccd
oneGenerator.cpp
nclude/media/ToneGenerator.h
879996a5f7419819cf9318917d6c82068950a034 03-Mar-2017 Toshikazu Saito <toshikazu.x.saito@sonymobile.com> Support Australia specific supervisory tone

The change in "Australia Supervisory DIAL tone"
seems not following ITU-T specification.
This patch implements TONE_AUSTRALIA_DIAL as per ITU-T
specification.

Bug: 63120712
Test: Build and test ringback tone for Australia
Change-Id: I7409732e57cf8d39ac2248e7e3e10217e30a118e
oneGenerator.cpp
nclude/media/ToneGenerator.h
5babf61cddbd02100e5a4017deec09eb55fc1d32 15-Sep-2015 tomoki hanzawa <tomoki.x.hanzawa@sonymobile.com> Support GB specific supervisory tone

Modified gb's SupervisoryTone
when the following ToneType is selected to cover
GB market/operators requirement.
- TONE_SUP_DIAL
- TONE_SUP_BUSY
- TONE_SUP_CONGESTION

Bug: 63121347
Test: Build and Test ringback tone for UK.
Change-Id: I248b1b27f4156de37fd07bc878be719e3f6d6b95
oneGenerator.cpp
nclude/media/ToneGenerator.h
ffa3695a012d22c6c81cf311232c5c84c06f9219 17-Aug-2017 Andy Hung <hunga@google.com> AudioTrack: Limit timestamp time lag after start

Test: Photos with long pause and resume
Bug: 63614330
Bug: 63976584
Change-Id: I81ac650c821600fee507c72c3b0c1be60f5e7ab6
udioTrack.cpp
nclude/media/AudioTrack.h
8cf3a0788df2ee184b498086b1b8da322eeadcca 09-Aug-2017 Ivan Lozano <ivanlozano@google.com> Generate the IPlayer interface with AIDL.

This removes the manually rolled IPlayer implementation and instead uses
an aidl generated implementation. The IPlayer aidl file is moved from
frameworks/base/.

Test: run cts --module CtsMediaTestCases
Bug: 64223827
Change-Id: Ia609f7ba1cc6f71ce919d6174dd8b5e0e1b05575
ndroid.bp
udioTrack.cpp
AudioTrack.cpp
layerBase.cpp
rackPlayerBase.cpp
idl/android/media/IPlayer.aidl
idl/android/media/VolumeShaper/Configuration.aidl
idl/android/media/VolumeShaper/Operation.aidl
idl/android/media/VolumeShaper/State.aidl
nclude/media/AudioTrack.h
nclude/media/IAudioTrack.h
nclude/media/PlayerBase.h
nclude/media/TrackPlayerBase.h
5b506f21b1bf4e49cbcb341b46881a77e2f98bf7 20-Jul-2017 Mikhail Naganov <mnaganov@google.com> audio effects: Eliminate the cause warning logs about unreleased interface

The cause of frequent "EffectModule 0xxx destructor called with unreleased
interface" messages was due to not releasing the effects when purging
stale effects.

The cause of "Effect handle 0xxx disconnected after thread destruction"
message was due to late binder call for disconnecting already purged
effect handle.

Also improved logging to communicate uuids of the effects causing
these issues.

Bug: 62267926
Test: no aforementioned warnings in the log when opening the Effects
panel in Play Music

Change-Id: I6ec6f60c46dc704226931fb59a641e4cd74c2fd1
(cherry picked from commit 424c4f5b76a6ed11f2c713b42246a7220cfbb240)
udioEffect.cpp
ff6900d8f991aac0b67b625f8a1d4d0461b4c50e 02-Aug-2017 Ivan Lozano <ivanlozano@google.com> Generate IAudioRecord with AIDL.

Use AIDL to generate the IAudioRecord interface rather than using
a manually implemented interface.

Bug: 64223827
Test: Ran the AudioNativeTest and CtsMediaTestCases CTS tests.

Change-Id: Iade23c73253a97c358050bbd697ebe592b89a4c0
ndroid.bp
udioRecord.cpp
AudioFlinger.cpp
AudioRecord.cpp
idl/android/media/IAudioRecord.aidl
nclude/media/AudioRecord.h
nclude/media/IAudioFlinger.h
nclude/media/IAudioRecord.h
05c9731cff68ff785ebef22403ef5c7aea7a3581 04-Aug-2017 Andy Hung <hunga@google.com> Merge "AudioTrackShared: Log more detail on fatal errors" into oc-dr1-dev am: c8adbea083 am: ca5104eb94
am: bfe83e8158

Change-Id: I49f629176dd646929e19cd929eb9ba83d9967cd4
bfe83e8158f2c7e3cba81a0c2e5786e1eef005cb 04-Aug-2017 Andy Hung <hunga@google.com> Merge "AudioTrackShared: Log more detail on fatal errors" into oc-dr1-dev am: c8adbea083
am: ca5104eb94

Change-Id: If662b76ab0c1c2c760c42cf24f70bb8aeab57e0b
4679313133edebc90b42f2b5f35ce2090d09fa52 04-Aug-2017 Andy Hung <hunga@google.com> Merge "AudioTrackShared: Log more detail on fatal errors" into oc-dr1-dev
am: c8adbea083

Change-Id: I6e183fe47b885c94b632335da5cc6727e972c3e0
9c64f34be9e56c70eb1aa22ea8e7ce28fe1a2970 03-Aug-2017 Andy Hung <hunga@google.com> AudioTrackShared: Log more detail on fatal errors

Test: basic audio use regression test
Bug: 63868320
Change-Id: Ia4caba9a878b308e6fa0c96ec124443cd96f125f
udioTrackShared.cpp
424c4f5b76a6ed11f2c713b42246a7220cfbb240 20-Jul-2017 Mikhail Naganov <mnaganov@google.com> audio effects: Eliminate the cause warning logs about unreleased interface

The cause of frequent "EffectModule 0xxx destructor called with unreleased
interface" messages was due to not releasing the effects when purging
stale effects.

The cause of "Effect handle 0xxx disconnected after thread destruction"
message was due to late binder call for disconnecting already purged
effect handle.

Also improved logging to communicate uuids of the effects causing
these issues.

Bug: 62267926
Test: no aforementioned warnings in the log when opening the Effects
panel in Play Music

Change-Id: I6ec6f60c46dc704226931fb59a641e4cd74c2fd1
udioEffect.cpp
24f8801b22a68204e5ac8187963f07098e9da34a 18-Jul-2017 Andy Hung <hunga@google.com> Merge "AudioTrack: Fix flush problem with integer sanitization"
9584601561ad1d3b4fc1b0035c3f3e5bbd3e499e 17-Jul-2017 Mikhail Naganov <mnaganov@google.com> Append additional owners to projects

This releaves reviewing burden from the frameworks/av owners.
Note that the lists of owners are inherited from the parent
directories thus the people listed in these files are owners
*in addition* to people listed in frameworks/av/OWNERS,
and frameworks/av/{media|services}/OWNERS.

Change-Id: I5e2db1c40cb807b906b2701fe446c874a8d19983
Test: not needed
WNERS
d4ee4db973192806809caab637dc0ef081990754 13-Jul-2017 Andy Hung <hunga@google.com> AudioTrack: Fix flush problem with integer sanitization

And other more rare cases of counter overflow.

Test: Custom flush test
Bug: 63544101
Change-Id: I48ee46966db79ab191ca948d00822e3b6e0cb865
udioTrackShared.cpp
cb4dae216758d9e9a28050f65097f1ce905c03e9 02-Jul-2017 Eric Laurent <elaurent@google.com> aaudio: indicate client UID and PID to audio flinger

Implement correct indication of client UID and PID to audio flinger
for AAudio MMAP streams in both exclusive mode and shared mode.
- Add start/stop client methods on MMAP streams used only when the MMAP
stream is in AAudio service and carries a mix of shared streams.
- Add "In Service'" indication from "client" side to AAudioServiceStreamMMAP
so that the behavior can be adapted accordingly.
- Modify logic on audio flinger side with regard to mmap tracks and
audio HAL stream activity:
- use same audio session for all clients on a same stream to match
audio policy logic to share same direct output stream for clients on same
session. This is also more consistent with current volume and effect
handling as all MMAP clients sharing the same output stream have the
same volume and use case.
- start/stop the HAL when the stream is started/stopped with the initial client
handle (returned when the stream is opened) but do not create a track.
AAudioService implementation will always send an additional start command before
first client starts and a stop command after last client stops,
in both shared and exclusive mode.
- start/stop a track only if the start/stop stream command is received
with a handle different from the initial handle.
- Allow more than one active client from the same UID on a MMAP input in audio policy.

Bug: 62950008
Test: verify playback and capture in mmap mode
Merged-In: I86151bbb637ff172d2fd5f813056eab13a7bcd3c
Change-Id: I86151bbb637ff172d2fd5f813056eab13a7bcd3c
AudioPolicyService.cpp
nclude/media/AudioClient.h
a54f1283fdd9adbd64ecca4e14af56aaa0e8c825 02-Jul-2017 Eric Laurent <elaurent@google.com> aaudio: indicate client UID and PID to audio flinger

Implement correct indication of client UID and PID to audio flinger
for AAudio MMAP streams in both exclusive mode and shared mode.
- Add start/stop client methods on MMAP streams used only when the MMAP
stream is in AAudio service and carries a mix of shared streams.
- Add "In Service'" indication from "client" side to AAudioServiceStreamMMAP
so that the behavior can be adapted accordingly.
- Modify logic on audio flinger side with regard to mmap tracks and
audio HAL stream activity:
- use same audio session for all clients on a same stream to match
audio policy logic to share same direct output stream for clients on same
session. This is also more consistent with current volume and effect
handling as all MMAP clients sharing the same output stream have the
same volume and use case.
- start/stop the HAL when the stream is started/stopped with the initial client
handle (returned when the stream is opened) but do not create a track.
AAudioService implementation will always send an additional start command before
first client starts and a stop command after last client stops,
in both shared and exclusive mode.
- start/stop a track only if the start/stop stream command is received
with a handle different from the initial handle.
- Allow more than one active client from the same UID on a MMAP input in audio policy.

Bug: 62950008
Test: verify playback and capture in mmap mode
Change-Id: I86151bbb637ff172d2fd5f813056eab13a7bcd3c
AudioPolicyService.cpp
nclude/media/AudioClient.h
2b01f009428797ee9154649411a64b522946e966 05-Jul-2017 Andy Hung <hunga@google.com> Replace old audio time conversion macros and functions

Test: Play Movies, Youtube, CTS
Bug: 25569135
Change-Id: Ib6e304f149c381dc7af7f4aa959c3d79d7bdb2aa
udioTrack.cpp
66feec9ff333bbf0b2590f1b321fbf880e1405a4 27-Jun-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Set initial audio device for AudioTrack and AudioRecord" into oc-dr1-dev
325b2997d92c4ba2c116b47e6c3d0d0045c5386b 26-Jun-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Set initial audio device for AudioTrack and AudioRecord"
4a0a5c364867f8ad29848c861824d724f6e168b9 26-Jun-2017 Phil Burk <philburk@google.com> Merge "AudioTrack: explain why FAST mixer denied" into oc-dr1-dev am: f7b279fbd4
am: df4846c344

Change-Id: Ia2b1ac76494ed43242f5f063acd98b28214142df
f7b279fbd419846cdeb2aa55ecdfd74d7fd35b8c 26-Jun-2017 Phil Burk <philburk@google.com> Merge "AudioTrack: explain why FAST mixer denied" into oc-dr1-dev
2ac7694396640821f6723672e25b2372220bf060 23-Jun-2017 Eric Laurent <elaurent@google.com> Set initial audio device for AudioTrack and AudioRecord

Bug: 62090113
Test: run AAudio test and verify a valid device is reported just
after opening playback or capture streams in legacy mode.

Merged-In: Ic8be42e1735690eb00c811ef0cb8b5abb36172d6

Change-Id: Ic8be42e1735690eb00c811ef0cb8b5abb36172d6
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioPolicyService.cpp
nclude/media/AudioRecord.h
nclude/media/AudioSystem.h
nclude/media/AudioTrack.h
nclude/media/IAudioPolicyService.h
9ae8c597d9a0c8cedc4047fc4716d7361453f6ab 23-Jun-2017 Eric Laurent <elaurent@google.com> Set initial audio device for AudioTrack and AudioRecord

Bug: 62090113
Test: run AAudio test and verify a valid device is reported just
after opening playback or capture streams in legacy mode.

Change-Id: Ic8be42e1735690eb00c811ef0cb8b5abb36172d6
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioPolicyService.cpp
nclude/media/AudioRecord.h
nclude/media/AudioSystem.h
nclude/media/AudioTrack.h
nclude/media/IAudioPolicyService.h
7013d1e8eefbc36661f7e52c4eec3aa94920812c 24-Jun-2017 Eric Laurent <elaurent@google.com> Merge "aaudio: implement IPlayer for MMAP playback streams" into oc-dr1-dev am: 06797a2d83
am: 2bccce464c

Change-Id: Iffc49b40a07f7105a72790a2e50a015d28bb6041
c912054e99a1a285b78d5a94e2a50b94de6d35a4 24-Jun-2017 Andy Hung <hunga@google.com> Merge "AudioFlinger: Log Record and MMap thread events"
2c6c3bb76b2fa18ed3536331a1700250bd04c7ce 16-Jun-2017 Andy Hung <hunga@google.com> AudioFlinger: Log Record and MMap thread events

Also update track dump for better grouping and consistency.

Test: adb shell dumpsys media.audio_flinger
Bug: 62700410
Bug: 62701585
Change-Id: I3a6e76eac871cb08ff14d45f7d3992a6e7fba045
udioTrackShared.cpp
adbb75af4d3224194b9b772855db93fae19cf4ce 16-Jun-2017 Phil Burk <philburk@google.com> AudioTrack: explain why FAST mixer denied

Also for AudioRecord

Bug: 62692443
Test: write_sine.cpp
Change-Id: I5b281476af4703798129df66584d813b9a8db8bb
Signed-off-by: Phil Burk <philburk@google.com>
udioRecord.cpp
udioTrack.cpp
nclude/media/AudioRecord.h
nclude/media/AudioTrack.h
a2f296e06bee54cc83130a17f136cab1006f55d5 22-Jun-2017 Eric Laurent <elaurent@google.com> aaudio: implement IPlayer for MMAP playback streams

Make AudioStreamInternal derive from PlayerBase to
provide playback and volume control via IPlayer interface.

Bug: 62027849
Test: verify aaudio playback in MMAP mode and registration of aaudio
players in AudioService when active

Change-Id: Ia0878d46637c0a954d8a6259868a2d3bccf19119
layerBase.cpp
nclude/media/PlayerBase.h
ac4e42982d4537732b30e71c9a00ba0077944984 22-Dec-2016 Jean-Michel Trivi <jmtrivi@google.com> Monitoring of recording: uid of recording session

Pass uid of recording session along with other existing information
in the recording monitoring callback.
Define new structure, record_client_info, to group uid (new),
session id (existing) and source (existing) and simplify
method signatures and marshalling code.

Test: run cts -m CtsMediaTestCases -t android.media.cts.AudioRecordingConfigurationTest#testAudioManagerGetActiveRecordConfigurations
Bug 62579636

Change-Id: I18f66d7e55640a21f31021416a12a3e8094c3690
udioSystem.cpp
AudioPolicyServiceClient.cpp
nclude/media/AudioSystem.h
nclude/media/IAudioPolicyServiceClient.h
ac9cef5f3288df6e65cb4488e2615cc3c07b70d0 10-Jun-2017 Eric Laurent <elaurent@google.com> audio policy: add method to query dB attenuation for a certain volume and device

Bug: 62492975
Test: Check dB value returned to AudioService when stream volume is
changed

Change-Id: I8d0a945e9151d230b93634e4b9e57bab68f44fa8
udioSystem.cpp
AudioPolicyService.cpp
nclude/media/AudioSystem.h
nclude/media/IAudioPolicyService.h
0b86e57b61b46652585008679e48b6961b40122d 08-Jun-2017 Andreas Gampe <agampe@google.com> audio: Fix read of uninitialized memory

Follow-up to fb12e20e426bc6bcff06e39fba45a931cf787040.

Bug: 62425341
Test: m
Test: Device boots, com.android.phone doesn't crash
Change-Id: Ib54c7efae88cb0bff0f92e1cf1bd20a22fdcbdba
udioTrack.cpp
9e8f432a99d78191a42ffc070230d34ebf77102d 03-Jun-2017 Eric Laurent <elaurent@google.com> aaudio: implement native IPLayer for legacy playback streams am: 1d32e9f8e5
am: 88e94d3c1e

Change-Id: Ic94f6da387d73dfcb727f98bfb67913d0927b3d3
88e94d3c1e3644d1c36b9e9c2f161cfe891ce4e1 03-Jun-2017 Eric Laurent <elaurent@google.com> aaudio: implement native IPLayer for legacy playback streams
am: 1d32e9f8e5

Change-Id: I2763b2e5fcfa1f4d234195c40e955aadbcce2fa3
1d32e9f8e5ba52d69c6319270c8a63a995d2c4f2 02-Jun-2017 Eric Laurent <elaurent@google.com> aaudio: implement native IPLayer for legacy playback streams

Make AudioStreamTrack derive from PlayerTrackBase to
provide playback and volume control via IPLayer interface.

Bug: 62027849
Test: verify aaudio playback regressions and registration of aaudio
players in AudioService

Change-Id: I5c04110f1554233eae3f1bc357a64a584d7303d1
layerBase.cpp
nclude/media/PlayerBase.h
3bbd7673937aa3162385b464ed930f889df5c723 02-Jun-2017 Eric Laurent <elaurent@google.com> Merge "add native IPlayer interface implementation" into oc-dev am: a9034e0e53
am: e5ed4fc299

Change-Id: I6da9cbf497768e111cc24cfcdaf8b843c8dbe274
e5ed4fc299dce4783cdd015595f733a51da92c19 02-Jun-2017 Eric Laurent <elaurent@google.com> Merge "add native IPlayer interface implementation" into oc-dev
am: a9034e0e53

Change-Id: I83e86118e969a3d305850114a879b73cb9caba21
b5323222bd524876dda1ebf89694f186278e2229 01-Jun-2017 Eric Laurent <elaurent@google.com> add native IPlayer interface implementation

Generalized the IPlayer implementation done for OpenSL ES
so that it can be used by other native audio players
Created two classes:
- PlayerBase implementing the interfacin native AudioManager and
IPlayer methods
- TrackPlayerBase, a derived class specialized for AudioTrack.

Bug: 62027849
Test: verify regressions with OpenSL ES buffer queue player

Change-Id: If5ad21a3c1a243fba0b312001c5034102e6d6672
ndroid.bp
layerBase.cpp
rackPlayerBase.cpp
nclude/media/PlayerBase.h
nclude/media/TrackPlayerBase.h
5573544e1052e3cff3f98482a6258a3cba47372a 01-Jun-2017 Andy Hung <hunga@google.com> Merge "audio: Output latency update in Audio Track"
fb12e20e426bc6bcff06e39fba45a931cf787040 06-Apr-2017 Haynes Mathew George <hgeorge@codeaurora.org> audio: Output latency update in Audio Track

AudioTrack needs to query latency from the output descriptor each
time it uses mAfLatency to calculate timestamp or return the track
latency. Until now, the output descriptor latency was queried and
stored when a track is created. On a device switch, IO descriptors
table saved in AudioSystem is updated to reflected the latest
latency values. Unless a device switch lead to a track teardown,
AudioTrack will be unaware of the latest latency value. Therefore
explicitly check the latest mAfLatency value on each getTimeStamp
call.

Test: Podkicker 2.2x, Photos 240fps and BT
Bug: 35075600
authored-by: Aniket Kumar Lata <alata@codeaurora.org>
Change-Id: I06282182364703574a7d66d2b5cd1301679dfade
udioTrack.cpp
nclude/media/AudioTrack.h
ef44fb4115270883da829fea91174c8cc003b777 30-May-2017 Eric Laurent <elaurent@google.com> aaudio: fix device switch detection in legacy path am: fb00fc77f5
am: 0bbea62ed4

Change-Id: I80dfc949c206c1572f867f3ffedb6ff556a7b8f2
0bbea62ed44e8d5cc2419b2861ea0e58d81a4917 30-May-2017 Eric Laurent <elaurent@google.com> aaudio: fix device switch detection in legacy path
am: fb00fc77f5

Change-Id: Ie3c55199883c614e02f3fb1a038128f435e9cf29
fb00fc77f59ed5ebec4d38bac666e6521b6c1de0 26-May-2017 Eric Laurent <elaurent@google.com> aaudio: fix device switch detection in legacy path

Implement device switch detection on legacy path (AudioTrack and
AudioRecord) based on audio routing callbacks forcing the stream state
to disconnected.

Bug: 33355262
Bug: 62090113
Test: tested with write_sine and input_monitor command line tools.
Change-Id: I9e0421fee233964b1bf318acb640569196a00f13
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
6eba55b9663eb0bf50991ca5264ee94588557201 25-May-2017 Phil Burk <philburk@google.com> Merge "aaudio: allow AudioRecord to use FAST mode for TRANSFER_SYNC" into oc-dev am: cf423d268a
am: e209c532b3

Change-Id: Ia8c8877b69d9343f73abca99e795c3f488f6c515
e209c532b3fa3fc463d6df5d0af5f6811152f248 25-May-2017 Phil Burk <philburk@google.com> Merge "aaudio: allow AudioRecord to use FAST mode for TRANSFER_SYNC" into oc-dev
am: cf423d268a

Change-Id: Iaa5a0f0bfda652e3c2a02fc73b0c65b43228e446
34d606c66ffcd536daccf415132facd3cbfe1a8f 25-May-2017 Glenn Kasten <gkasten@google.com> Merge "Add TODOs for checking return value of wait"
382d11ac489a917d3d009c3d05bc960f4af58176 23-May-2017 Phil Burk <philburk@google.com> aaudio: allow AudioRecord to use FAST mode for TRANSFER_SYNC

Bug: 34093052
Test: loopback.cpp
Change-Id: I3bf4ee6f58fad017a038edfd50475d5dd5a4fca5
Signed-off-by: Phil Burk <philburk@google.com>
udioRecord.cpp
47d5517331f41f8583f4e47752132de96e14a96f 23-May-2017 Glenn Kasten <gkasten@google.com> Add comments explaining about SCHED_FIFO

Test: builds OK
Change-Id: I7fa39defb081c27eb32abb241c0aa2a210744954
udioTrack.cpp
75f79038715b4b1cf28e0457abfa84ccd17bb57e 23-May-2017 Glenn Kasten <gkasten@google.com> Add TODOs for checking return value of wait

Test: builds OK
Change-Id: I750b73de54deeccbae846189fdf385e636d9e4cd
udioRecord.cpp
udioTrack.cpp
2f35206b77dd7d8a8c761e0a81ea327c10787036 11-May-2017 Andy Hung <hunga@google.com> Merge "VolumeShaper: Fixes for updated Cts test" into oc-dev am: 2d12b8e367
am: d906ad023d

Change-Id: I27856718a4914e396a7c387da7b4f4e4b7c245e6
d906ad023d3608925c4afda5c3b70a24667db758 11-May-2017 Andy Hung <hunga@google.com> Merge "VolumeShaper: Fixes for updated Cts test" into oc-dev
am: 2d12b8e367

Change-Id: Ic4e567226fa649c425199e9068a3dac29809c980
f370264dfa5237524a3535f5242a0c68cbbb13eb 06-May-2017 Andy Hung <hunga@google.com> VolumeShaper: Fixes for updated Cts test

1) Limit number of VolumeShapers that can be created.
a) 16 system VolumeShapers
b) 16 application/client VolumeShapers
2) Return proper volume before VolumeShaper is started.
3) Consistent xOffset definition used internally:
a) this is now always the position on the volumeshaper curve
which can go backwards if in REVERSE.
b) normalized time is always forward going and is scaled
to 0.f and 1.f depending on progress relative to
the curve's duration.
4) Fix replace method.
5) Add comments.

Test: Use updated CTS VolumeShaperTest
Bug: 37536598
Change-Id: I837ab2a481adc0abbd3f1338bfe2cb79831b11fa
udioTrack.cpp
nclude/media/AudioTrack.h
b71f4cbe9729faa5aafe050278df72df9e0e28dc 03-May-2017 Colin Cross <ccross@android.com> Mark functions in headers with static inline

Functions in headers that are not static inline will cause duplicate
symbol errors when linking if the header is ever included twice
into different compilation units of the same module. It also causes
-Wunused-function warnings if they are not used in the cpp file, which
were hidden by the use of -isystem frameworks/av/include.

Bug: 31751828
Test: m -j checkbuild
Change-Id: I36f258bb4f5c3df54e874280beab344e63c519d5
(cherry picked from commit 413adafb04005fc5cdfdcbb3fe1ee4cfee9765b1)
nclude/media/AudioPolicyHelper.h
58901127cfd84cbcc11fadd1ca2d3b4b9b9cbcdd 03-May-2017 Christopher Ferris <cferris@google.com> Merge "Remove reference to libc_logging." am: 87428f1e82 am: 46b2135bfb am: ed566c401f
am: e0ad778bfe

Change-Id: Ie6cc701a3f8e9c6753378651443642c726f53fa9
e0ad778bfe63308a37f5b5745d92f0d7d165660a 03-May-2017 Christopher Ferris <cferris@google.com> Merge "Remove reference to libc_logging." am: 87428f1e82 am: 46b2135bfb
am: ed566c401f

Change-Id: Ia3390de121f6146e81c5bd61d9b8327e7d810a7c
413adafb04005fc5cdfdcbb3fe1ee4cfee9765b1 03-May-2017 Colin Cross <ccross@android.com> Mark functions in headers with static inline

Functions in headers that are not static inline will cause duplicate
symbol errors when linking if the header is ever included twice
into different compilation units of the same module. It also causes
-Wunused-function warnings if they are not used in the cpp file, which
were hidden by the use of -isystem frameworks/av/include.

Bug: 31751828
Test: m -j checkbuild
Change-Id: I36f258bb4f5c3df54e874280beab344e63c519d5
nclude/media/AudioPolicyHelper.h
5a00c54fac03ab2f3ee3eb79b2837832eeef3186 25-Apr-2017 Christopher Ferris <cferris@google.com> Remove reference to libc_logging.

The libc_malloc_debug_backtrace includes the log functions so there
is no need to also add the libc log library.

Test: Built and booted a bullhead device.
Change-Id: I00457ad0c321b385e68232ee87575588a8188db7
ndroid.bp
296ee17ce39af4fa3173bbf21fbc719db4b8f329 02-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "ALOGW when failing to open audio track because of playback rate"
084ad5a4e0af7f816e3279359ed49ae18f8c7d74 27-Apr-2017 Glenn Kasten <gkasten@google.com> Merge "Use correct binder opcode names"
01e0ee177ff9f9e66b606c440fffeeb1509634d9 27-Apr-2017 Andy Hung <hunga@google.com> Merge "VolumeShaper: Improve restore" into oc-dev am: abbb67724e
am: 7dc9e283f1

Change-Id: If6df971ee7b860544e56ea90445fdfe650856b2f
39399b6b08b4e9fd7eae50e58e93b07216ad697f 22-Apr-2017 Andy Hung <hunga@google.com> VolumeShaper: Improve restore

Consider whether VolumeShaper has been started or not when
restoring (position). If the VolumeShaper hasn't been started
we restore in that state. If it has been started already,
we advance to the end assuming the duration has been played out.

Test: CTS and headset / kill audioserver
Bug: 37536598
Change-Id: I4b55dca6f6a859563fd20bad4c8f67d2c92321c0
udioTrack.cpp
4e728d4bbc683a50096f052a31c8eb5cbb1e100e 07-Apr-2017 Kevin Rocard <krocard@google.com> ALOGW when failing to open audio track because of playback rate

This will help debuging errors linked the associated bug.

Test: compile

Bug: 36509278
Change-Id: I3034a8a40d20cee15dc394baf0743be3d996a155
Signed-off-by: Kevin Rocard <krocard@google.com>
udioTrack.cpp
9a952e5f95b7d3f013932abe174378789b3f080f 18-Apr-2017 Steven Moreland <smoreland@google.com> Merge "Add libaudioclient_headers" into oc-dev am: 11c0013ecd
am: 71f41e219a

Change-Id: I9ad685ceb29f7c964777853207be263a8e300066
25a9e5561a7f14e79b04f713a515a9464b9ea077 17-Apr-2017 Steven Moreland <smoreland@google.com> Add libaudioclient_headers

Test: works with BOARD_VNDK_VERSION := current
Bug: 33241851
Change-Id: I31cf7e7cd89fe6e71d4e52f7682990146a12b2fb
ndroid.bp
AudioFlinger.cpp
nclude/AudioBufferProvider.h
nclude/AudioEffect.h
nclude/AudioIoDescriptor.h
nclude/AudioMixer.h
nclude/AudioParameter.h
nclude/AudioPolicy.h
nclude/AudioPolicyHelper.h
nclude/AudioRecord.h
nclude/AudioSystem.h
nclude/AudioTimestamp.h
nclude/AudioTrack.h
nclude/IAudioFlinger.h
nclude/IAudioFlingerClient.h
nclude/IAudioPolicyService.h
nclude/IAudioPolicyServiceClient.h
nclude/IAudioRecord.h
nclude/IAudioTrack.h
nclude/IEffect.h
nclude/IEffectClient.h
nclude/ToneGenerator.h
nclude/media/AudioBufferProvider.h
nclude/media/AudioEffect.h
nclude/media/AudioIoDescriptor.h
nclude/media/AudioMixer.h
nclude/media/AudioParameter.h
nclude/media/AudioPolicy.h
nclude/media/AudioPolicyHelper.h
nclude/media/AudioRecord.h
nclude/media/AudioSystem.h
nclude/media/AudioTimestamp.h
nclude/media/AudioTrack.h
nclude/media/IAudioFlinger.h
nclude/media/IAudioFlingerClient.h
nclude/media/IAudioPolicyService.h
nclude/media/IAudioPolicyServiceClient.h
nclude/media/IAudioRecord.h
nclude/media/IAudioTrack.h
nclude/media/IEffect.h
nclude/media/IEffectClient.h
nclude/media/ToneGenerator.h
9eae036a9822f9ba7d13b7d623310a15e23ba5f0 19-Apr-2016 Glenn Kasten <gkasten@google.com> Use correct binder opcode names

Make the binder opcode names match the method names

Test: builds OK, this does not change behavior
Change-Id: I7c56ddd1efabc81b5d0ab2d1979ba1001ec76994
AudioFlinger.cpp
bc942724f95c6e30e640e33c2b35157367714c1c 13-Apr-2017 Phil Burk <philburk@google.com> Merge "AudioTrack and AudioRecord: getNotificationPeriodInFrames()" into oc-dev
b588402d48c9634fa72e7e13ca6d6f2a0766cb98 28-Mar-2017 Phil Burk <philburk@google.com> AudioTrack and AudioRecord: getNotificationPeriodInFrames()

This is needed for AAudioStream_getFramesPerBurst(),
which is needed for callbacks to work correctly.

Bug: 34716038
Bug: 36489240
Test: CTS test_aaudio.cpp
Change-Id: I0e3f3f18a22bf6da8c288f0d2caec0bff0153f2f
Signed-off-by: Phil Burk <philburk@google.com>
nclude/AudioRecord.h
nclude/AudioTrack.h
3ab8d66ad1c47a5ee1f87ad9f5ee2666cf89b32d 03-Apr-2017 Glenn Kasten <gkasten@google.com> Rename symbols to be more consistent

Bug: 37153050
Test: builds OK
Change-Id: I7e55a03ca8e1f22901db6c8f6f2ad32e4c95a0cd
nclude/AudioMixer.h
6d8018f0b7be9deec6b0acab10a0dca6e91d0fb8 21-Feb-2017 Glenn Kasten <gkasten@google.com> Improve audio logs and dumpsys media.audio_flinger

Include mFrameCount in shared memory corrupt error log.

Fix typo in log for primary audio interface.

Include the new server frame count in logs for fast tracks.

Always log when fast is successful for output tracks, as it helpful
(was already there for input).

Cleanup dumpsys for threads.

Bug: 37153050
Test: builds OK, and logs contain more information
Change-Id: I2b5b4d700e8eb7c261a3125fb03ddc00bf08537e
(cherry picked from commit 1bfe09a0b1755a79abd32b41c0dd433b88fc260c)
udioRecord.cpp
udioTrack.cpp
udioTrackShared.cpp
1bfe09a0b1755a79abd32b41c0dd433b88fc260c 21-Feb-2017 Glenn Kasten <gkasten@google.com> Improve audio logs and dumpsys media.audio_flinger

Include mFrameCount in shared memory corrupt error log.

Fix typo in log for primary audio interface.

Include the new server frame count in logs for fast tracks.

Always log when fast is successful for output tracks, as it helpful
(was already there for input).

Cleanup dumpsys for threads.

Test: builds OK, and logs contain more information
Change-Id: I2b5b4d700e8eb7c261a3125fb03ddc00bf08537e
udioRecord.cpp
udioTrack.cpp
udioTrackShared.cpp
3475822eaaaea89d8a52b7b49c9f753814c7d3e7 28-Mar-2017 Phil Burk <philburk@google.com> AudioTrack and AudioRecord: getNotificationPeriodInFrames()

This is needed for AAudioStream_getFramesPerBurst()

Bug: 34716038
Test: CTS test_aaudio.cpp
Change-Id: I0e3f3f18a22bf6da8c288f0d2caec0bff0153f2f
Signed-off-by: Phil Burk <philburk@google.com>
nclude/AudioRecord.h
nclude/AudioTrack.h
4a71e75dc56415cda4cf33ea92d4efd914a44541 15-Mar-2017 Glenn Kasten <gkasten@google.com> Merge "ToneGenerator: support output sample rates beyond 65535 Hz"
886deb506ea2938cfec40fc0dd2bff072850386b 13-Mar-2017 Glenn Kasten <gkasten@google.com> Merge "Re-format to decrease the maximum line length of files to 100 characters"
d3bb645f0b7f567b033b8664499d685f8ec10628 06-Dec-2016 Glenn Kasten <gkasten@google.com> Re-format to decrease the maximum line length of files to 100 characters

Test: compiles OK
Change-Id: Ibe663032cd390ed2bcca6dc921d47732e6e15e21
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
b53dae6ea693561cd5e3dae1ec112949cb079b2c 17-Jan-2017 Glenn Kasten <gkasten@google.com> ToneGenerator: support output sample rates beyond 65535 Hz

Changed type of ToneGenerator::WaveGenerator constructor parameter
samplingRate from unsigned short to uint32_t to permit output
sample rates such as 96000 Hz.

Bug: 33969539
Test: dialer tones work when output sink operates at 96000 Hz
Change-Id: I5551409c467a4fd98ea4d5c9703b120a526a443e
oneGenerator.cpp
nclude/ToneGenerator.h
dcdfaecc1fa630a799e1fdb508a9b92da55abc36 14-Feb-2017 Nicolas Roulet <nicoroulet@google.com> NBLog periodic merging thread

Bug: 35468674
Test: no change in functionality, everything works as before
Change-Id: Id2cea243bc15767ca6803c9505bf23a18411500e
AudioFlinger.cpp
4ef88d7106c01f81109ee163cb6789073d80c6ae 22-Feb-2017 Andy Hung <hunga@google.com> VolumeShaper: Add AudioTrack restore

MediaPlayer VolumeShaper can now be set before start().

Test: CTS and Ducking
Bug: 31015569
Change-Id: Idf63c167e164161b200e2467fbeb9409b3097dbe
udioTrack.cpp
nclude/AudioTrack.h
e2b43843fd12783188edd2c54188ea8d26864788 02-Feb-2017 Vijay Venkatraman <vijaykv@google.com> Moved headers from include/ to appropriate libs

include/camera -> camera/include/camera
include/media/audiohal -> media/libaudiohal/include
include/media/AudioResampler*.h -> media/libaudioprocessing/include
include/media/Audio*.h,IAudio*.h,IEffect*.h,ToneGenerator.h -> media/libaudioclient/include
include/media/EffectsFactoryApi.h -> media/libeffects/include
include/media/stagefright -> media/libstagefright/include
include/media/nbaio -> media/libnbaio/include
include/media/<rest of files> -> media/libmedia/include
include/cpustats -> media/libcpustats/include/cpustats

Added symlinks from old location to new ones

Bug: 33241851

Test: VNDK linked modules will need to add explicit lib dep.
All other modules should compile the same

Change-Id: I0ecf754a2132640ae781a3cc31428fb8c0bd1669
ndroid.bp
nclude/AudioBufferProvider.h
nclude/AudioEffect.h
nclude/AudioIoDescriptor.h
nclude/AudioMixer.h
nclude/AudioParameter.h
nclude/AudioPolicy.h
nclude/AudioPolicyHelper.h
nclude/AudioRecord.h
nclude/AudioSystem.h
nclude/AudioTimestamp.h
nclude/AudioTrack.h
nclude/IAudioFlinger.h
nclude/IAudioFlingerClient.h
nclude/IAudioPolicyService.h
nclude/IAudioPolicyServiceClient.h
nclude/IAudioRecord.h
nclude/IAudioTrack.h
nclude/IEffect.h
nclude/IEffectClient.h
nclude/ToneGenerator.h
9fc8b5cd4a64ef07e84c69112461324d5c13a0b0 24-Jan-2017 Andy Hung <hunga@google.com> VolumeShaper: Initial implementation

The VolumeShaper is used to apply a volume
envelope to an AudioTrack or a MediaPlayer.

Test: CTS
Bug: 30920125
Bug: 31015569
Change-Id: I42e2f13bd6879299dc780e60d143c2d465483a44
udioTrack.cpp
AudioTrack.cpp
8345f77901ff4715a450c025807eac05aefda761 31-Jan-2017 Andy Hung <hunga@google.com> DO NOT MERGE Revert "Log audio information to ensure complete delivery"
am: 1da5859d05

Change-Id: Ie5b427db9af0fdb8427e0985450328f3a2977013
fff204c192f7e16c635a79f6a85786afb8522a3d 13-Jan-2017 Andy Hung <hunga@google.com> AudioTrack: Control deep buffer from AudioAttributes

Test: AudioTrack CTS test, Play Movies
Bug: 30687201
Change-Id: I6a46a05dbf3fd61c8d47dade5b4baee69b923195
udioTrack.cpp
d7c5ec857930496bb8a1045dc8b87b2fdd99899c 11-Jan-2017 Pavlin Radoslavov <pavlin@google.com> Merge "Add missing nullptr checks for data.readCString() strings" am: ce961d374f am: 238c48e42e am: 877f779979
am: 4b058e7e5d

Change-Id: Idc3298b161380e9ace8b7fcceb4339b0805a3123
4b058e7e5d58fb1bc6ba82eba94f7664e5b85706 11-Jan-2017 Pavlin Radoslavov <pavlin@google.com> Merge "Add missing nullptr checks for data.readCString() strings" am: ce961d374f am: 238c48e42e
am: 877f779979

Change-Id: Ic6e96b9ff3ecc609c40f8c5d5367a789b3732b7e
877f77997987212ae0fbfecb24b35c03a0573006 11-Jan-2017 Pavlin Radoslavov <pavlin@google.com> Merge "Add missing nullptr checks for data.readCString() strings" am: ce961d374f
am: 238c48e42e

Change-Id: I2e9cb8ec6752506cc5445aee3d38ae92e4f5e514
c694ff449bef4ca1e45a6506f34e66c613757311 10-Jan-2017 Pavlin Radoslavov <pavlin@google.com> Add missing nullptr checks for data.readCString() strings

Protect the Audio Policy Manager by adding extra checks
for data.readCString() strings when parsing / decoding
a Binder transaction.

Also:
* Moved audio_is_output_device() / audio_is_input_device() checks
inside handleDeviceConfigChange()
from the AudioPolicyInterface to the AudioPolicyManager
* Removed similar redundant checks inside
AudioPolicyService::setDeviceConnectionState()

Test: code compilation
Change-Id: Ib32a28ba2669b73aaf32b31bb18f41c8dd7d2605
AudioPolicyService.cpp
c02c861e7377ab63d3d59b6220afafd625f53aaf 10-Jan-2017 Jack He <siyuanh@google.com> Merge "Convert Android.mk in libaudioclient to Android.bp" am: 0da9804f12 am: 05dfbecf27 am: 19031e678e
am: cb680c9cc4

Change-Id: If508ad957671ed199bd25fba58cd9af2a261fc3a
cb680c9cc4009261dd2fbe40a1a585737746589d 10-Jan-2017 Jack He <siyuanh@google.com> Merge "Convert Android.mk in libaudioclient to Android.bp" am: 0da9804f12 am: 05dfbecf27
am: 19031e678e

Change-Id: I528e03e58d8a34316cf8270d3bb2b5b5d828eee1
19031e678e977a25490be092dc4f7005e396a9de 10-Jan-2017 Jack He <siyuanh@google.com> Merge "Convert Android.mk in libaudioclient to Android.bp" am: 0da9804f12
am: 05dfbecf27

Change-Id: I855fe9d7f9d6302eda5e5f3d747a10b2d3b3b193
d92d34e86cca348097cea2afa3ddb009572b9303 09-Dec-2016 Jack He <siyuanh@google.com> Convert Android.mk in libaudioclient to Android.bp

* Since system/bt depends on this library, it needs to be converted to
Android.bp before the conversion in system/bt can be continued.
* Majority of work is done by androidmk Android.mk > Android.bp
* Fixed sanitize arguements
* Removed LOCAL_EXPORT_C_INCLUDE_DIRS as Android.bp only supports
exporting sub-directories of current Android.bp file
* Removed frameworks/av/media/libmedia/aidl include path as it no longer
exists and Android.mk failed to check that
* Removed include path for audio-utils as it is being automatically
included when we link against libaudioutils
* Android.mk file must be deleted as a library of the same name can only
be defined once in either Android.bp or Android.mk
* A library defined in Android.bp can be used by either Android.bp or
Android.mk files. However, a library defined in Android.mk cannot be
used by Android.bp file. Therefore, for system/bt to link against this
library in the Android.bp, this library must be converted first

Bug: 32958753
Test: Code compilation, no user visible effect

Change-Id: I2ae87a1151ed4235122c7774096c2dbff8b1fc62
ndroid.bp
ndroid.mk
5fd7ccaeba88da7e170f067bfd754b3f64ff5566 29-Dec-2016 Pavlin Radoslavov <pavlin@google.com> Merge "Add a mechanism for handling audio device configuration change" am: 549e431947 am: a1b496ac35 am: fcc1132010
am: c6fe843463

Change-Id: I7812e3e4426e526b886c1a414ac8ddec7649291e
c6fe843463abc965f3082738c8812506cf5ba232 29-Dec-2016 Pavlin Radoslavov <pavlin@google.com> Merge "Add a mechanism for handling audio device configuration change" am: 549e431947 am: a1b496ac35
am: fcc1132010

Change-Id: I4c25c229b0bb8a385a231c7a9f444b923bb46456
fcc113201018703727a0d6b17dd165efce00db1a 29-Dec-2016 Pavlin Radoslavov <pavlin@google.com> Merge "Add a mechanism for handling audio device configuration change" am: 549e431947
am: a1b496ac35

Change-Id: Ie8871fad611dc16d7cd08a85e4cd748cf3c4650d
f862bc6a7a35054e38cb50fa16ae7a07f683ee01 27-Dec-2016 Pavlin Radoslavov <pavlin@google.com> Add a mechanism for handling audio device configuration change

* Added new call handleDeviceConfigChange() to the Media Framework.
That call can be used when there are device configuration changes
(e.g., Bluetooth A2DP codec configuration has changed).
* Added new method AudioPolicyManager::handleDeviceConfigChange().
That method toggles the UNAVAILABLE/AVAILABLE connection state of the
device, so it can be reconfigured as appropriate - e.g., the audio
feeding parameters can be updated.
* Fix ALOGVV compilation errors when extra logging is enabled.

Test: A2DP streaming to headsets
Bug: 30958229
Change-Id: I388abbbb3ec4d1a003b441cb0c77e00d80cad668
udioSystem.cpp
AudioPolicyService.cpp
0ca38308c75568d571016c0e24fb8246bbf239b6 01-Nov-2016 Kiran Kumar Krishna <kiran@motorola.com> AudioRecord: fix AudioRecordThread crash upon exit

In case of error during openRecord_l(), there is a possibility
that a newly created AudioRecordThread is resumed by requestExit()
just after entering the Thread class _threadLoop() but before
entering the class threadLoop(). In this case, processAudioBuffer()
is executed once with mCblk == 0 and we assert.

Test: test case at bug
Bug: 29993798
Change-Id: I15d4f138218f6f01a020c4fc568a5b4831cb92a7
udioRecord.cpp
6a308b02f138e358fb239ee2df5d54dd988f34fd 16-Dec-2016 Eric Laurent <elaurent@google.com> Merge "Add unique audio port IDs to AudioTrack and AudioRecord"
20b9ef0b55c9150ae11057ab997ae61be2d496ef 05-Dec-2016 Eric Laurent <elaurent@google.com> Add unique audio port IDs to AudioTrack and AudioRecord

This will allow to track activity at the track level instead of
at audio session level as only possible with current implementation.

AudioTracks and AudioRecords will receive a unique audio port ID the
first time they register to audio policy with
getOutputForAttr()/getInputForAttr() and keep this ID for their
lifetime.

This CL is the first partial change and just updates the
audio policy and audio flinger APIs used at track creation time.

Test: basic regression test of audio playback and capture use cases

Change-Id: I8d612e67738e120494f61e3f7c60bfd0b2c6a329
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioPolicyService.cpp
b643627a557e44b9ab5879cf71e162af2d514ce3 08-Dec-2016 Eric Laurent <elaurent@google.com> fix client pid for effects applied by audio policy

Test: Hangouts call, Play Music with and w/o effects

Change-Id: Ia9b20f94be667dd92e0497f8ef9c0dc0e95afe28
udioEffect.cpp
AudioFlinger.cpp
78cbdfa7b68615cc61573f39a87563d891aed652 07-Dec-2016 Andy Hung <hunga@google.com> Log audio information to ensure complete delivery
am: 1f82f9569d

Change-Id: I8c3045b0331a97b98168897d03ec1dc55235a59e
abf6ff26df459d991cdbc2dca3b78046c97469db 03-Dec-2016 Andy Hung <hunga@google.com> Merge "Log audio information to ensure complete delivery"
2148bf0e79c436b8764b9edc4c8f2730cce98a32 29-Nov-2016 Andy Hung <hunga@google.com> Log audio information to ensure complete delivery

Test: Audio playback
Bug: 30572472
Change-Id: Ibad6fc202692cd3480ae726627252afdead083f3
udioTrack.cpp
c64e124bca8b7813ecea19d38452dd55fee4082f 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a am: 3e8ab60b7f am: 9161586309 am: ad29b47d91 am: 8b9b199891 am: 72729c449d am: 97bb7fe084 am: 3d6aada999 am: ffe82a3b4a am: ec601622f8 am: f50635bdc4 am: f1e829a54e am: a2e95f5c9b am: c6239b0d4d
am: cbc7183fbb

Change-Id: I7a13718ab24d1c4c9c64d83e148031af046921e1
c6239b0d4dfa730c122f2de214dfd2e62f7f8eea 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a am: 3e8ab60b7f am: 9161586309 am: ad29b47d91 am: 8b9b199891 am: 72729c449d am: 97bb7fe084 am: 3d6aada999 am: ffe82a3b4a am: ec601622f8 am: f50635bdc4 am: f1e829a54e
am: a2e95f5c9b

Change-Id: Ic25053a111913dfd4490633b9f0eff1e7fe1d359
41cbae72e4e223c15ba2d85b3c27ed31d1bf5f86 12-Nov-2016 Glenn Kasten <gkasten@google.com> Merge "AudioRecord: fix AudioRecordThread crash upon exit"
e813ef9388e9f0b821c0a434521f0e194288c8ad 01-Nov-2016 Kiran Kumar Krishna <kiran@motorola.com> AudioRecord: fix AudioRecordThread crash upon exit

In case of error during openRecord_l(), there is a possibility
that a newly created AudioRecordThread is resumed by requestExit()
just after entering the Thread class _threadLoop() but before
entering the class threadLoop(). In this case, processAudioBuffer()
is executed once with mCblk == 0 and we assert.

Test: test case at bug
Bug: 29993798
Change-Id: I15d4f138218f6f01a020c4fc568a5b4831cb92a7
udioRecord.cpp
1f12a8ad958344c50733b948628ffa06db9c5bc6 08-Nov-2016 Andy Hung <hunga@google.com> Audio: Use uid_t for uids

Test: Power manager shows correct uids for audio
Bug: 32713790
Change-Id: If5337e17283268f74dc0f00cc66ece9153d680ef
udioRecord.cpp
udioTrack.cpp
4ea929819e23ecd388e1edce25a10631ee53e9e3 07-Nov-2016 Marco Nelissen <marcone@google.com> Split libmedia into libmedia and libaudioclient
am: 795a2a7554

Change-Id: Ic08eddc5650d3f5d344ebcf93ad98ae5bb236c8c
795a2a75542d25eefa56bebc388340ee15fdff5c 02-Nov-2016 Marco Nelissen <marcone@google.com> Split libmedia into libmedia and libaudioclient

This makes it so audioserver doesn't need to link against the entire libmedia,
which has dependencies on camera, ICU, OpenGL and other things that aren't
needed for audio.

Test: build/boot

Change-Id: I99ba1a3dc3b33ca9b3abd98e7519dbf228ee62af
ndroid.mk
udioEffect.cpp
udioPolicy.cpp
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
udioTrackShared.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
AudioPolicyService.cpp
AudioPolicyServiceClient.cpp
AudioRecord.cpp
AudioTrack.cpp
Effect.cpp
EffectClient.cpp
oneGenerator.cpp
538ec5e04f389cba637b030757be317fcb8677a8 02-Nov-2016 Marco Nelissen <marcone@google.com> Split libmedia into libmedia and libaudioclient

This makes it so audioserver doesn't need to link against the entire libmedia,
which has dependencies on camera, ICU, OpenGL and other things that aren't
needed for audio.

Test: build/boot

Change-Id: I99ba1a3dc3b33ca9b3abd98e7519dbf228ee62af
ndroid.mk
udioEffect.cpp
udioPolicy.cpp
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
udioTrackShared.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
AudioPolicyService.cpp
AudioPolicyServiceClient.cpp
AudioRecord.cpp
AudioTrack.cpp
Effect.cpp
EffectClient.cpp
oneGenerator.cpp