History log of /frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6aa929c9296180abac526f594137f18c38620c62 19-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "audio policy manager: do not reapply same forced usage" into oc-dev
8dc87a60e69f462e0382d025c335e45699025b48 17-May-2017 Eric Laurent <elaurent@google.com> audio policy manager: do not reapply same forced usage

Skip systematic audio path and volume reevaluation when the new
forced configuration for the selected usage is the same as current one.

Bug: 38276985
Test: try repro steps in b/38276985. Check regressions with audio routing for music
and calls over speaker, headset and Bluetooth

Test: connect BT A2DP and launch CNN
Change-Id: Id43a5270c666065e099d02d9e52de86b20cb8039
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
169753cd5f71ba92560e993bb7cb461d2f094272 06-Mar-2017 Kevin Rocard <krocard@google.com> audiopolicy: Two session can not offload concurrently

Previously the patch I98a8913d6faf5092a1e43a0bdd0f1ce1482221a9
forbade two tracks from different application to be offloaded
concurrently.

Concurrent offload is only needed for back to back playback...
Detect this use case by checking the session id instead of the
PID.

Test: call & play music & assistant
Test: run new CTS testConcurentPlayAudio
Bug: 35841692
Change-Id: I2c09c54adedf12644205bef115f1a2e16b05de91
Signed-off-by: Kevin Rocard <krocard@google.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
e301410b8495a3702e21019e92d44ade2a3f81d1 03-May-2017 Eric Laurent <elaurent@google.com> audio policy: always provide a valid device address when opening a stream

Treble audio HAL mandates that a valid device address is passed when
opening an output or input stream and teh device type requires and
address.

Bug: 37905534
Test: USB capture at various sampling rates. Audio playback and capture regression
Change-Id: I12f2128120b1bbe8530e8c2428e3e2cba1ba1535
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
5c1b4f3a1d42f1a9eeecb20881c28d48edec4f90 19-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "audio policy: disable concurrent capture" into oc-dev
36829f97c0c547d9c6c918e248071cc616818616 08-Apr-2017 Eric Laurent <elaurent@google.com> audio policy: fix global effect attachment

Fix logic for global music effects (e.g Visualizer) attachement to
output streams.
- Consider only outputs with active music sessions first and then all
outputs
- Reevaluate effect attachment systematically on music playback start/stop
and when outputs are opened/closed
- Use the same logic every where.

Bug: 33397379
Test: CTS: AudioEffectTest, VisualizerTest, EqualizerTest, BassBoostTest
Manual test with music playback with and without Effects in
offload and non offload mode on speaker, headset, BT A2DP.

Change-Id: Iabc23bc8a24f36b68942b7f32749c535781497b4
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
74708e7c4622d65a7798d5fa9347c55583d347fe 08-Apr-2017 Eric Laurent <elaurent@google.com> audio policy: disable concurrent capture

Disable concurrent capture until the corresponding UI is available.
Restore preemption for HOTWORD audio source.

Bug:36891272
Test: capture regression tests, run CTS AudioRecordTest, run GTS SearchHostTest
Change-Id: I1b6c32c2a76ae0e004e14e46fedd596a8844c0d4
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
904d632a24db8f94de83e44f7179d1c0af022b03 18-Mar-2017 Eric Laurent <elaurent@google.com> Add support for USB headset device

Add missing rules for USB headset devices in routing, volume and effects
management.

Test: playback and catpure regression tests.
Change-Id: I42cd157f483deba2371a05d332cd11dceb2b2fa3
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
05d19b08f3affa6fa8407e779f67e7ad1c1ca84f 01-Mar-2017 Mathias Agopian <mathias@google.com> fallout of cleaning-up libutils includes

Test: run & compile
Bug: n/a
Change-Id: I63585ed5a764b9ce7af2187b79ca0c83e683fd7f
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
0d4a6aff271586161a1fcd273572a00d2e01fe80 17-Feb-2017 Jaekyun Seok <jaekyun@google.com> Treblize audio policy xml config file location

Treblization requires to locate partner-specific configs in its own
partition. So the audio policy xml config file could be located in
/odm/etc or /vendor/etc.
This CL is to support those locations for the config.

Test: building succeeded and tested on sailfish.
Bug: 35369237
Change-Id: Ie59db630456f7690bbeca08017bea8b174651394
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
555530ab903504ad3586bc24cd8a4f200f5c39ae 08-Feb-2017 Eric Laurent <elaurent@google.com> audio: several concurrent capture fixes

Make sure AudioRecord clients are invalidated synchronously
when closing an input stream instead of when the capture thread
exits.

Fix AudioPolicyManager::getInputForDevice() logic to make sure that
not only the first opened input encountered is considered when looking
for a compatible input to reuse for concurrent capture.

Bug: 22702906
Test: run CTS test
Change-Id: I7f69609d4ee70a37ab06753ff970b12df17d885b
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
551061ab211e1da0f060d7c895617814618da5c2 07-Feb-2017 Kevin Rocard <krocard@google.com> audiopolicy: Two clients can not offload concurrently

If two application are playing a compatible offload stream at the same
time.
Eg: two games playing MP3. At least one not taking the audio
focus.

The audio policy was offloading both stream resulting in audio glitches
and one stream being dropped.

Concurrent offload streams is intended to be a transitioning state when
an application wants back to back playbacks.

It should not be allowed for two different applications to stream at the
same time.

Test: Play mp3 while mp3 is already offloaded.
Bug: 34012147

Change-Id: I98a8913d6faf5092a1e43a0bdd0f1ce1482221a9
Signed-off-by: Kevin Rocard <krocard@google.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
587b8dfdbc3d3b1dd9ffc1996b9a07cd9b284833 31-Jan-2017 vivek mehta <mvivek@codeaurora.org> audio: fix audioSession null check

Test: make

Change-Id: Ied514f8fb7496143bad45504151ca16226c67767
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
bb9480975322b0d1a09f76ef14f3285fc8af4e5f 24-Jan-2017 Eric Laurent <elaurent@google.com> audio: enable concurrent capture for voice recognition

Add AUDIO_SOURCE_VOICE_RECOGNITION to the list of use
cases allowed for concurrent capture. As AUDIO_SOURCE_HOTWORD is
enabled for concurrent capture it makes sense to enable a client
to transition to voice recognition after the hotword has been detected
in a concurrent capture situation.

Also fixed some concurrent capture scenarii

Bug: 22702906
Test: build and check "OK Google" detection
Change-Id: Ic6dd41372fe74122395764beca7ca9a65197464b
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
44344b05261cb9ad46a43e635f637b89aecc7afe 13-Dec-2016 Mikhail Naganov <mnaganov@google.com> audio policy: allows dumping Audio Policy Mix

This patch adds the dump of AudioPolicyMix if registered.
It also adds the required conversion map to human readable strings
of the types involved in Mixes.

Adapted for the development branch from the AOSP patch:
https://android-review.googlesource.com/#/c/309127/

Change-Id: I91cf7afe6de5ff837970d9063ca437d4f6201e89
Test: build, dumpsys media.audio_policy
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.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
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
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
36867767ba86244b0d942255b9d241b092151309 29-Dec-2016 Jean-Michel Trivi <jmtrivi@google.com> USAGE_ASSISTANT/ACCESSIBILITY in audio policy manager

Add support for USAGE_ASSISTANT.
Fix stream type for USAGE_ACCESSIBILITY.

Test: enable Talkback, check volume; make
Bug: 30947943

Change-Id: Ie35adf0115dce1fac6d3deddc1e57e36b36913f6
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
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
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
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
6a308b02f138e358fb239ee2df5d54dd988f34fd 16-Dec-2016 Eric Laurent <elaurent@google.com> Merge "Add unique audio port IDs to AudioTrack and AudioRecord"
cc3237a31b293905423c7d71f5a3e8ea130e1a88 14-Dec-2016 Andy Hung <hunga@google.com> APM::updateCallRouting: ignore for stub output hal am: a76c7de622 am: 116160d668
am: f476960a28

Change-Id: Iaa58887ee83e5cb611d26bf61cadafb058245b03
116160d6680a0eabeea6510463c863f9afbe2956 14-Dec-2016 Andy Hung <hunga@google.com> APM::updateCallRouting: ignore for stub output hal
am: a76c7de622

Change-Id: Iee1637bcb01cd41daa70162684212c9eaf085763
a76c7de622e6e29f8559921d8d2e9ef93eb37d1f 14-Dec-2016 Andy Hung <hunga@google.com> APM::updateCallRouting: ignore for stub output hal

Bug: 33463233
Change-Id: I9b6708bef087e3f4a97868b2d8f7a9b1558233d0
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
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
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
99bb2f9afd956174785051827aa96d008b33faee 24-Nov-2016 Jean-Michel Trivi <jmtrivi@google.com> Do not hardcode media - a11y stream aliasing

Media and accessibility volume aliasing is now modal, and
now handled in AudioService.

Test: see bug
Bug: 30448020
Change-Id: Ie4e1775163fb65da2c0ed766b477cd9fc1c919d1
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
05b345e504a0affd24eefa12686812c554b294ff 18-Nov-2016 Eric Laurent <elaurent@google.com> audio policy: fix sound trigger capture disabling in startInput()

Fix test on number of active sessions in startInput()
deciding of overall capture state indication to sound trigger service.
As session active count is incremented before the test, the count indicating
the first active session is 1 and not 0.

Bug: 3289438
Test: verify OK google detection on Angler

Change-Id: I0a6c5d6240942e978fefffb536577b9d7dc29961
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
bf2e61f54c7dcc37c97b4908c9ed6871cf3d2b49 24-Oct-2016 Glenn Kasten <gkasten@google.com> Merge "Use audio_patch_handle_t in startAudioSource() and stopAudioSource()"
559d439c6fe8679e3c52f1cf265d46d7d2e65b68 29-Mar-2016 Glenn Kasten <gkasten@google.com> Use audio_patch_handle_t in startAudioSource() and stopAudioSource()

Bug: 27903060
Change-Id: Iafc2095f484b74978c6f080c54f548e293bf945e
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
9ee0540d3a61bff03d561ca431a371c3d9335d2b 14-Oct-2016 Mikhail Naganov <mnaganov@google.com> Remove last references to hardware/audio.h

DeviceHalInterface transitioned to "capabilities" model
(similar to the one already used by streams, e.g. 'supportsDrain').
No direct checking of the HAL version is needed.

