summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy/service
Commit message (Collapse)AuthorAgeFilesLines
* audiopolicy: squashed support for pre-kitkat audio blobsc4572016-03-102-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | Squash of the following: commit 40c41a743a4345ad26b6eab41755c5b474f75853 Author: chrmhoffmann <chrmhoffmann@gmail.com> Date: Sat Nov 29 19:32:27 2014 +0100 pre kitkat audio legacy policy fix for hotword (ok google) Change-Id: I5bb90fb90f373461a98609226a5cea50ac5266e9 commit d47b306954b96142323c79b976edeb3eaa3b46dd Author: chrmhoffmann <chrmhoffmann@gmail.com> Date: Sun Nov 23 18:22:35 2014 +0100 commit d47b306954b96142323c79b976edeb3eaa3b46dd Author: chrmhoffmann <chrmhoffmann@gmail.com> Date: Sun Nov 23 18:22:35 2014 +0100 pre-kitkat audio policy blobs re-activated. Change-Id: Idfcb03d0a4aa0a099bf5a17b7bf592ab402e3255 Change-Id: Iae65c6ccb6dcb120a6fc20978b8a69e6af39a51a
* audiopolicy: Defer release of output session effectsSteve Kondik2016-03-084-2/+96
| | | | | | | | | | | | | | * Some effects modules are racy and don't tolerate being destroyed and immediately resurrected on the same session. This is the common case when switching tracks, and the use of default output effects makes the problem even worse. Certain apps which handle gapless in a sloppy way are also to blame. * Instead of immediately nuking the entire descriptor with the stream, just decrease the refcount and defer it for 10 seconds. If it needs resurrected, the refcount will be increased and the delayed release command will not shoot it in the face. Change-Id: I068dd72c4180023a74eb9ccbe8a180f6f0683dbf
* audiopolicy: Add notification when default effects are updatedSteve Kondik2016-03-085-6/+122
| | | | | | | | | | | | | | | | | | | * In M, we now have the ability to define a default set of audio effect on a per-stream basis. This allows us to get around the problem of apps not sending the control intents so we can implement smart global effects for specific media types. * We still need a session id in order to get a handle and configure them from an app like AudioFX, so we'll need to add some plumbing in order to send an event to interested applications. * This patch implements the native side of this. The Java layer will call down thru AudioSystem and register a callback which will be invoked by the audio policy when default effects are updated on a stream. This callback will receive both the stream type as well as the session id. * Attaching this listener requires that the caller hold the MODIFY_AUDIO_ROUTING permission. Change-Id: I142b15f2585ffca6a953c3e828e2a7c07b24f56c
* av: Add support for loading audio_effects_vendor.confSteve Kondik2016-01-121-1/+3
| | | | | | | | | * In case a device has a /vendor partition which cannot be modified, this allows us to short-circuit the audio_effects.conf file which might be placed there with one of our own which lives on /system. Change-Id: Ief87bd4cfba2c3188b0dff122d91f773b7f3d92d
* audiopolicy: Handle legacy startOutput on output command thread tooXuefer2016-01-061-1/+15
| | | | | | | | * Fixes the build for legacy audio policy * Broken by: de3b1c01146d2103f6bf56e2659a9c650734945a Change-Id: I990ce609b3da81c462b35c7dd3f7b11d189e2d2e Signed-off-by: Xuefer <xuefer@gmail.com>
* audiopolicy: Handle startOutput on output command threadHaynes Mathew George2015-12-233-0/+57
| | | | | | | | Handle startOutput on AudioPolicyService output command thread to serialize with concurrent releaseOutput/stopOutput calls. CRs-Fixed: 944129 Change-Id: Ie333c736750c7dfb31d3036d79dfff13cd0486fc
* AudioPolicyService: Synchronize access to AudioPolicyManagerHaynes Mathew George2015-11-071-0/+1
| | | | | | | Synchronize access to APM when getDevicesForStream is called on APM. Change-Id: I2ba6922341f035375270b02000ef5a7e078f6b5a
* Merge tag 'android-6.0.0_r26' into cm-13.0Ricardo Cerqueira2015-11-052-9/+21
|\ | | | | | | | | | | Android 6.0.0 release 26 Change-Id: I8a57007bf6efcd8b95c3cebf5e0444345bdd4cda
| * AudioPolicyService: fix race in AudioCommandThreadEric Laurent2015-09-231-8/+16
| | | | | | | | | | | | | | | | | | | | | | Fixe race condition in AudioCommandThread::threadLoop() where a command can be inserted in first position in the queue after the sleep time has been calculated causing a longer delay than expected. Also fix a failure to hold a wake lock while commands are still in the queue. Bug: 22707905. Change-Id: I813626986677bf00106acb37ee20d3dd75d5cf33
| * audio policy: bind setMode() and setPhoneState() operationsEric Laurent2015-09-161-1/+5
| | | | | | | | | | | | | | | | | | | | No routing operation should be allowed between setMode() and setPhoneState() when starting a call as the audio HAL relies on a precise sequence of mode change and routing change to select the initial audio device for the call. Bug: 24083591. Change-Id: I2d5ef62c11cf7aedc2ec7ca5e5fadd7ac875afbc
* | Stagefright: Add Checks for allocationsSathishKumar Mani2015-10-062-0/+4
| | | | | | | | | | | | | | Warn allocation failures explicitly rather than crash trying to access unallocated memory Change-Id: Ie86c3ac130917e1f4030eb8207ac8350cba7711d
* | audiopolicy: port existing fixes to AudioPolicyManagerSatya Krishna Pindiproli2015-10-061-4/+6
|/ | | | | | | | | | | | | | | | | | This is a squashed commit of the following fixes in AudioPolicyManager. Only some parts of the fixes have been ported as the custom audio policy has the other required changes. audiopolicy: Fix MT call delay Change-Id: I790479eaad9d2d6fd4204cc4cb7698761c30f7cf audiopolicy: support extended feature in audiopolicymanager Change-Id: I1925339b591cd29f11a71c287a2e53c0627e9e62 audiopolicy: additional change for extended feature Change-Id: I9bad6a294ddd7aee72f6f6a314666b892b730c8e Change-Id: I7738d4b0ac11ee6d93bfd67e2553eae8518ff719
* audio policy: protect capture from telephony RX path.Eric Laurent2015-08-071-0/+2
| | | | | | | | Add permission check if the capture device selected is telephony RX path. Bug: 23017158. Change-Id: Iaa34d836e6cf46b7cbbf2483fcd4306dcd27ce90
* Fix build warningGlenn Kasten2015-07-061-0/+1
| | | | Change-Id: I876edc37fb2093ee13c876c2af5c46512763154d
* reduce number of binder calls from mediaserverEric Laurent2015-06-262-3/+25
| | | | | | | | | | | | | | | Reduce the number of audio port, audio patch and IO config changed binder calls from mediaserver to client processes: - Do not call IO config changed callback if selected device is the same as previously selected one on a given audio flinger playback or capture thread. - Do not call the audio port or audo patch list update callback on a client if this client as no listener registered. Bug: 22045560. Change-Id: If780e105404de79b7cb5c80c27b793ceb6b1c423
* Merge "audio policy: session routes continued." into mnc-devEric Laurent2015-04-304-4/+29
|\
| * audio policy: session routes continued.Eric Laurent2015-04-304-4/+29
| | | | | | | | | | | | | | | | | | | | | | - 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
* | Respect the record audio app op - mediaSvet Ganov2015-04-291-3/+3
|/ | | | Change-Id: I3a97977b6e9a09355e2008f780d22d480fb7308b
* Explicit routing in AudioRecordPaul McLean2015-04-283-8/+11
| | | | Change-Id: I9cc5d54883a3e5c75d553fabb619fc8e49f4f9e5
* audio policy: remove permission check for ports and patches gettersEric Laurent2015-04-201-9/+0
| | | | | | | Remove check for MODIFY_AUDIO_ROUTING permission in audio policy methods just getting devices or patches state. Change-Id: Id3bafc5ad0d0bd96210822243139898e314327d8
* audio policy: add binder calls for audio source controlEric Laurent2015-04-153-0/+39
| | | | | | | Add binder methods to IAudioPolicyService to control activity of external audio sources (e.g FM tuner). Change-Id: I2008308a6a996baeae502b68a790d87281efe2ff
* Merge "AudioPolicyManager: notification of dynamic policy mix activity"Jean-Michel Trivi2015-04-153-2/+76
|\
| * AudioPolicyManager: notification of dynamic policy mix activityJean-Michel Trivi2015-04-143-2/+76
| | | | | | | | | | | | | | | | | | | | Implement non-stream type specific ref counting in output descriptors to keep track of mix activity. Notify audio policy client of mix activity changes. Bug 20226914 Change-Id: Iec939cb640c58056f88947b611d23b4bb6d8a11b
* | audio polciy: remove FM audio capture permission.Eric Laurent2015-04-132-4/+2
|/ | | | Change-Id: I2607d89b0bd87cdd2f4084dfdb55135509a824d5
* Adding explicit routing API to AudioTrackPaul McLean2015-04-083-1/+4
| | | | Change-Id: I40c048c7644c46f4e4f7103875206c0785c4b1dc
* Make sure waitRelative is called when waitTime != INT64_MAXWally Yau2015-03-241-1/+1
| | | | | | | | b/19870971 (cherry picked from commit c600af1459c455583e071e653f0d998032aa423e) Change-Id: Ic6bb54067d76c96ff6fc45431dc2d72db9f0a3a8
* Refactor AudioPolicyManagerJean-Michel Trivi2015-02-188-0/+4269
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