aa79befb301bc3451a19021b3fc9e9e6a1f231e8 |
|
15-Jan-2015 |
Eric Laurent <elaurent@google.com> |
fix audio patch leak. Always wait for status when executing a create audio patch command in audio policy service command thread. The returned patch handle must be passed back to audio policy manager so that the patch can be modified later. Failing to do so causes a leak of patch descriptors in audio flinger. Bug: 19032387. Change-Id: I5462d1437fac244d9c5e38f2c7b8e1a4c01d2b75
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
e83b55dc29ca16092ba02f36f55fa6e0e37fd78c |
|
14-Nov-2014 |
Eric Laurent <elaurent@google.com> |
audio policy: new getOutputForAttr() prototype. Update getOutputForAttr() prototype and group all logic dealing with audio attributes to stream type conversion in audio policy manager. getOutputForAttr(): - specifies the audio session (for future use) - returns a status code - receives either stream type (for legacy) or audio attributes - returns an updated streamtype Remove logic dealing with legacy stream types to attributes conversion from AudioTrack. Use correct type for audio sessions in other APIs (startOutput() ...). releaseOutput() specifies the audio session (for future use). Bug: 18067208. Change-Id: I1bfbe9626c04c7955d77f8a70aecfad2cb204817
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
0ebd5f95b68a3a5c9e5509f21938c9e51e74d71b |
|
20-Nov-2014 |
Eric Laurent <elaurent@google.com> |
AudioSystem: fix cross deadlock Do not hold gLockAPS when calling AudioPolicyService::registerClient() in get_audio_policy_service(). registerClient() will need to acquire the AudioPolicyService mutex and if at the same time a method called from AudioPolicyService (with mutex held) calls back into AudioSystem and get_audio_policy_service() a cross deadlock occurs. Same preventive fix for get_audio_flinger(). Use a separate mutex for notification client list in AudioPolicyService. This prevents deadlocking if registerClient() is called as a consequence of AudioFlinger calling back into AudioPolicyManager while executing a method with AudioPolicyService locked Bug: 18403952. Bug: 18450065. Change-Id: Ia832e41aede8bc6c843fc615508fbdd74e0863b5
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
a2d4a6dac432f0c4f543d79b9a63c55ae91f81d6 |
|
13-Oct-2014 |
Haynes Mathew George <hgeorge@codeaurora.org> |
audio policy: Fix for voice call audio loss Audio Policy service filters out one of the create patch commands when it finds two pending commands with the same patch handles. Due to this routing command is not received to audio HAL and the voice call set up fails. Fix this by filtering create patch commands only when they are issued on the same output. authored-by: Karthik Reddy Katta <a_katta@codeaurora.org> Bug: 17787282 Change-Id: If36f0ab71e9b72d6a8eb61d31f762bc5e1683b89
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
f5ada6edcc83bb1b313abcd4c4fbdc4f7724f04d |
|
10-Oct-2014 |
Eric Laurent <elaurent@google.com> |
audio policy: move intializations to onFirstRef() Bug: 17896324. Change-Id: I3bb74f5397142ac354bd815eb362e5ddacdcb463
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
8b1e80bf1e9f214feea219cfe981ba533b806003 |
|
07-Oct-2014 |
Eric Laurent <elaurent@google.com> |
audio policy: fix lockup during mediaserver restart When pre or post processing effects are applied by audio policy service automatically there is a potential lockup if the first call into AudioPolicyService is made while creating one of those effects. This is because effects are created with AudioPolicyService mutex held and effect creation calls into methods (e.g registerClient()) which also acquire the mutex. The fix consists in adding a new mutex to AudioPolicyEffects class and not hold the AudioPolicyService mutex when calling methods in of class. Bug: 17830596. Change-Id: Ie61c3671d3147f46e99ba208f39c1a3bf180779f
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
bb6c9a05840d924b502ce0f1868fca4881ada1ed |
|
25-Sep-2014 |
Eric Laurent <elaurent@google.com> |
audio: fix stream type for accessibility usage Make sure that accessibility prompts are heard when a ringtone is active by forcing stream type to AUDIO_STREAM_RING when phone state is AUDIO_MODE_RINGTONE. Bug: 17558149. Change-Id: Ia3bead8052fca5cbf282c267f7b9b06014fef628
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
e45b48aba115f4daf4a4aad31b6a95df9b79f463 |
|
05-Sep-2014 |
Eric Laurent <elaurent@google.com> |
audio policy service: filter out delayed audio patch commands if needed. As for set parameters commands, create or release audio patch commands modifying the same patch handle should be filtered by the audio policy service command thread so that an immediate command is not overridden by a pending delayed command. Bug: 17379728. Change-Id: I6aa4652b4bfec59eebd3c3cb7d1d9ac1bc1d6e49
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
05f2fdc1070c1c07af9e21760d4d2e06bebde55a |
|
25-Jul-2014 |
Ricardo Garcia <rago@google.com> |
-Making sure mAudioCommands list is empty before going to sleep. -Wake_lock release before sleeping or quitting threadLoop(). Change-Id: Icab53d7984a3ba3eaf13e514667b4d60f40cbcd6
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
a7e04803ffa0d8d4cc51a122f68bf5038422aabb |
|
21-Jul-2014 |
Glenn Kasten <gkasten@google.com> |
Remove execute bit Change-Id: I1cf0c0d9375779b3074af12f4cbf9c1ec07bf4ff
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
1e693b55d888b9d3e0a2ce770ae2b72b59c1a317 |
|
10-Jul-2014 |
Eric Laurent <elaurent@google.com> |
audio policy: add rules to select audio parameters Added rules to select most appropriate sampling rate, format and channel mask from an input or output profile. Moved mFlags from IOProfile to its base class AudioPort. Removed bogus mChannelMask member in DeviceDescriptor class. Improveed dump of dynamic parameters in AudioPort. Change-Id: Ic09d320386002a8bafee4a28db00b1001a386678
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
ba2b43990a7b4f0f2c425cf6cdfc63376a45772c |
|
11-Jun-2014 |
bryant_liu <bryant_liu@htc.com> |
frameworks: av: services: audiopolicy: Added AudioPolicyEffects Manage pre- and postprocessing effects defined in audio_effects.conf Change-Id: Idea1478e3d434f8ff66907adb3c77663db78d583
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
eb4b03cb98e38bf76ee6e6debb74e76c30cbc228 |
|
11-Jun-2014 |
Eric Laurent <elaurent@google.com> |
Merge "audio policy: use factory to create audio policy manager"
|
f269b8e0e9ab950fc6652b9594b7a3431c81630c |
|
10-Jun-2014 |
Eric Laurent <elaurent@google.com> |
audio policy: use factory to create audio policy manager Use the class factory to create the audio policy mamager instead of AudioPolicyManager class constructor and use a pointer to an AudioPolicyInterface. Change-Id: Ibb5a8eee5d597db67cf13f279c909181cfee9949
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
59a8923027d2d6a155c0fa434ae65559318da4b6 |
|
08-Jun-2014 |
Eric Laurent <elaurent@google.com> |
audio policy service: fix potential deadlock in destructor In the AudioCommandThread loop, release mLock before releasing the strong reference on the service as AudioPolicyService destructor calls AudioCommandThread::exit() which acquires mLock. Also check exiPending in thread loop before processing pending commands or sleeping. Bug: 15449050. Change-Id: I148bf21bd67ef721b5b5ee2c1a6afb185c59daa3
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
e1715a465a29db625da9d0ea365edf371e39e201 |
|
20-May-2014 |
Eric Laurent <elaurent@google.com> |
audio policy: add audio port gain control Implement setAudioPortConfig() API to configure an audio port. Currently limited to gain control. Bug: 14815883. Change-Id: Ic1b268e5ba5c277e9f5b8fa63c81dd7c0b250024
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
b52c152d553556b2d227ffc943489de0c60b4b02 |
|
20-May-2014 |
Eric Laurent <elaurent@google.com> |
audio policy: add routing update client interface Added IAudioPolicyServiceClient client binder interface for client process to receive notifications from AudioPolicyService when audio ports are added/removed or audio patches created/released. The audio patches owned by a given client are automatically released when this client binder dies. Bug: 14815883. Change-Id: I6013f6aec03b50565cffb1ad2cd1f0f8852032c5
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
951f455566775e5f01e67c5ee26863d7d19209d7 |
|
20-May-2014 |
Eric Laurent <elaurent@google.com> |
DO NOT MERGE - audioflinger: first patch panel implementation. Added a new PatchPanel subclass to AudioFlinger to handle audio ports and audio patches configuration and connection. The first implementation does not add new functionnality. AudioPolicyManager uses patch panel interface to control device routing. AudioFlinger: - Added PatchPanel class. The first implementation does not add new functionnality. PatchPanel handles routing commands for audio HAL after 3.0 or converts to setParameters for audio HALs before 3.0. - Added config events to ThreadBase to control synchronized audio patch connection. AudioPolicyManager: - Use PatchPanel API to control device selection isntead of setParameters. - New base class AudioPort common to audio device descriptors and input output stream profiles. This class is RefBase and groups attributes common to audio ports. - Use same device selection flow for input as for outputs: getNewInputDevice -> getDeviceForInptusiource -> setInputDevice Change-Id: Idaa5a883b19a45816651c58cac697640dc717cd9
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
0ede8924b98c2967be2795e8d4f9837d8d3f094c |
|
10-May-2014 |
Eric Laurent <elaurent@google.com> |
audiopolicy: refactor audio command threads - Use strong pointers for command data to avoid transfering ownership of the object to receiver thread. This avoids waiting for the command acknowlegement to proceed with next command on server side. - Use a separate mutex for each command condition. - Factor in duplicated code to send commands. Change-Id: Ib0526e7c4fa64a71ad4015f477c6361727c6f40a
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
657ff61389d7316f798d4abe03efac56fd528d91 |
|
07-May-2014 |
Eric Laurent <elaurent@google.com> |
audio policy: cleanup AudioPolicyService destructor No need to clear strong pointers in the destuctor. Add explicit exit() command to mOutputCommandThread. Change-Id: I60bb248fe6a20bfd8a55358ef139692b93df0238
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
7ebe2c64dea42a3fd4de34ccb877d23b7a4e8076 |
|
06-May-2014 |
Eric Laurent <elaurent@google.com> |
am 71171988: am f655acf1: am 8fb04d47: Merge "Fix memory leak when filtering commands in insertCommand_l()" * commit '711719885d7563068579abf347c366cf6bc906f5': Fix memory leak when filtering commands in insertCommand_l()
|
9ac3c9a7ee931088d09027ffa09414cb0402886f |
|
21-Mar-2014 |
Eric Laurent <elaurent@google.com> |
Merge "audio policy: add option to use new policy manager"
|
c7e05b0fc54f9ad22c6d219bf8cf6f10f8d9ba9c |
|
18-Mar-2014 |
Glenn Kasten <gkasten@android.com> |
am 0c282de7: am 77658a06: Merge "AudioPolicyService: malloc/delete pair" * commit '0c282de73240b1efce64558ab2fa0a8be1f4292b': AudioPolicyService: malloc/delete pair
|
dce54a1492c410ad0d93253b341fb33305337505 |
|
10-Mar-2014 |
Eric Laurent <elaurent@google.com> |
audio policy: add option to use new policy manager Add build option USE_LEGACY_AUDIO_POLICY to use either new audio policy manager in local AudioPolicyManager.cpp or the legacy AudioPolicyManagerBase.cpp via the policy HAL. New features will be implemented only by the new audio policy manager. Platform customiization will be by config file or new policy HAL. AudioPolicyClientImplLegacy.cpp copied from AudioPolicyClientImpl.cpp AudioPolicyInterfaceImplLegacy.cpp copied from AudioPolicyInterfaceImpl.cpp New implementations of AudioPolicyInterface and AudioPolicyClient talking directly to AudioPolicyManager. Change-Id: I7a320883a1de13de2c9295343e996addf2f3c154
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
2d388eccc9dc085337c7a03a68467cbee6b809e1 |
|
07-Mar-2014 |
Eric Laurent <elaurent@google.com> |
audio policy: split implementation Split audio policy service implementation to ease further evolution: AudioPolicyInterfaceImpl.cpp contains the implementation of IAudioPolicyService interface AudioPolicyClientImpl.cpp contains the implementation of the AudioPolicyManager client interface AudioPolicyService.cpp contains the rest of the code mostly command threads implementation and pre processing management. AudioPolicyService.cpp: Change-Id: Ic48ba165532ef66e84a30894d01f750ed6619d02
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|
c7e5040aa8b8e4da86814bf560346c7571e48087 |
|
06-Mar-2014 |
Eric Laurent <elaurent@google.com> |
move audio policy service to a separate library Change-Id: Ibc3ef07aa9860b7fd4f9aaff27b0dbe0dcbf1cbf
/frameworks/av/services/audiopolicy/AudioPolicyService.cpp
|