AudioPolicy uses its own version read from the configuration,
and these values never checked against the actual HAL version,
thus it does not need versions and macroses from hardware/*.

Test: make & run on N6P
Change-Id: Ic4a56bfa19a9a61edac2b9f9a163fd8f63a0ff87
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
388360c786cdcbec650b79db65c734b8952dfec0 18-Oct-2016 Mikhail Naganov <mnaganov@google.com> Brush up audio parameters usage

It is preferred to use the constants from AudioParameter
(which can now serve as an abstraction layer similar to libaudiohal).

Grepped for usages of defines and just string values
and replaced with references to AudioParameter.

Since the parameter definitions are being moved to system/audio.h,
update includes in AudioParemeter and stagefright Utils.

Change-Id: I2addb983707d866b16f39d45d0e14b802595e292
Test: make
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
00260b5e6996b0a4b12f71c5b84e44adea040534 13-Oct-2016 Mikhail Naganov <mnaganov@google.com> Remove dependencies on hardware/audio_effects.h and EffectsFactoryApi.h

Also remove some outstanding dependencies on hardware/audio.h.

Most of the time, only constants and structs from audio_effects.h
are used, and no actual calls into HAL are made. Move these
definitions into system/audio_effect.h, and generate constants
from TREBLE HAL definition.

For parameters, always use values from AudioParameter class.

There are still some outstanding includes of hardware/audio.h
in code that directly deals with audio modules. Need to extend
libaudiohal interfaces to support required functionality.

Test: make

Change-Id: I0bcdf8ae199485d4d65f3eeb7e7a3b9b5cdb6ab6
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
cbc8f617c1aebef5d041fa40dcd38a5466690b99 12-Oct-2016 Mikhail Naganov <mnaganov@google.com> Eliminate dependencies on hardware/audio.h (trivial cases)

frameworks/av must not depend on hardware/ (except for the code
from libaudiohal that actually calls into HAL).

This CL deals with simple cases where depending on system/audio.h
is enough.

Change-Id: Ia2cb66cc8c92316ce5ab884a008d5e531263c2e4
Test: make
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
f7c50104b07091880019f4ecc70d977961148268 01-Oct-2016 Eric Laurent <elaurent@google.com> resolve merge conflicts of a3de77f to master

Change-Id: Idb3346465ee7f47d95fd24e2dafdd66f3759c1be
a3de77f1a7c994cdf53d10889d78d69c36fc85f3 30-Sep-2016 Eric Laurent <elaurent@google.com> audio policy: fix capture indication to sound trigger service. am: 271a93e924
am: 9080e17911

Change-Id: I2131473eb29d7896cad0d1459807214d89b0d754
271a93e924f46ccaf3f76a8fc38685afea40d3ee 29-Sep-2016 Eric Laurent <elaurent@google.com> audio policy: fix capture indication to sound trigger service.

Only indicate active capture to sound trigger service
when capturing from primay HW module.

Bug: 31826453
Bug: 31771879
Change-Id: Idf92393d3e7dbf926b847ab23f670e7ab5dd5248
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
ee4b2c9b3f63ed8a7acb7c6bba68dcd40b77bf8d 29-Sep-2016 Eric Laurent <elaurent@google.com> audio policy: fix media volume after ringtone am: 57de36ccd1 am: f3ef8248a7
am: 809acee9e2

Change-Id: I69beb8361d17fb215cf1d3d04faa97b25e78d371
809acee9e27acd2ce69b3f8324b30a96782d0444 29-Sep-2016 Eric Laurent <elaurent@google.com> audio policy: fix media volume after ringtone am: 57de36ccd1
am: f3ef8248a7

Change-Id: I7893c08978caf6ada73b5449ec3e1bcead96f9c1
57de36ccd1f524d602d267884bdcfae8559a6e6a 29-Sep-2016 Eric Laurent <elaurent@google.com> audio policy: fix media volume after ringtone

Fix regression introduced by commit 11c499a5 causing
music volume not to be restored after ringtone playback
over duplicated output (speaker + A2DP).

Bug: 31539910

Change-Id: I1c4eebea1f1a8f82ae2acfeecb9a61c437a74e25
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
7c9c33abb1ad874a277b17ceab91464966754926 21-Sep-2016 Eric Laurent <elaurent@google.com> AudioPolicyManager: fix setStreamVolumeIndex(). am: e76f29cbde am: fa94796ebb
am: 47406b6470

Change-Id: I2692aa7dc3dc206ba6aa6d30bc0064699059dad0
47406b64704137703f3d0ebe304a7286153d435a 21-Sep-2016 Eric Laurent <elaurent@google.com> AudioPolicyManager: fix setStreamVolumeIndex(). am: e76f29cbde
am: fa94796ebb

Change-Id: I15e9ff87ddd180eb6d5c3fc9dcdd3bd2be92d55f
fa94796ebba3d4813364c4b22a441d8544dce6c6 21-Sep-2016 Eric Laurent <elaurent@google.com> AudioPolicyManager: fix setStreamVolumeIndex().
am: e76f29cbde

Change-Id: I6eb6dbbea93321f366bea7fa39925bcac03225c2
3b0515db3405df2e759984aff7ac59aed0b16a98 21-Sep-2016 Eric Laurent <elaurent@google.com> Merge "AudioPolicyManager: fix setStreamVolumeIndex()." into nyc-mr1-dev
e76f29cbde016e2a5e76e308f946644adae10a17 15-Sep-2016 Eric Laurent <elaurent@google.com> AudioPolicyManager: fix setStreamVolumeIndex().

Fix bug in setStreamVolumeIndex causing default volume not
being applied on active streams.

Bug: 31489345

Change-Id: I7d54ab63a7473b211c26c28099fbe8d9440fced3
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
8e1d94daf47a3b2b9358c82b26590cc995233681 15-Sep-2016 Jean-Michel Trivi <jmtrivi@google.com> Address the concurrency of accessibility and ringtone am: 3d8b4a450b am: 7eaff48959
am: 4c455ebfe6

Change-Id: Ice70f9e97a19fef9960c6660095f6bf4b438766c
4c455ebfe643dbe1e5fbccd68f7e3ad48841d58a 15-Sep-2016 Jean-Michel Trivi <jmtrivi@google.com> Address the concurrency of accessibility and ringtone am: 3d8b4a450b
am: 7eaff48959

Change-Id: Ie26f87a6e62b9b2bf7368afad8c4a5b14722186d
3d8b4a450b451183b4eaba321b594df4a4ae9948 15-Sep-2016 Jean-Michel Trivi <jmtrivi@google.com> Address the concurrency of accessibility and ringtone

Use ringtone level -4dB for accessibility when an accessibility
prompt is played while the ringtone is playing, and the
accessibility level is lower than the ringtone level.

Bug 30754235

Change-Id: I5f044c3bddabca45528292846a378be13d73ff6c
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
15c1225da92bdae3c96a064fefbe745dd267185a 02-Sep-2016 Haynes Mathew George <hgeorge@codeaurora.org> audiopolicy: Avoid spurious routing in APM::stopSource am: 11c499a59e am: 5c261a2189
am: 61f87168e9

Change-Id: I0f97c34e0d8abb1ec130f6db781fbcfe2a455324
61f87168e91363d086ebbb5100c8684097681bc1 02-Sep-2016 Haynes Mathew George <hgeorge@codeaurora.org> audiopolicy: Avoid spurious routing in APM::stopSource am: 11c499a59e
am: 5c261a2189

Change-Id: I31ff3ac4e07d072b1756fa333057f67ecaf4285f
11c499a59eb8effc59209f6c06df3ed78c2998a8 26-Aug-2016 Haynes Mathew George <hgeorge@codeaurora.org> audiopolicy: Avoid spurious routing in APM::stopSource

On AudioOutput::stopSource, ignore routing calls
on an output descriptor to the same device

Bug: 31185954
Change-Id: I80f442982f7e66efb59b639a7ca9424745dbd70a
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
7b946f1102a90dd1735b334a77243f4f8126bd70 23-Aug-2016 Jean-Michel Trivi <jmtrivi@google.com> Merge "audiopolicy: modify A2DP suspend logic"
44f13b94ec6cc55923dc350561db96b194c9bd0f 11-Aug-2016 Eric Laurent <elaurent@google.com> Merge "audiopolicy: fix very verbose logging build"
5ca8f32280377dd923e72c3c6bd3994217461b8b 11-Aug-2016 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of fd923e7 to stage-aosp-master am: df5d9246f9
am: 63ef5a38f8

Change-Id: I516a43c5e56323e99ad7a8ca2e4811b77c9704f4
37ddbb43721947d6cb5246ec2cf2a6bd8fc28bcb 11-Aug-2016 Eric Laurent <elaurent@google.com> audiopolicy: fix very verbose logging build

Change-Id: I3a90ba55f85e11c9c2b986479c1dd0fda9059f81
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
df5d9246f9607b1c2f8b134c46a05af06e206da3 11-Aug-2016 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of fd923e7 to stage-aosp-master

Change-Id: I75b44b89bae41197a1fd68362d20b8ba2b4dd192
e964d4e421e2d1ca937227a580c0c837091a11e3 09-Aug-2016 Chih-Hung Hsieh <chh@google.com> Fix clang-tidy warnings in audio and playerservice.

* Add explicit keyword to conversion constructors.
Bug: 28341362
* Use const reference type for read-only parameters.
Bug: 30407689
Test: build with WITH_TIDY=1

Change-Id: I265f3b094e08d5705b506b3fbba51439c134af84
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
36d0ca16024820df9a12903d2ac443fabcc180bc 09-Aug-2016 Chih-Hung Hsieh <chh@google.com> Fix clang-tidy warnings in audio and playerservice.

* Add explicit keyword to conversion constructors.
Bug: 28341362
* Use const reference type for read-only parameters.
Bug: 30407689
Test: build with WITH_TIDY=1

Change-Id: I265f3b094e08d5705b506b3fbba51439c134af84
Merged-In: I265f3b094e08d5705b506b3fbba51439c134af84
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
f732e0726c5e0c4a1460e2dfa8c39e7a9a697ae9 04-Aug-2016 Eric Laurent <elaurent@google.com> audiopolicy: modify A2DP suspend logic

Do not suspend A2DP output if no SCO device is connected.
This allows playing ringtones on devices with A2DP profile only.

Bug: 29913018
Change-Id: I93bf2d3491c634a5fb2b8ac8283ef26faaf1ab53
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
f8194ffb1c4b1fa1b94294191aee8ba12a3633d4 05-Aug-2016 Eric Laurent <elaurent@google.com> audio policy: fix call volume over USB am: 5f5fca540c am: 8c3c46b795
am: 9d838d70e1

Change-Id: I205db77eafdccc69c345e048a87e093c2af4f220
9d838d70e129eee4eb66202731c436152f9de304 05-Aug-2016 Eric Laurent <elaurent@google.com> audio policy: fix call volume over USB am: 5f5fca540c
am: 8c3c46b795

Change-Id: I4d2f4aac4328831730d38699dc540cef15e8b32f
5f5fca540ce22d2f9caff1c823b2d5b637904729 04-Aug-2016 Eric Laurent <elaurent@google.com> audio policy: fix call volume over USB

Make sure the cache of output device selection per strategy is updated
also when an input device is connected or disconnected as the list of
input devices sometimes impacts the output device selection in
getDeviceForStrategy().

Bug: 30659619
Change-Id: Ie9f7bafda0074afcc803f309379c35b538f50170
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
f484d53675efb09b72fdf0d543b4e35dceceb2cf 27-Jul-2016 Eric Laurent <elaurent@google.com> audio policy: reduce audio routing commands trafic. am: 77305a6730
am: e45b4d49d3

Change-Id: I65cea7e3fee974c76d0afc13c4498eda7621016e
e45b4d49d3fe299d6975f6b943858f46992bee8b 27-Jul-2016 Eric Laurent <elaurent@google.com> audio policy: reduce audio routing commands trafic.
am: 77305a6730

Change-Id: I786ba21caef6d2c3c1142701337295de5565260c
77305a67301c74438ee09fdb8f80b89a43712951 26-Jul-2016 Eric Laurent <elaurent@google.com> audio policy: reduce audio routing commands trafic.

Restrict conditions under which we force a routing change
when an output becomes active to reduce the number of useless
binder calls, context switches and pausing of fast mixer thread.

Bug: 29345846
Change-Id: I492412f0475d6f3d1882af0b85ee0efcfac2b5e5
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
a4c20889fee2290539ef1f8318f50abf62c52dfc 21-Jul-2016 Eric Laurent <elaurent@google.com> Merge \\"audio policy: workaround for truncated touch sounds\\" into nyc-mr1-dev am: 0493cca1ba
am: afaf9cd17b

Change-Id: Ie88e2b2fa5150d6768ec41c1d872e3d417b1c2e4
afaf9cd17b01b6dd0d19dee96aa6cab03f4acf69 21-Jul-2016 Eric Laurent <elaurent@google.com> Merge \"audio policy: workaround for truncated touch sounds\" into nyc-mr1-dev
am: 0493cca1ba

Change-Id: Ifc7988fe9bf93ce9dd3197ce6f841e133abbada4
dc46286bf57fefc9f08ece3018b91acec7687f85 19-Jul-2016 Eric Laurent <elaurent@google.com> audio policy: workaround for truncated touch sounds

Implement workaround to avoid touch sound truncation when
audio path or volume changes are triggered by user actions.

Also:
- Fix regression introduced by commit c75307b7 causing failure
to honor playback start delay in case of path change.
- Fix failure to report path switch delay in updateCallRouting().
- Make sure we delay temporary mute according to requested device
switch delay in checkDeviceMuteStrategies().

Bug: 29528161
Bug: 27535199
Change-Id: Id729579b6623ee67a767055b9aca7d2e2dde8491
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
d91a420f234e2ec0ccc4d156a56297832e21d4a6 13-Jul-2016 Glenn Kasten <gkasten@google.com> Merge commit \'885dd7136a999d21219a4cc9034f20ef688c0625\' into manual_merge_885dd71
am: edab4257fa

Change-Id: I04abc72767b31fbdfd6ee82c239fbc4a94421a82
edab4257fa821c91c6e5a64cda78c9c38ea905c0 13-Jul-2016 Glenn Kasten <gkasten@google.com> Merge commit '885dd7136a999d21219a4cc9034f20ef688c0625' into manual_merge_885dd71

Change-Id: I871b103643cabab183bc24c1ce40930c7a083c79
fcddb0b73931d207b21bd281a7df3ba2f230a607 09-Jul-2016 Glenn Kasten <gkasten@google.com> Enable strict warning checks and fix

Change-Id: Id401a937911eb418e93314812f2f7c2b5ecff8d6
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
998ab5218bfef34f9c5e23c750199aaa7c9e29ef 08-Jul-2016 Eric Laurent <elaurent@google.com> Merge \\"AudioPolicyManager: fix music volume following alarm\\" into nyc-mr1-dev am: f81362f6cd
am: b44eb7edc8

Change-Id: I53f868ed86819a2e1cff52e69547c384569a50fd
b44eb7edc85ad6e5305a6f582ea28e6988556744 08-Jul-2016 Eric Laurent <elaurent@google.com> Merge \"AudioPolicyManager: fix music volume following alarm\" into nyc-mr1-dev
am: f81362f6cd

Change-Id: If23dda76fd11bc25ee1adf7b069df732cfce87f4
447a87bbfe11cc85123ddd94551c3a5ede54ea20 08-Jul-2016 Eric Laurent <elaurent@google.com> AudioPolicyManager: fix music volume following alarm

Using stale device selection for accessibility strategy
from cache was causing the wrong device to be returned
by getDevicesForStream() for music stream.
This caused speaker volume to be changed while playing
music over headset after playing an alarm over headset + speaker.

Bug: 29518506.
Change-Id: I06617976e209f6483ea0df1d0a6acb05de7c5cba
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
4cfa355eedae56e047b63b1b02fc6d789e21980d 04-Jun-2016 Eric Laurent <elaurent@google.com> Merge "Add AudioTrack and AudioRecord flag checks" into nyc-mr1-dev am: 2f8e63b5be
am: b70868bb33

* commit 'b70868bb337f0b12f993494f4d110979a33ddd24':
Add AudioTrack and AudioRecord flag checks

Change-Id: Ia6ab9998dcaa065d18fc048ae5ea6bb3e087ba62
b70868bb337f0b12f993494f4d110979a33ddd24 04-Jun-2016 Eric Laurent <elaurent@google.com> Merge "Add AudioTrack and AudioRecord flag checks" into nyc-mr1-dev
am: 2f8e63b5be

* commit '2f8e63b5be5b0160302cffe1f1f18e560d31d3e7':
Add AudioTrack and AudioRecord flag checks

Change-Id: If9043721f4763ce0f4db96c63595f92c5ba22556
050677873c10d4da308ac222f8533c96cca3207e 02-Jun-2016 Eric Laurent <elaurent@google.com> Add AudioTrack and AudioRecord flag checks

Verify that the requested flags are compatible with the input
or output flags when creating and AudioRecord or AudioTrack

Get rid of IAudioFlinger::track_flags_t which was redundant
with audio_input_flags_t and audio_output_flags_t.

Change-Id: I0dd9232f857b2737e99a8c668806e45bce09cdbd
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
06d169a0495ec26edb8daa46b7b7fbfa8a7852ce 26-May-2016 Jean-Michel Trivi <jmtrivi@google.com> Merge "Audio policy: volume computation improvement on A2DP for notifications" into nyc-dev am: 5d364cac29 am: 7ef5bb92f7
am: 58d8f01b7d

* commit '58d8f01b7dcec13cbb2db574b73de7483796202e':
Audio policy: volume computation improvement on A2DP for notifications

Change-Id: I7cebf025dfec1e2c1c970590e75f0af7d84646b4
58d8f01b7dcec13cbb2db574b73de7483796202e 26-May-2016 Jean-Michel Trivi <jmtrivi@google.com> Merge "Audio policy: volume computation improvement on A2DP for notifications" into nyc-dev am: 5d364cac29
am: 7ef5bb92f7

* commit '7ef5bb92f7169b5fa385c16d905265f99879cfae':
Audio policy: volume computation improvement on A2DP for notifications

Change-Id: I0cbc1533393a2eaa5cd19a55f43af1054ab9bb5a
de3c46b84849c83c0cac890f0c668d74ab4f9800 26-May-2016 Jean-Michel Trivi <jmtrivi@google.com> Merge "Audio policy: volume computation improvement on A2DP for notifications" into nyc-dev
am: 5d364cac29

* commit '5d364cac2911bf7d479af0d508576d4078d04961':
Audio policy: volume computation improvement on A2DP for notifications

Change-Id: Ibbefead821d690ad6dfc9ba806178bc8c27cd500
00a2096f3bd6f938216b3691c0b581d64df52999 26-May-2016 Jean-Michel Trivi <jmtrivi@google.com> Audio policy: volume computation improvement on A2DP for notifications

When playing STRATEGY_SONIFICATION* streams, or system sounds or
enforced sounds on A2DP during media playback, ensure the
difference between the media volume and the notification
is no more than 12dB

Bug 28288132

Change-Id: If5cb7979dd76a0d624e8aeff9126ff56bfd7366b
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
7b5ee5765f5632c36932d4630891936efd255270 21-Apr-2016 Eric Laurent <elaurent@google.com> Merge "Merge "audio policy: fix regression in getDeviceConnectionState()." into nyc-dev am: f3aaf48fe2 am: 19665dc930" into nyc-mr1-dev-plus-aosp
am: 6b6f366cb1

* commit '6b6f366cb1daacbce97b865515e839a0fcc9da53':
audio policy: fix regression in getDeviceConnectionState().

Change-Id: I8f0318371882609d0da69c64de2a4e053177a9b3
19665dc9307e9b18f188dea4001fe24adbda4500 21-Apr-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: fix regression in getDeviceConnectionState()." into nyc-dev
am: f3aaf48fe2

* commit 'f3aaf48fe2ca7f9886f1e4d00db16c575e9a97c9':
audio policy: fix regression in getDeviceConnectionState().

Change-Id: I8274672487d9f627277edd379b7f4b04d94749a5
634b71478742310960f3fdb4241e70a0735712c4 20-Apr-2016 Eric Laurent <elaurent@google.com> audio policy: fix regression in getDeviceConnectionState().

Fix problem in DeviceVector() device search logic causing
failure to report connection of devices when no address is provided
(e.g when called from AudioManager.isBluetoothA2dpOn()).

Bug: 28286051
Change-Id: I7ca732e195d2ddcdc1a93b78aed21523b3461aa9
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
fc5826376a3e770fbc23ceff7e2e20168938668b 21-Apr-2016 Eric Laurent <elaurent@google.com> resolve merge conflicts of 06c38ca to nyc-dev-plus-aosp am: dcddb00
am: f4393e4

* commit 'f4393e4b88bbb2f8910d59ed64a4ececf23b29d2':
audio policy: broadcast device connect event before refreshing profiles

Change-Id: I2ff190d3764e8406b20fb0ab3459e9397bd1fc4f
dcddb00907ee226796163cd91901139f8532c8d7 20-Apr-2016 Eric Laurent <elaurent@google.com> resolve merge conflicts of 06c38ca to nyc-dev-plus-aosp

Change-Id: Ic4f2cc36449e70ae4feef72238b9e16b3ae88b65
44481e7a0d0a3dd2c0ec3195a693f5b373659dc6 20-Apr-2016 François Gaffie <francois.gaffie@intel.com> audio policy: broadcast device connect event before refreshing profiles

This patch broadcasts the connect device event before checking and reloading
capabilities of profiles.
It allows the HAL implementor to use connect / disconnect event to respectively
load / reset capabilities of devices that has dynamic capabilities (e.g. HDMI).

Change-Id: Ie0533da25fed89cb9e5bbfc5b1fc886b3176837d

Signed-off-by: François Gaffie <francois.gaffie@intel.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
0d6a03301d77724c00c7a9ce7b8c123092d07a19 20-Apr-2016 Mikhail Naganov <mnaganov@google.com> Small improvements in audio_policy dump

1. Introduce a formatting helper for audio_mode_t, use it.
2. Get rid of mSize in TypeConverter.
3. Convert to a string unknown enum values.

Change-Id: I8fc222225c2dd48dea715bb3fe4ecb3f1eaecc46
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
cc607b16f0178fd1aeb0da680d21fd7eb1d91b1c 19-Apr-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: support platforms with no audio devices" into nyc-dev am: 8111860 am: 21c4ffc
am: 010b235

* commit '010b235b26dea3913374b688939120f2542c0225':
audio policy: support platforms with no audio devices

Change-Id: I949c911c89f8171aabe6f550628cf6c3d1329400
8111860ba116d84034b2aa21445feec71c65a9d4 19-Apr-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: support platforms with no audio devices" into nyc-dev
5a2b62984c7cecd1761fe272c078dd814c167942 15-Apr-2016 Eric Laurent <elaurent@google.com> audio policy: support platforms with no audio devices

Remove requirement to declare an AUDIO_DEVICE_OUT_SPEAKER device
for platforms without audio output.

By convention:
- platforms without audio output should declare a single output
device of type AUDIO_DEVICE_OUT_STUB also declared as default
output device
- platforms without audio input should declare a single input
device of type AUDIO_DEVICE_IN_STUB

Platforms with no audio at all can use stub audio policy configuration
file and audio HAL with the following instructions in device.mk file:

USE_XML_AUDIO_POLICY_CONF := 1
PRODUCT_PACKAGES += \
audio.stub.default
PRODUCT_COPY_FILES += \
frameworks/av/services/audiopolicy/config/audio_policy_configuration_stub.xml:system/etc/audio_policy_configuration.xml

Bug: 25075342
Change-Id: Id700978559427edd3c7cc38d98f2fd52928367ed
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
ec4c575a65382c87f1a35f3a3996115ef478da95 19-Apr-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: modify ringone volume attenuation over headset." into nyc-dev am: 3f5eba4 am: bb4c624
am: 375cbd3f2b

* commit '375cbd3f2b46c20bd0de0c0209dfe0ffd900590a':
audio policy: modify ringone volume attenuation over headset.

Change-Id: I347e65e73ebe7dbe622ffae36d1c874ddc7cd588
3f5eba440fa87637211f1d3b3f0061fc37065636 19-Apr-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: modify ringone volume attenuation over headset." into nyc-dev
dd7bae67c2edb18df6249f8ba14ff4d187a2cb20 16-Apr-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: fix call volume regression" into nyc-dev am: 5391b91
am: 78c3177

* commit '78c317708f21ebf514beda9757926815e621e9bf':
audio policy: fix call volume regression

Change-Id: Ib251c3629bd9ff6540b8db72f907ddd73439a222
d3926fe68ffd8d156e7c019277bbeb32ca786d8e 16-Apr-2016 Eric Laurent <elaurent@google.com> audio policy: fix call volume regression

Commit 1fd372e4 caused a regression preventing to
change in call volume.

Bug: 28223472
Change-Id: I31bd220ebdde1175c2f0a5ef1e874e86c6615ff8
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
6af1c1dc8954a555c6c6ef07d4f93e243d7f08cf 14-Apr-2016 Eric Laurent <elaurent@google.com> audio policy: modify ringone volume attenuation over headset.

Do not limit ringtone volume over headseet when combined with speaker and
no music is playing.

bug: 26769982

Change-Id: I5309bf0d672cca67c69a15b73ee2ef34a220d42a
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
ea95c62496ad1c38af4f0bfc6b83e098a7744f66 14-Apr-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: fix dynamic audio policy device address forwarding" into nyc-dev am: 8c808a2
am: 0773e92

* commit '0773e92bc6c139aa156b242d3b3e9044440b9523':
audio policy: fix dynamic audio policy device address forwarding

Change-Id: I3838e05641329a70c8e5acc58058b5dc1ec3140d
8c808a220fc155cc7bbe94e43125f2a25a4441a5 14-Apr-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: fix dynamic audio policy device address forwarding" into nyc-dev
c40d96943ddebd31578f30517457f88e6e894eb1 14-Apr-2016 Eric Laurent <elaurent@google.com> audio policy: fix dynamic audio policy device address forwarding

Make sure the device address is passed to audio HAL when opening
the output stream or changing device selection.

This is needed for dynamic audio policies with MIX_ROUTE_FLAG_RENDER.

Bug: 25448664
Change-Id: Iff7f733f6cad54753b0b5b0166303e97ea24e284
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
53a27325e775a775b552596d2274e32ea4e89c0b 13-Apr-2016 Eric Laurent <elaurent@google.com> audio policy: fix call audio over 24 bit USB device am: 8ae7312
am: dbe477a

* commit 'dbe477af33cee467480f171d2765d958ac162d6e':
audio policy: fix call audio over 24 bit USB device

Change-Id: I405aa268b7e751b55307afbb54e0ebd57cfef964
8ae73129e7e79d826b293238c2f037f723d0e6e8 12-Apr-2016 Eric Laurent <elaurent@google.com> audio policy: fix call audio over 24 bit USB device

Take into account voice RX source device properties when
configuring the audio patch bridging the voice RX device
to the USB output device.

Bug: 25643110

Change-Id: I06f282d3cc12493f21500bf9ab35a3ceb93f14af
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
bb7db7bf6c482e223e1f7eab79e22e18a1548e7a 09-Apr-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: fix volume burst on user switch." into nyc-dev am: 0fd0d0c
am: 4cc293f

* commit '4cc293f24f37f6fc60a208956cf9c48f5d3cc978':
audio policy: fix volume burst on user switch.

Change-Id: I3a4d410ce9e995070ddd5849be27bccbd4f35fb4
1fd372e40ef40643fa9d036a0c9db043475b1b02 06-Apr-2016 Eric Laurent <elaurent@google.com> audio policy: fix volume burst on user switch.

Fix two main problems in setStreamVolumeIndex():

1) the conventional initialization or user switch behavior consisting in first
applying volume for AUDIO_DEVICE_OUT_DEFAULT device which resets all volumes
and then apply device specific volumes is problematic: if this is done while
a stream is active, it will temporarily reset the volume to its default
(usually loud) and then back causing an audible glitch.

2) The logic consisting in applying the requested volume to all outputs with a
device selected by the routing strategy corresponding to the requested stream
is problematic: it will cause device specific volumes for other devices than
current one to be applied to active streams.
Restrict the logic to cases of multiple device selections including the
requested device.

Bug: 27557733

Change-Id: Ia14cd51766a7516c42221abff76843d47699105f
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
6f5c336b25e6622eaa302e492fd671f5dfff9b5f 01-Apr-2016 Phil Burk <philburk@google.com> Merge "AudioPolicyManager: remove 5.1 channels for Surround Settings NEVER" into nyc-dev am: 7c6a162
am: 79bd69f

* commit '79bd69f6954caec1e1f14e6fd2b58863d058219f':
AudioPolicyManager: remove 5.1 channels for Surround Settings NEVER

Change-Id: I846667a8d9a21db66ba648bf2f2902eb2c9f50c3
7c6a1621ef253989ab44cf68904531b35ae8b0b1 01-Apr-2016 Phil Burk <philburk@google.com> Merge "AudioPolicyManager: remove 5.1 channels for Surround Settings NEVER" into nyc-dev
0709b0aba2adb719d347341ff58441347a1c1582 31-Mar-2016 Phil Burk <philburk@google.com> AudioPolicyManager: remove 5.1 channels for Surround Settings NEVER

This allows people with TOSLINK to hear the correct stereo PCM
when listening to movies.

Bug: 25144047
Change-Id: I88401c016dd5a3a469becb019540c04befe78bba
Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
502d82464dc9c56e60697293651133fb607e6878 01-Apr-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: fix in call volume over USB" into nyc-dev am: e85b9da
am: 4d35a77

* commit '4d35a77fa0ea8c91ca638262664a0a06d54bbf1f':
audio policy: fix in call volume over USB

Change-Id: Ie6a564ef0577871dd0e1d7612962e49ffd7c5579
6340b16e4e2615b53b68eedf765ea21cc4afacf1 01-Apr-2016 Phil Burk <philburk@google.com> Merge "AudioPolicyManager: only modify surround formats for HDMI devices" into nyc-dev am: 88c3cda
am: d6a6a1a

* commit 'd6a6a1aaa00ce488eeb0536e409ab2a4efe20d31':
AudioPolicyManager: only modify surround formats for HDMI devices

Change-Id: I4b95f2ee67c25ed3e4f66af920093ea961fd8e6b
e85b9da2b3b8461724067cb927d20666ab09e3fd 01-Apr-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: fix in call volume over USB" into nyc-dev
18fba84019d778b3c20875d93f9f36c2410ecf33 31-Mar-2016 Eric Laurent <elaurent@google.com> audio policy: fix in call volume over USB

Do not consider only primary output for voice volume control as
sometimes the output device selected for a call can be connected to
another output stream (e.g USB)

Bug: 27108587
Change-Id: I8ec3db272f87d49f57044a771019672050f63d32
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
00eeb32846df81288f12fe4c83e61d7db2842226 31-Mar-2016 Phil Burk <philburk@google.com> AudioPolicyManager: only modify surround formats for HDMI devices

USB devices were getting modified by mistake.

Bug: 27938796
Change-Id: Ib62f6df804f8e578a702aba93439ff7cbfe3347a
Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
fc732a63bd8c8c62ce75f36f03088ca6727caece 30-Mar-2016 Glenn Kasten <gkasten@google.com> Merge "Use audio_module_handle_t and audio_patch_handle_t consistently" into nyc-dev am: 54b48c3
am: b9b9fa3

* commit 'b9b9fa3d28a0436bb5e267d8fc3626ebd820fe78':
Use audio_module_handle_t and audio_patch_handle_t consistently

Change-Id: I100c4795ec6d0d9e9c23d6e850303a23f3bfb603
a13cde98a880341f0a56d91da6364b093fb5d24e 29-Mar-2016 Glenn Kasten <gkasten@google.com> Use audio_module_handle_t and audio_patch_handle_t consistently

Bug: 27814144
Change-Id: I54b7a73ec318779fd3addb060998f4d94141152d
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
97888335274b7741d2ff8948a96c43035e31252d 29-Mar-2016 Phil Burk <philburk@google.com> Merge "AudioPolicyManager: always force AC3 on for TVs" into nyc-dev am: fd7dc4c
am: 1eca9c4

* commit '1eca9c4ca0bd536230a447fa1e7b14acc138bd36':
AudioPolicyManager: always force AC3 on for TVs
fd7dc4c764e6ec1136439188f75839094ff01917 28-Mar-2016 Phil Burk <philburk@google.com> Merge "AudioPolicyManager: always force AC3 on for TVs" into nyc-dev
07ac114c3965e16fe523f88c913e701602604589 25-Mar-2016 Phil Burk <philburk@google.com> AudioPolicyManager: always force AC3 on for TVs

Most TVs support AC3 but they do not report it in their EDID.
This changes forces support for AC3 unless turned off by Settings.
This change allows broadcast TV to work by default.

Bug: 24541671
Change-Id: I9e8cf194198db3811f91149014ef29e46972ad2c
Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
f00f15315312da70c7cad64aeaaa25fe3de92cea 25-Mar-2016 Jean-Michel Trivi <jmtrivi@google.com> Merge "RENDER dynamic policies: fix address check" into nyc-dev am: fdb90f3
am: 389afff

* commit '389afff15358113511f6ab8b93729d4117e96ab3':
RENDER dynamic policies: fix address check
fdb90f355b269737fe48a2da0593b37d5c2b83c1 25-Mar-2016 Jean-Michel Trivi <jmtrivi@google.com> Merge "RENDER dynamic policies: fix address check" into nyc-dev
5ac8cd425e1a0c4287c0bb84f922fef4fa106411 25-Mar-2016 Jean-Michel Trivi <jmtrivi@google.com> RENDER dynamic policies: fix address check

Fix mix / output address comparison when registering dynamic
policy mixes with a MIX_ROUTE_FLAG_RENDER flag.
Fix mix registration code path where the matching output is
not found, but no error is reported.
Improve logs.

Bug 25448664

Change-Id: I3679aead00304b38f7cc42dd9083644450771a15
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
2e99ff6de8b206b1561efa73b73b281808b0a73d 21-Mar-2016 Glenn Kasten <gkasten@google.com> Merge "Fix typos in use of %#" into nyc-dev am: 02c4f1c
am: cad4141

* commit 'cad41411ffe66af71ad7ffeb8383a03e03fcb38c':
Fix typos in use of %#
6b1255bdd3d8d941f4952a98eadf3b454f36a2a9 11-Mar-2016 Glenn Kasten <gkasten@google.com> Fix typos in use of %#

Change-Id: I5e49f89dc0e49bc3f5f2d3922d390982a3773384
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
eb6421d78c15b8a15455473150ff0deff50b483a 17-Mar-2016 Jean-Michel Trivi <jmtrivi@google.com> Fix AudioPolicyManager merge

Fix incompatible differences between upstream branch changes for
dynamic policies and master code for concurrent capture

Change-Id: I3d049cd2348348ade999868580354e57c5b8a93b
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
dd465ca823a3f29d1cc526a15fd0d939d5bad8cd 17-Mar-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: fix HW A/V sync rerouting" into nyc-dev am: a8d309d
am: 5ab60be

* commit '5ab60beffcd2d1a835d0b09dcc7ee59eb084c59e':
audio policy: fix HW A/V sync rerouting
dd9c82ae89985ca87a087e86c7f632a29f86601b 17-Mar-2016 Jean-Michel Trivi <jmtrivi@google.com> resolve merge conflicts of 9462ca1 to master

Change-Id: I7643b8dd1a4ec40b6e8fd8c824bf03afbbeac170
a8d309df2f603767c0f0ad9248aef47a5b6ed5b8 17-Mar-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: fix HW A/V sync rerouting" into nyc-dev
14cbfcae68582eca97f1a8168c584254515879ee 17-Mar-2016 Eric Laurent <elaurent@google.com> audio policy: fix HW A/V sync rerouting

Do not allow HW A/V sync tracks to be attached
to a PCM mixer as those tracks carry time stamps in band.

Cherry pick of c576f6a0 from lmp-mr1-tv-dev.

Bug: 25293500.

Change-Id: I1f080232e439a410ded25ca8e461113a96687a3b
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
7638ca29e8400a19524adb982e9d22c02786de82 05-Mar-2016 Jean-Michel Trivi <jmtrivi@google.com> Dynamic policies: support for device selection

Dynamic policy mix: rename "registration" field to device address
as this reflects the true use of the field.
AudioPolicyManager: dynamic policy registration differs depending
on policy routing flags.
When register a mix with the RENDER flag, iterate over all outputs'
patches to find a matching device and address.

Bug 25448664

Change-Id: I71584081e7f1b2b5252fb6c4659fdeb464f7d282
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
9eab2a8fed4f63af9bf8f95be11542ccc0a0ea8c 11-Mar-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: fix volume control regression" into nyc-dev am: c8e72cb140
am: 1ae9017889

* commit '1ae901788998027fbaa6d82cde16fa407c6ca3aa':
audio policy: fix volume control regression
794fde269478b50be873d9d93574b8aa2b6afc42 11-Mar-2016 Eric Laurent <elaurent@google.com> audio policy: fix volume control regression

commit 28d09f064 introduced regressions in volume control resulting
in changing some device/stream volumes unexpectedly.

The problem was in the logic consisting in considering streams equivalent for
volume control based on their associated strategy: The rule is wrong because it
causes a volume change on a given stream to cause the same change on all streams
sharing the same strategy. For instance stream SYSTEM and MUSIC share the same
strategy and changing SYSTEM stream volume would change MUSIC volume.

The new rule just considers the stream type when deciding if two stream share the
same volume control.

Also fixed possible calls to getStrategy() with stream PATCH causing asserts.

Bug: 27586382

Author: Eric Laurent <elaurent@google.com>
Date: Tue Mar 8 10:43:05 2016 -0800

audio policy: improve accessibility volume

Change-Id: I3fe2a25767319800b0db5fd1ed7c1bd751b04732
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
849c6e1563574ddcac47588e6159abeb00417339 09-Mar-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: improve accessibility volume" into nyc-dev am: a8b282504d
am: 506ab3a8b1

* commit '506ab3a8b1563cc21677e5b532c84067acb918c3':
audio policy: improve accessibility volume
28d09f06422841b4274d7fed6ad3441dc97382b2 08-Mar-2016 Eric Laurent <elaurent@google.com> audio policy: improve accessibility volume

Fix some regressions caused by the introduction of accessibility
stream type and strategy in M.

- change the way ACCESSIBILITY usage maps to a given strategy: always map
to strategy ACCESSIBILITY but implement a specific device selection for
strategy ACCESSIBILITY in getDeviceForStrategy(). This makes sure that
accessibility prompts always use ACCESSIBILITY stream type.

- optimize getDeviceForStrategy() to avoid reloading the list of outputs
and devices from the observer when called recursively.

- make sure that all volume APIs also take into account ACCESSIBILITY stream
when called for MUSIC stream. Generalize the concept of matching strategies
for straqegies that should be considered equivalent for volume control.
Modifications in:
- initStreamVolume()
- setStreamVolumeIndex()
- isStreamActive()
- getDevicesForStream()

Bug: 25067903
Bug: 25616373
Change-Id: Id8c7dd3231f79572b278407bc73186fc42dcc028
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
b2dd2232a30b5b0cbcb6020e5fbf13d26154ae10 03-Mar-2016 Phil Burk <philburk@google.com> Merge "AudioPolicyManager: remove unnecessary device reconnection" into nyc-dev am: 0494ebbeda
am: 2798f49bb4

* commit '2798f49bb4924960fe2e60ad7bb88e00d0695638':
AudioPolicyManager: remove unnecessary device reconnection
0494ebbeda158681dbe0c7cf68abfd475a19d139 03-Mar-2016 Phil Burk <philburk@google.com> Merge "AudioPolicyManager: remove unnecessary device reconnection" into nyc-dev
bf65d8fdc6f38159951b62013421ad42744d92b3 03-Mar-2016 Eric Laurent <elaurent@google.com> Merge "audio flinger: fix offload track underrun" into nyc-dev am: 62b5c0c28b
am: 92af70b8ed

* commit '92af70b8ed1c60ff6208ebdfb2cd414a739c42db':
audio flinger: fix offload track underrun
551fa9102bb1e9190bcb5853121a94fbad417e21 03-Mar-2016 Glenn Kasten <gkasten@google.com> Merge "AudioPolicy: capture sample rate 0 is route-specific default" into nyc-dev am: 1e3acb84fc
am: e4ddfc582a

* commit 'e4ddfc582a2a86ff0017dbcca6b5e766b4404ad5':
AudioPolicy: capture sample rate 0 is route-specific default
e21a7fc98912cd984fc168bd2a469128dd4ddf42 03-Mar-2016 Phil Burk <philburk@google.com> Merge "AudioPolicyManager: fix device enumeration" into nyc-dev am: 973074eb84
am: 8b763427ec

* commit '8b763427ec1bddc01343d458e40468052421bc61':
AudioPolicyManager: fix device enumeration
62b5c0c28becab95727739889ee762f727c2a462 03-Mar-2016 Eric Laurent <elaurent@google.com> Merge "audio flinger: fix offload track underrun" into nyc-dev
1e3acb84fcab8f00dba0a78ad4badaef4ba3869e 03-Mar-2016 Eric Laurent <elaurent@google.com> Merge "AudioPolicy: capture sample rate 0 is route-specific default" into nyc-dev
517161856d74f5fe39cce131f29b977bc1745991 01-Mar-2016 Eric Laurent <elaurent@google.com> audio flinger: fix offload track underrun

Fix offload track underrun detection causing early disabling
of offloaded audio tracks.

Optimize sleep time in case of underrun to avoid spinning while
waiting for new data.

Re-enable offload when streaming

Bug: 26668110

Change-Id: I874728c69647ac05e1effb84c48700a6d0ac7435
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
878e32d7cefc19d86cd0602eda6101961edad6fa 03-Mar-2016 Phil Burk <philburk@google.com> AudioPolicyManager: remove unnecessary device reconnection

This is now handled by a device reconnection in the AudioService.

Bug: 27434478
Change-Id: I2182b205c2b72cebff657a7bbee95df97f97eb55
Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
702b105b290d9a3c8b23f3c809a79086d784c9be 03-Mar-2016 Phil Burk <philburk@google.com> AudioPolicyManager: fix device enumeration

The AudioDeviceInfo only had PCM_FLOAT because the device enumeration was
stopping because of an error. The error was detected by new code
in the AudioFlinger.

The root error was not clearing a variable after a close.

Bug: 27457547
Change-Id: I529a26c8c0a688863bcf316ad365feddc303fe43
Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
05ddca504ce8e0e61b41e5c1aebea72086eea57b 11-Feb-2016 Glenn Kasten <gkasten@google.com> AudioPolicy: capture sample rate 0 is route-specific default

Bug: 25641253
Bug: 21019153
Change-Id: I7d193640572c08ab5e5f1ecfc8ad6d31635967dd
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
f0c6d7d940314dbec47c9b53cb99da79eb022787 26-Feb-2016 Glenn Kasten <gkasten@google.com> Add use for audio_unique_id_t

Bug: 25641253
Bug: 21019153
Change-Id: I65dc128e760c245f3d90559635a8981b186c87d7
(cherry picked from commit eeecb980ff4c202d0a3c4b0bfe040dce2f73336d)
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
e8158ffea27c9526547a7340dc5a085b8582033e 01-Mar-2016 Glenn Kasten <gkasten@google.com> Merge "Add use for audio_unique_id_t" into nyc-dev
eeecb980ff4c202d0a3c4b0bfe040dce2f73336d 26-Feb-2016 Glenn Kasten <gkasten@google.com> Add use for audio_unique_id_t

Bug: 25641253
Bug: 21019153
Change-Id: I65dc128e760c245f3d90559635a8981b186c87d7
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
9dafe3d139df9e87c2389bb7db9df4c2ca3ec1f2 01-Mar-2016 Phil Burk <philburk@google.com> Merge "AudioPolicyManager: force encoded surround setting" into nyc-dev am: 65e74d0b8b
am: a3b8c24661

* commit 'a3b8c24661eb8d7bab718029dbbfe35b4cfc57ac':
AudioPolicyManager: force encoded surround setting
09bc4612bdd5874d744c5da1183d96fbd2ad0235 25-Feb-2016 Phil Burk <philburk@google.com> AudioPolicyManager: force encoded surround setting

Bug: 26373761
Change-Id: I0f7a486bf1aa7a27f15cf220e2c75ef23f8f8536
Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
f4d98ed31f2150cc8ad707c6a2cfae8ecf26975e 27-Feb-2016 Jean-Michel Trivi <jmtrivi@google.com> Merge "AudioPolicy: AudioOutputDescriptor set/get for patch handle" into nyc-dev am: b3e06a7592
am: 51f453aac3

* commit '51f453aac3ebcb0de4036acc9b829f58d27c3ff5':
AudioPolicy: AudioOutputDescriptor set/get for patch handle
d51b1b247b120c7e49851d923f3c5aa0aa19a787 27-Feb-2016 Jean-Michel Trivi <jmtrivi@google.com> resolve merge conflicts of 1e9a65df13 to master

Change-Id: I7c255d7813805b5ffb0d8e5ecd6fc11ee0b80c8a
ff155c642fe7d342a3110444c6103f788230af53 26-Feb-2016 Jean-Michel Trivi <jmtrivi@google.com> AudioPolicy: AudioOutputDescriptor set/get for patch handle

For symmetry with AudioInputDescriptor: no direct access to the
field for the patch handle.

Change-Id: I5bffecf7a157ec042d749064208bc6c279008542
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
8c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972 26-Feb-2016 Jean-Michel Trivi <jmtrivi@google.com> Send audio patch in recording callback

Remove direct access to patch handle in AudioInputDescriptor, replace with
set / get functions.
Add interface for AudioSession to query configuration from enclosing
input descriptor.
When input descriptor's patch handle changes during a recording, propagate
the change through the recording notification callback.

Bug 26798796

Change-Id: Ia1395d44da7ccfe69ca46877638d1eb49b3935ad
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
232f26f8b673973ffa463f80b08b731ffacc8785 18-Feb-2016 Eric Laurent <elaurent@google.com> DO NOT MERGE - audio policy: disable concurrent capture

This reverts commit 4342335fb84bfa4ec5b99e3ef82f186820c2275f.
This reverts commit 56afc7a5cc0f0bfc8021f6413b2e2267050bdc8a.
This reverts commit 313d1e7dfb4bf8e0a2f09a9adb287062dd64410c.
This reverts commit fb66dd9f95a1168698f072c4e5c2a2cf8c49a80f.

Bug: 22702906

Change-Id: I9085918f1f7b12e28430958cceb768bb29c12bdb
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
b74dc56b2fd3ec872383544d4b6d4950c206259b 18-Feb-2016 Wei Jia <wjia@google.com> Merge "AudioPolicyManager: add comment for disabling offload when streaming." into nyc-dev
4ca44d77ede74eda712fbae80700dc92d5922e02 18-Feb-2016 Wei Jia <wjia@google.com> AudioPolicyManager: add comment for disabling offload when streaming.

Bug: 23499384
Change-Id: I74214c9cb444b10a6f50ffe499938945c063afca
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
de223b40b81450703980667ffffc766a16c3447c 18-Feb-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: select output with best sample format match" into nyc-dev
e693002b0fb25099540588245892ed98103749ba 11-Feb-2016 Eric Laurent <elaurent@google.com> audio policy: select output with best sample format match

Add rules allowing selection of the output stream with the sample
format offering the best match to the client track sample format
when more than one output is compatible with a request.

Bug: 27210844

Change-Id: I31981940be5d1c06d713d52187cfb0a7bf355773
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
7b8d434379e486ff32d43875676f423ce9ee1c05 17-Feb-2016 Wei Jia <wjia@google.com> AudioPolicyManager: disable offload mode when streaming.

This is a temporary work around until the root cause is fixed in offload
playback path.

Bug: 23499384
Change-Id: I1ee8197ba8995084287ef9385a0f6a30e4bb9351
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
b0a144d705a021994628d136a170a6d2bd4282e7 12-Feb-2016 Phil Burk <philburk@google.com> Merge "AudioTrack: support ENCODING_IEC61937" into nyc-dev
fdb3c07db5d44535eb8c3ec46dc78ad8446c01eb 09-Feb-2016 Phil Burk <philburk@google.com> AudioTrack: support ENCODING_IEC61937

Set DIRECT flag.
Use audio_has_proportional_frames() instead of audio_is_linear_pcm()
where appropriate.

Bug: 24541671
Bug: 20891646
Bug: 26373761
Change-Id: Ia32036b18683b084d6c9887593df87397ea0afd9
Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
e8decedb429ed76dfa84cdb3e80ab3b969e77298 11-Feb-2016 Jean-Michel Trivi <jmtrivi@google.com> Dynamic audio policies on UID

When looking for an output, take attributes and UID into account.
To find the matching mix: for each mix
- inspect which rules are used
- find a candidate mix for usage
- check UID compatibility
Rename AttributeMatchCriterion to AudioMixMatchCriterion to be consistent
with the fact that now mixing rules are not always about audio attributes.

Bug 26798796

Change-Id: I1520b0df190a98f197ea8e0144b770e1e6d97888
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
52785f3df24fe817af4f1c3c2cddfb30ab5450ee 10-Feb-2016 Chris Thornton <thorntonc@google.com> Call SoundTrigger::setCaptureState in AudioPoilcyManager::closeAllInputs

closeAllInputs wasn't informing the sound trigger service that all
inputs were closed. This meant that the service could get stuck in a
state where it was disabled because it thought there was some active
capture, even though there was nothing listening. (This was particularly
common when a bluetooth device disconnected).

BUG: 26970013,26450651
Change-Id: I613434ecacce3ef03a657008fd94c314948ba2b8
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
62e4bc53be19e96f8e37e850b9c8a9e15b9e2ba6 03-Feb-2016 Eric Laurent <elaurent@google.com> audio policy: strengthen dynamic audio profile intialization

Add some robustness to getParameters() reply parsing
in AudioPolicyManager::updateAudioProfiles().
Some audio HALs may respond with more than just the parameters requested.

Change-Id: Id9327604f521f9fb5636ff93cb6a7c3c23c86778
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
56afc7a5cc0f0bfc8021f6413b2e2267050bdc8a 03-Feb-2016 Jean-Michel Trivi <jmtrivi@google.com> Fix connection of OUT_REMOTE_SUBMIX device on APM startInput

Fix a regression in AudioPolicyManager::startInput() where
the OUT_REMOTE_SUBMIX audio device was never made available
due to the test on the input descriptor, which was already
active by the time it is tested, as the activity on the
session has already been updated.

Add methods to AudioInputDescriptor and AudioSessionCollection
to query the number of active sessions. Use the new method
to optimize AudioSessionCollection::hasActiveSession()

Bug 26798796

Change-Id: I2de4e47970505e64c4c78a148a80a9f0ec19e821
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
2e5408ac3e51cb459160b9cd392f1809b0758316 01-Feb-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: fix set volume with explicit audio patch"
706de969169a8f651726ab7de7302a3d35b39768 01-Feb-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: fix loss of audio patch client UID"
e04e62bc05316d9682688f87053be5cf47e9c707 30-Jan-2016 Eric Laurent <elaurent@google.com> audio policy: fix set volume with explicit audio patch

setStreamVolumeIndex() receives both a stream and a device as inputs.
When an explicit audio patch is requested on an output mix, it
is possible that the active device does not match the strategy
derived from the stream, in which case the function would not update
current volume.
This patch makes sure that the device explicitly passed to
setStreamVolumeIndex() is always taken into acount.

Change-Id: Ie496ff70f059166af6c81c8f8445a9a9c7548a72
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
bacd9d7ae33d831f9b8b3a0bc7ba8d367164a1d0 30-Jan-2016 Eric Laurent <elaurent@google.com> audio policy: fix loss of audio patch client UID

If an explicit audio patch is present on an output mix,
its client UID should not be reset by default when the device is updated
on this output mix.

Bug: 26423115
Change-Id: I87973e62d6eeb6f8fef3780bd67f58ae52d07812
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
313d1e7dfb4bf8e0a2f09a9adb287062dd64410c 29-Jan-2016 Eric Laurent <elaurent@google.com> audio policy: fix input device selection

Make sure session activity count is incremented before
selecting device in startInput().

Bug: 26841909
Change-Id: I0b4867b9ad4c7a98e5eddb4f1f23c4cf075f074e
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
fb66dd9f95a1168698f072c4e5c2a2cf8c49a80f 29-Jan-2016 Eric Laurent <elaurent@google.com> Revert "Revert "audio policy for concurrent capture.""

This reverts commit 84332aaa807037baca05340875f2d94fcc519ac4.

Bug:26841909
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
84332aaa807037baca05340875f2d94fcc519ac4 28-Jan-2016 Eric Laurent <elaurent@google.com> Revert "audio policy for concurrent capture."

This reverts commit 4b2fcd8abf90b1bd95539f9f4ef2ac39ce9e2df1.

Bug:26841909

Change-Id: Ifc74b195394b9fb3f73d33455ad061bd896d5331
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
4b2fcd8abf90b1bd95539f9f4ef2ac39ce9e2df1 16-Jan-2016 Eric Laurent <elaurent@google.com> audio policy for concurrent capture.

First implementation of concurrent capture policy:
Initially, only capture for HOTWORD or FM TUNER sources or
re-route submix is allowed at the same time as any other capture.
Several capture clients can share the same input stream. In this case
active clients are sorted by audio source priority level and the input
path configuration and routing is driven by the highest priority
active source.

Bug: 22702906

Change-Id: Icbedfe001c6243ecad7a7b57ab78d893b2b97402
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
a03910b23a31058eea178e8d3f5e84fcf852d5c2 27-Jan-2016 Eric Laurent <elaurent@google.com> Merge "audio policy: fix merging error for commit 112b0af8."
20eb3a4340a1f1f6e978a23527daff080140db1a 27-Jan-2016 Eric Laurent <elaurent@google.com> audio policy: fix merging error for commit 112b0af8.

Wrong patch set was merged from partner gerrit.

Change-Id: I850d61b1cc8682e0a82ee64bc8cb022b7512de1c
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
d1ab2bd4f1ea166a7e9e81cfd7f3e5dd47135d4d 02-Dec-2015 François Gaffie <francois.gaffie@intel.com> audio policy: move volume table to XML file

This patch allows to store in XML file volume tables.
The compatibility is maintained for legacy conf file.
Configurable Engine is only compatible with new XML conf.
This patch removes from configurable engine Structure / Settings the volume
table but keep the configurabllity of switching volume profiles from
one another according to criteria like phone state...
(ex: DTMF stream type is following Voice Profile in call)

Change-Id: I78c91bc3378b6c47202abe7b5c1c1e011ff62eed
Signed-off-by: François Gaffie <francois.gaffie@intel.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
f4ad6e5637b6deccdac4b60615383f290b3806cf 19-Nov-2015 François Gaffie <francois.gaffie@intel.com> Audio policy: implement configuration file in XML

This patch introduces configuration file of the policy in XML.
Legacy configuration file is used by default and
compilation flag USE_XML_AUDIO_POLICY_CONF must be defined to
use XML file format.

Change-Id: I352b788b5829d42ed82c851a4faef0e526be582e
Signed-off-by: François Gaffie <francois.gaffie@intel.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
c16bf1d9e8ccdd27327e988d50f5b9640e5406f8 13-Jan-2016 Jean-Michel Trivi <jmtrivi@google.com> Merge "AudioPolicy: callback for recording configuration change"
2f4fe9f7df8f22c6bc8745407d19df73128810ec 05-Dec-2015 Jean-Michel Trivi <jmtrivi@google.com> AudioPolicy: callback for recording configuration change

Each AudioSession tracks start / end of recording, and sends
a callback to AudioSystem.
AudioSystem tracks a single recording callback tracking
input source and audio session number.

Change-Id: Ic065751d9ba013e03f2a6ad8dde02542e5465ec0
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
2ddee19245641e86bca436dda23a0f5089bf2ab5 19-Dec-2015 Andy Hung <hunga@google.com> Add setMasterMono and getMasterMono

Bug: 15283594
Bug: 22700363
Change-Id: I32dc1fcecf285967a61bd508af3bb299595db57d
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
112b0af826aeca45855690b9c105b2cdf9938bbe 19-Nov-2015 François Gaffie <francois.gaffie@intel.com> audio policy: introduction of AudioProfile

In order to be able to declare the possible sample
specifications for an Audio Port (a given format, a list of
sample rates, a list of channels), a new object AudioProfile is
introduced.

Change-Id: Ie3ca3400f05984e7b4132fc7ba90020eb4d998c7
Signed-off-by: François Gaffie <francois.gaffie@intel.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
599c758b258cc5da0dba9b530425381facc37d77 08-Dec-2015 Eric Laurent <elaurent@google.com> audio policy: audio sessions on input descriptors

In preparation for concurrent capture, add support for multiple
audio sessions per input stream.

Each session keeps its own properties, open and active reference
counting.

No functional change for now: still one session per input and one active
input at a time.

Bug: 18815985.
Bug: 22702906.

Change-Id: I915a65989a7fd0d3cbe2fcf5a0aee2ea0df5f4f5
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
7b279bbc24139ee1e01b58055ca94926ec18e2e9 14-Dec-2015 Eric Laurent <elaurent@google.com> audio policy: remove compilation warnings

Change-Id: I4d41ca903dfbe37066ef20a13ebabaff1e5b7326
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
65bfe916ca972b95f41d7f6cc2566c2e12a3eada 05-Dec-2015 Jean-Michel Trivi <jmtrivi@google.com> AudioPolicyManager: AudioInputDescriptor open ref count cleanup

Always initialize the mOpenRefCount field.
Add functions for management for open ref count.

Change-Id: I0bbd021283047abfebbc108ced68c79e29297f25
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
a8ecc2c72ca26389bd6b0162181d60aaeaca8149 09-Nov-2015 François Gaffie <francois.gaffie@intel.com> audio policy: remove deserialization from policy objects

This patch removes the responsability of the deserialization of all
objects managed by the policy by:
-adding required accessors
-moving deserialization function to Config parser helper
-adds a TypeConverter to associate string to / from values of all
audio enumeration shared between HALs and policy.

Change-Id: I1ce798848f4657b37e47446c9fbdc63f7ed0390e
Signed-off-by: François Gaffie <francois.gaffie@intel.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
d60560af7cb559762593161c8202459cc01fb0f5 10-Apr-2015 Eric Laurent <elaurent@google.com> audio policy: add support for external audio sources

Add support for activity on external audio sources.
An external source reflects activity on an input audio device
that must be controlled (both routing and volume) by the
audio policy manager.
First, the input device must be connected with setDeviceConnectionState().
Then, the source activity is indicated with startAudioSource() and
stopAudioSource() APIs.
startAudioSource() indicates the source device with an audio port configuration
and the use case by the audio attributes.

Once a source is active, its routing and volume are controlled by the policy manager
as it would for a software source (AudioTrack).

Change-Id: If5805d58a4356b2f681f1aabf54375f62b55b98a
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
d90d042269d174104cbcddb078f835296571cf87 16-Oct-2015 Eric Laurent <elaurent@google.com> am adf760b9: am fba67941: am 0eb5a270: Merge "audio policy: fix transition from VoIP to voice call on USB" into mnc-dr-dev

* commit 'adf760b98f22597bd0133c67af40d983a3e014c6':
audio policy: fix transition from VoIP to voice call on USB
9690bf3690c9b720656cebf6da390800e7395213 15-Oct-2015 Eric Laurent <elaurent@google.com> am 27d07a9a: am 26639898: am 0926aab4: Merge "audio policy: fix USB mic selection for VoIP" into mnc-dr-dev

* commit '27d07a9a0366bab299a4b08c24e9bc4e94d14ac0':
audio policy: fix USB mic selection for VoIP
c0a889f766953b657a5e997bc1362661806d3a19 14-Oct-2015 Eric Laurent <elaurent@google.com> audio policy: fix transition from VoIP to voice call on USB

Make sure no active capture takes place while in call and the
capture device is the same as the call TX device.

Bug: 23977713.

Change-Id: Ia379d5e626c150ea49f0cdd581c881dbf0b8399d
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
c171c7c47d099a52ade95c3c8d8907bf09bb88fa 25-Sep-2015 Eric Laurent <elaurent@google.com> audio policy: fix USB mic selection for VoIP

When transitioning from speaker phone to normal mode and a USB
headset is connected, we must force a teardown of active input
as the new input device cannot be reached via current input stream.

Bug: 24406915.
Change-Id: I9f7c1d3f3cba285c25a6da1d54a3d15a5c1f378a
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
f63ae125ca8fc9e430694413b701d3667f3fd63a 24-Sep-2015 Eric Laurent <elaurent@google.com> am 3d036a8f: am 8c8d9779: am 45fd99a3: Merge "audio policy: fix preemtible capture race" into mnc-dr-dev

* commit '3d036a8f4ce9ba2a07593b21ef63d83c8a43816e':
audio policy: fix preemtible capture race
64265b2fb8f5be63b6c2ad4fcbec9acf74705bc4 19-Sep-2015 Eric Laurent <elaurent@google.com> audio policy: fix preemtible capture race

Because a preemtible capture session can preempt another one,
we end up in an endless loop situation were each session is allowed to restart
after being preempted, thus preempting the other one which restarts and so on.

To avoid this situation, we store which audio session was preempted when
a particular input started and prevent preemption of this active input by this session.
We also inherit sessions from the preempted input to avoid a 3 way preemption loop etc...

Bug: 24007220.
Change-Id: I0eab5299440ef3ab9e987635dc9a300cf42f2c79
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
4137d521e2be255ee109a6c59a1cd273b9029a4c 16-Sep-2015 Jean-Michel Trivi <jmtrivi@google.com> am 373c7621: am d3fa3c14: am 20baac2a: Merge "AudioPolicy: don\'t always change ACCESSIBILITY volume" into mnc-dr-dev

* commit '373c7621e21f8f15b4514e719030eb9ca7ebcfe6':
AudioPolicy: don't always change ACCESSIBILITY volume
af20bc26704458eac0ddc23f12b637939b0df7a4 15-Sep-2015 Jean-Michel Trivi <jmtrivi@google.com> AudioPolicy: don't always change ACCESSIBILITY volume

Only change the volume for AUDIO_STREAM_ACCESSIBILITY when
changing the media volume.

Bug 23366575

Change-Id: Ic42c726ec4d47615c20500c20e4d43cef159b3c6
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
b367f5b2de343bfd9040028b00acb96567f30bea 25-Aug-2015 Ravi Kumar Alamanda <ralama@codeaurora.org> audiopolicy: do not update channelMask for voice input source

It's not needed to update the channel mask based on source because
the source is sent to audio HAL through set_parameters() and if source
equal to VOICE_CALL does not mean that two channels need to capture.
If recorder app selects AMR as encoding format but source as RX+TX means
both RX and TX are captured in ONE channel. So use channels set by the app
and use source for the type of capture (RX only, TX only, or RX+TX).

Bug: 23484531

Change-Id: Iedf23318356480ba939fc06df4ae4f12906322b3
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
a09f8cf8c76fa946c4b91be059b420941abcdc3b 14-Aug-2015 Eric Laurent <elaurent@google.com> Merge "audio policy: refine TTS stream mute management" into mnc-dr-dev
9459fb087c97c3cad66221821eb32755fdb9c9f5 13-Aug-2015 Eric Laurent <elaurent@google.com> audio policy: refine TTS stream mute management

Do not mute the TTS stream if a dedicated output for
TTS is available.

Bug: 22100304.
Change-Id: Ic126100ce1144f765bc0ae42c8ea87fa47cfb822
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
82db269d4797cb9909988b723d91fa2094a74b38 07-Aug-2015 Eric Laurent <elaurent@google.com> audio policy: protect capture from telephony RX path.

Add permission check if the capture device selected is telephony
RX path.

Bug: 23017158.
Change-Id: Iaa34d836e6cf46b7cbbf2483fcd4306dcd27ce90
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
45aabc3578f2362b82f5a425d44e75d4266b1c8c 06-Aug-2015 Eric Laurent <elaurent@google.com> audio policy: populate attributes for attached capture devices

Populate supported sampling rates, channel masks and formats when enumerating
attached build in capture devices.

Having this information for build-in mic is important for some applications.

Bug: 22729461.
Change-Id: I93f03296447a87c10f2615fa1b1c45e9879b4aa7
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
5de234b29141334c1bb5e40bc19c11836848841b 21-Jul-2015 Jean-Michel Trivi <jmtrivi@google.com> Prevent notifications from muting accessibility prompts

When evaluating on which device a sound is to be played, the policy
must consider which current routing strategy, if any, has priority
for overriding the choice. Here the playback of notifications,
when duplicated over speaker and headphones, was causing the
accessibility prompt to be muted because the it was of a higher
priority, and incompatible with the accessibility routing.
The fix consists in assigning a higher priority to the accessbility
routing strategy over the notification routing strategy.

Bug 18834451

Change-Id: I8228b30a7d80bd61d1c223afb030d9421d4f33cf
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
7c1ec5f038e63a5eb8b04434577c25bc23f5f410 09-Jul-2015 Eric Laurent <elaurent@google.com> audio: several fixes in audio routing callbacks

- audio policy:
Force device change to ensure new audio patch creation
upon first track activity on a given output.
Fix function device_distinguishes_on_address() which could mistake
some output device with remote submix input device.

- audio flinger:
Reduce number of binder calls upon new client registration by only
sending ioConfigChanged() callbacks to newly registered client.
Fix first patch after output thread creation not triggering an
ioConfigChanged() callback.

-audio system:
Force client registration upon routing callback installation to force
new ioConfigChanged() callback from audio flinger.

Bug: 22381136.

Change-Id: Ieb0d9f92f563a40552eb31bc0499c8ac65f78ce4
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
54c0659b9efa72d11997c590c4d377c44789c7fd 08-Jul-2015 François Gaffie <francois.gaffie@intel.com> audio policy: session route: move SessionRoute to common

Move the SessionRoute and SessionRouteMap inner class from policy
manager to common policy pillars as initiated by the refactor.

This code was added at teh wrong place by commit aa981194.

Bug: 22376521.

Change-Id: I29aca21614e409c59aae4b7b14163552fb0bffb1
Signed-off-by: François Gaffie <francois.gaffie@intel.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
63dea1d5334acf3baa9448086dd504ead57d814b 03-Jul-2015 Eric Laurent <elaurent@google.com> audio policy: fix regression in incall notification management

Commit 2110e04c introduced a regression preventing ongoing alarms to
be restored when exiting a call and leaving the replacement tone
playing for ever.

Also add missing management of accessibility prompts when entering a
call.

Bug: 21857005.
Change-Id: I4295c791c003db42c0fba9f618e51f60438158d1
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
cc750d3604b33a92374253b12dd739dc06440aad 25-Jun-2015 Eric Laurent <elaurent@google.com> audio policy: fix several device descriptor issues.

- checkOutputsForDevice() should only clear device descriptor attributes
if the device is digital.
- checkInputsForDevice() did not clear device descriptor attributes at all.
- AudioPort::clearCapabilities() and importAudioPort() should not
manage gains as these are device specific.
- importAudioPort() should load a default port config.

Bug: 21990937.
Change-Id: Ida762ed8f9baaabae392cb4291eff1a8d3009751
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
9080a4cd8c4e22ddae0350c0c51a20cea1a41016 18-Jun-2015 Paul McLean <pmclean@google.com> Fixing no rates, chans & encodings on input devices for device enum API.
Filtering digital attributes for non-digital audio devices.

Bug: 21876072
21903975

Change-Id: Ia5c81a8160f4b4ebf5941dd0c5dfb68d01699ca6
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
3fc792fe36b0b9100f74185665221b37f650ff65 18-Jun-2015 Eric Laurent <elaurent@google.com> Merge "audio policy: fix explicit routing and accessibility" into mnc-dev
439e4ed408c21bd65711d279bd5251cef7e83440 03-Apr-2015 Ravi Kumar Alamanda <ralama@codeaurora.org> audiopolicy: use deep buffer output by default for music streams

Default disabled. This is enabled by

adb shell setprop audio.deep_buffer.media 1

Applications that use AudioTrack java interface for audio rendering
defaults to primary output as flags indicated as FLAG_NONE. If the
primary output is low latency output, it results higher power
consumption than deep-buffer path if used.
Make the deep buffer output as default option for music streams if
flags are not specified.

It may also be used for testing audio glitches from heavy CPU
or DRM which may cause issues with the FastMixer.

Bug: 21198655
Bug: 21785618
Change-Id: I909c296ddcf4484b9a877ef1c0230ea58537e06a
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
093a20cbe70d0033c085ef7be90b9f1bbacb3335 11-Jun-2015 Eric Laurent <elaurent@google.com> audio policy: fix explicit routing and accessibility

If a session has an active explicit routing request, this routing
must also be applied to accessibility prompts if accessibility
usage is currrently remapped to the strategy used by this session.

Bug: 20873151.
Change-Id: I97c6ece98cf1af9c64c2d2eb1fe382c7c0d657b4
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
72249d5b2f9f42a96c0e0825431e8f3f49b82644 08-Jun-2015 Eric Laurent <elaurent@google.com> audio policy: fix very verbose log build.

Change-Id: I94a69207059d8010ded14bce5d6e39c3f3074649
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
08945c44a97d3749cc48f860eb4e01e57183ad90 01-Jun-2015 Andy Hung <hunga@google.com> Add property to control audio offload with video content

Property audio.offload.video normally disabled (set to 1 to enable)

Bug: 21198655
Change-Id: Ib1c457b1e3950f18d91b855424aa80bd23c723b0
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
6374077319a2d060eefe5f4bf425aed37f90c5d0 22-May-2015 Eric Laurent <elaurent@google.com> Merge "audio policy: add checks on primary output" into mnc-dev
87ffa39d29d1803b48237888a9fbf3d5f2c60c21 22-May-2015 Eric Laurent <elaurent@google.com> audio policy: add checks on primary output

Check if primary output has been initialized before using it.
The primary output may not be initialized either due to HAL failure or
on devices without telephony.

Bug: 19573336.
Change-Id: Id1fc3ed588268e1232b43d1e6235254d2f1a71d0
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
861a628adbcbe7c3baa6eab1b765b87b480ff4a2 19-May-2015 Eric Laurent <elaurent@google.com> audio policy: fix direct output profile selection

Fix logic in AudioPolicyManager::getProfileForDirectOutput()
to select the direct output with most matching flags and not just
the first compatible one.

Also fixes issue 17783395 which was fixed by commit f7bc29b02
in lmp-tv-dev branch only but in a way that caused a regression
for HW A/V sync (issue 19384172).

Also removed duplicated code lines in getOutputForDevice()

Bug: 20819715.
Bug: 17783395.
Bug: 19384172.

Change-Id: I7fc793b37f9b53fabd92cab6b884ef85cfdafee4
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
c36a8897ff877f4c5b2e0580830faef8b87dd74a 25-Apr-2015 Ravi Kumar Alamanda <ralama@codeaurora.org> audiopolicy: Use AUDIO_OUTPUT_FLAG_TTS for TTS stream

Use AUDIO_OUTPUT_FLAG_TTS by default for TTS stream to see
if the HW supports a dedicated output for the same. If not,
fallback to primary output as it is done currently.

Change-Id: Ifb2ef7066e75c61fe4c1b9783c12627386a00ea5
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
7288ab87a7aa730ffe97d7dc7e118123107bfcea 07-May-2015 Eric Laurent <elaurent@google.com> audio policy: clarify use of mName field for audio devices

The audio port field mName was used for two different purposes
which caused a problem when exposing this information at the SDK API.

Create a new "mTag" field storing the audio_policy.conf device tag
if needed.
Field "mName" is now used to store any additional name associated to
a given device when available (e.g Manufacturer and model name for a USB device).

Change-Id: I17fa872e4a3a2e1b7cbb807c6f72e095a8a2c9c5
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
5f9bf49397b36ad4ebd838aef66b83e9e9fa42bc 30-Apr-2015 Eric Laurent <elaurent@google.com> Merge "audio policy: session routes continued." into mnc-dev
8c7e6dac6f5eb38cef627dab92eac8b38513450c 22-Apr-2015 Eric Laurent <elaurent@google.com> audio policy: session routes continued.

- Clear session routes when client process dies.
- Enforce the route only when the requesting session is active.
- Fix requested route not working if an output mix change is required
(e.g forcing to SPEAKER when the default route is USB or A2DP).
- Make sure all sessions sharing the strategy with a rerouted session
have the same route (needed for volume control consistency)

Change-Id: I0ab347a8fb97e73e2c5965374544c5f4fe509ef1
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
d641af3e9faf6c053ccbeea1bc20790021e57a11 30-Apr-2015 Jean-Michel Trivi <jmtrivi@google.com> Merge "AudioSystem callback for dynamic policy mix activity" into mnc-dev
f613d42b12389335b2ecf06df18d0d095d6bfd44 24-Apr-2015 Jean-Michel Trivi <jmtrivi@google.com> AudioSystem callback for dynamic policy mix activity

Add method to AudioPolicyServiceClient for dynamic policy mix
activity notification.
Propagate notification to a dedicated callback.

Bug 20226914

Change-Id: I37928ed38e15ea2b8fed022cccadeca8c4d6c876
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
466dc8ed6ca6b7f585104806c48613dd34e608c9 17-Apr-2015 Paul McLean <pmclean@google.com> Explicit routing in AudioRecord

Change-Id: I9cc5d54883a3e5c75d553fabb619fc8e49f4f9e5
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
7d7ea036436320b03bef826d78c4c035b67edbd0 24-Apr-2015 Jean-Michel Trivi <jmtrivi@google.com> Merge "AudioPolicyManager: notification of dynamic policy mix activity (input)"
493404d8c396e15ed73455acd39aa0f1940996e2 22-Apr-2015 Eric Laurent <elaurent@google.com> audio policy: fix AudioTrack output device selection

Have AudioTrack::setOutputDevice() set CBLK_INVALID flag instead
of calling restoreTrack_l(). This allows restoreTrack_l() to be called in
a safe context.

Allow device change while the AudioTrack is active by forcing a new
device selection in startOutput() if the output route for this
session was changed.

Remove some warnings.

Change-Id: I2d921a63c9bfa0e122233645e2d6d39f95f5f17d
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
2b0c1fc0d0ad3744a32d48234f255d82a5c80ded 16-Apr-2015 Jean-Michel Trivi <jmtrivi@google.com> AudioPolicyManager: notification of dynamic policy mix activity (input)

Use ref counting on start/stop inputs to notify audio policy client
of mix activity changes.

Bug 20226914

Change-Id: Ic4f9c91301d0bcbc0ff749acebdc3b2300309c38
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
554a277d4e42a3d3df3d90ba0e7dfa2d31690e32 10-Apr-2015 Eric Laurent <elaurent@google.com> audio policy: add binder calls for audio source control

Add binder methods to IAudioPolicyService to control activity
of external audio sources (e.g FM tuner).

Change-Id: I2008308a6a996baeae502b68a790d87281efe2ff
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
f129b03fa583d4cc26fd9c9171b8fb3b0ed8d4f4 07-Apr-2015 Andy Hung <hunga@google.com> Enable 8 bit and float pcm record formats for AudioPolicyManager

Add capability for handling different record channel masks.

Change-Id: I63f6b029aca5cefff7adf26198a3b594a7ea2d71
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
b6347ac62b36b4d9578d181ba83bf8e6446298e8 09-Apr-2015 Jean-Michel Trivi <jmtrivi@google.com> Merge "Fix AudioPolicyManager dynamic policy initialization"
dacc06f5e8d00ace9d16a149fc41ff65323ffbb3 09-Apr-2015 Jean-Michel Trivi <jmtrivi@google.com> Fix AudioPolicyManager dynamic policy initialization

AudioPolicyManager::getInputForAttr() is initializing the AudioMix
for the new AudioInputDescriptor.
The audio policy manager refactoring introduced a regression where
the association of an existing AudioMix (registered when the
associated AudioPolicy was registered) with the input descriptor
copied a value of local scope, instead of referencing the
AudioMix in the list of mixes.

Bug 20081375

Change-Id: Iddd57fed8525880afd1d4a5493f97130aabe4816
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
ffbc80f5908eaf67a033c6e93a343c39dd6894eb 19-Mar-2015 Eric Laurent <elaurent@google.com> audio policy: volume in dBs

Volumes are now stored and exchanged in dBs to be
consistent with the volume tables.

They are converted if needed when applied to the target
gain controller.

Change-Id: I916cbb0bbe65c916444b8c65a2bdca9645c58399
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
c75307b73d324d590d0dbc05b44bce9aa89b7145 17-Mar-2015 Eric Laurent <elaurent@google.com> audio policy: volume control reorganization

Output volume and routing control by AudioOutputDescriptor
is reorganized to prepare hardware source volume and routing
control.
AudioOutputDescriptor contains all volume, device and activity
state common to software (audio flinger mixers) and
hardware sources (tuners, A2DP, HDMI).
A new class SwAudioOutputDescriptor is derived from
AudioOutputDescriptor and is specific to software sources.

Low level routing and volume control methods receive an
AudioOutputDescriptor parameter instead of an IO handle.

mPrimaryOutput is now an AudioOutputDescriptor.

Change-Id: Ie90943ee3102cdb8adf89fdd2addd2c279b1e5bf
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
3bcf8597189c592713675ec58326ecbef0ac4ae9 03-Apr-2015 Eric Laurent <elaurent@google.com> audio flinger: improve device to device audio patches

Allow creation of audio patches between input and output
devices managed by the same audio HW module.

Change-Id: I4b83268a4d5c41f3d5905d7581202cf5193efd32
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
322b4d25387a04c9afebe998326d005bbdf17ede 04-Apr-2015 Eric Laurent <elaurent@google.com> audio policy: fix unique audio port ID.

Remove mId member from AudioPort as it was shadowed
by mId in DeviceDescriptor.

Add getters for Id, and HW module name and version to device,
output and input descriptors.

Fix DeviceDescriptor name initialization.

Change-Id: I4a69f385e40330954d9dad5f2926c521f60b2ec1
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
aa9811945f575614b3482d09e4d969792701cebb 21-Mar-2015 Paul McLean <pmclean@google.com> Adding explicit routing API to AudioTrack

Change-Id: I40c048c7644c46f4e4f7103875206c0785c4b1dc
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
887a9ed4446cb451181c392a0e51a69914e58fbf 01-Apr-2015 Jean-Michel Trivi <jmtrivi@google.com> Updates to AudioPolicyManager refactor

Use protected access in AudioPolicyManager class for
- engine field
- querying phone state
- isStrategyActive

Fix inclusion of AudioPolicyManagerInterface header.

Use "APM_" prefix in audio policy conf parsing code to avoid
naming conflicts with some HALs.

DeviceDescriptor and its collection class are good friends now.

Change-Id: I236d62a2b8a4b6bf68dd515932650b912577c145
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
2110e04cdfbf9ad85ce154ce5f778ee5ccfc95eb 24-Mar-2015 François Gaffie <francois.gaffie@intel.com> Split ManagerDefault into manager and engine

This patch defines an interface for a new component: policy engine.
The APIs found under this interface are the one we may want to customize
and to configure easily.
This patch also split the current manager code into manager and engine to
provide a default version of the policy engine.

Change-Id: I97cf59760b53d248fe9efe466ae5e73bd7e5cc06
Signed-off-by: François Gaffie <francois.gaffie@intel.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
dfd7409c1b708f6c429aa43722ca8493a91d8df0 19-Mar-2015 François Gaffie <francois.gaffie@intel.com> Create StreamDescriptor and associated collection within common

Create StreamDescriptor and associated collection within common
common policy pillar elements.
It moves the code from managerdefault and creates helpers function within
the collection.
It also split the AudioGain in a common volume header and AudioGain class.

Change-Id: I1bb80e4219506f8c9042367085db328d317cb668
Signed-off-by: François Gaffie <francois.gaffie@intel.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
df37269852ea92bafd939fe793209d0581c4a574 19-Mar-2015 François Gaffie <francois.gaffie@intel.com> Create SoundTriggerSession and associated collection within common

This patch creates a SoundTriggerSession and associated collection within
common policy pillar elements.
It moves the code from managerdefault and creates helpers function within
the collection.

Change-Id: I83ea230573c05e8ab99f4489c20059ed27678221
Signed-off-by: François Gaffie <francois.gaffie@intel.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
45ed3b053d9af2250f5ece9ee4e826905c3763a7 19-Mar-2015 François Gaffie <francois.gaffie@intel.com> Add EffectDescriptor and associated collection to common elements

This patch adds EffectDescriptor and associated collection to common
policy pillar elements. It moves the code from the policy manager
and creates helpers function in the collection.

It also factorize the RoutingStrategy structure within a separated header
file.

Change-Id: I29964ff77564fadedf3237c8754240b21ae77297
Signed-off-by: François Gaffie <francois.gaffie@intel.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
036e1e9126dcd496203434aa69e52115d8e730cc 19-Mar-2015 François Gaffie <francois.gaffie@intel.com> Add AudioMix and AudioMixCollection to common policy element

This patch adds AudioMix and associated collection to the common
policy pillar elements library.
It removes the code from the manager and creates also helpers function
associated to the mix collection.

Change-Id: Ia3536fdef09da13734d2895030d736c701040237
Signed-off-by: François Gaffie <francois.gaffie@intel.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
53615e29c99c5e9d2ca77aaefd7bf5c770513120 19-Mar-2015 François Gaffie <francois.gaffie@intel.com> Migrate helper functions from managerdefault to common

This patch moves from manager to common:

-parse helper functions of the policy configuration file
-collection helper function on
-output / input descriptors
-DeviceDescriptor
-AudioPatch / Audio Port
-IO Profile
-HwModule

Change-Id: If45e53418db75af1af198f43c4ef27884499055f
Signed-off-by: François Gaffie <francois.gaffie@intel.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
98cc191247388132b6fd8a4ecd07abd6e4c5a0ed 18-Mar-2015 François Gaffie <francois.gaffie@intel.com> Split ManagerDefault into Manager and ManagerDefinitions

This patch splits the managerdefault into a manager and a manager
defintion library that contains all pillar elements of a policy manager.

It renames the file with the name of the main class they contains.

It splits the AudioPort into AudioPort and AudioPatch.

Change-Id: I992cf0b8aed895805cc003ba0980d2c9e92c985b
Signed-off-by: François Gaffie <francois.gaffie@intel.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
ad3183e2d4cecd02f6261270a7ea1c68be0efa0f 18-Mar-2015 François Gaffie <francois.gaffie@intel.com> Audio Policy Refactor: reorganise headers inclusion

This patch reoganises the headers inclusion in order to prepare
the split of managerdefault into a manager and a separated lib
of pillar policy elements.

It also moves back the isStrategyActive to the manager to avoid
any dependancies from this pillars to the manager.

Change-Id: I1a35c45d86db7a3878a40dc7d6858dfea37c5ac9
Signed-off-by: François Gaffie <francois.gaffie@intel.com>
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
acc930d104534dff89d5e336d22d2310069ca7c2 04-Mar-2015 Eric Laurent <elaurent@google.com> audiopolicy: Do not route VoIP call to HDMI

getDeviceForStrategy is returning AUDIO_DEVICE_OUT_AUX_DIGITAL
even when setForceUse is called with FORCE_NONE(earpiece)
during VOIP call.
Actual Intention is to route audio for phone strategy to AUX
device even after setForceUse is called with FORCE_NONE when not
in voice call. It is supposed to exclude VOIP call too.

Bug: 19522164.

Change-Id: I88d515c351f066305f9eed240b1fe5f60ef34f85
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
56ec4ffcbae8aeac6c5245fc7b825d02e2e6cefd 24-Jan-2015 Jean-Michel Trivi <jmtrivi@google.com> Refactor AudioPolicyManager

AudioPolicyManager implementation is now split into the
following files:

files managerdefault/Gains.*
class AudioGain
class VolumeCurvePoint
class StreamDescriptor

files managerdefault/Devices.*
class DeviceDescriptor
class DeviceVector

files managerdefault/Ports.*
class AudioPort
class AudioPortConfig
class AudioPatch

files managerdefault/IOProfile.*
class IOProfile

files managerdefault/HwModule.*
class HwModule

files managerdefault/AudioInputDescriptor.*
class AudioInputDescriptor

files managerdefault/AudioOutputDescriptor.*
class AudioOutputDescriptor

All files for libaudiopolicyservice are moved under service/

All files for libaudiopolicymanager are moved under manager/

Change-Id: I43758be1894e37d34db194b51a19ae24461e066e
/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp