summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy
Commit message (Collapse)AuthorAgeFilesLines
* audio policy: fix transition from VoIP to voice call on USBEric Laurent2015-10-151-0/+23
| | | | | | | | | 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
* audio policy: fix USB mic selection for VoIPEric Laurent2015-10-151-2/+8
| | | | | | | | | 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
* Merge "audio policy: fix preemtible capture race" into mnc-dr-devEric Laurent2015-09-243-3/+41
|\
| * audio policy: fix preemtible capture raceEric Laurent2015-09-223-3/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | 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
* AudioPolicy: don't always change ACCESSIBILITY volumeJean-Michel Trivi2015-09-141-1/+3
| | | | | | | | | Only change the volume for AUDIO_STREAM_ACCESSIBILITY when changing the media volume. Bug 23366575 Change-Id: Ic42c726ec4d47615c20500c20e4d43cef159b3c6
* Force fixed volume for TTS streamEric Laurent2015-09-111-4/+4
| | | | | | | | Always play Transmitted Through Speaker stream at max volume instead of tracking media stream volume. Bug: 23729461. Change-Id: I61021f59617bb851a4cd7da80924e587029e96a3
* Merge "audio policy: refine TTS stream mute management" into mnc-dr-devEric Laurent2015-08-132-2/+16
|\
| * audio policy: refine TTS stream mute managementEric Laurent2015-08-122-2/+16
| | | | | | | | | | | | | | | | Do not mute the TTS stream if a dedicated output for TTS is available. Bug: 22100304. Change-Id: Ic126100ce1144f765bc0ae42c8ea87fa47cfb822
* | audio policy: protect capture from telephony RX path.Eric Laurent2015-08-073-0/+5
|/ | | | | | | | Add permission check if the capture device selected is telephony RX path. Bug: 23017158. Change-Id: Iaa34d836e6cf46b7cbbf2483fcd4306dcd27ce90
* audio policy: populate attributes for attached capture devicesEric Laurent2015-08-061-2/+6
| | | | | | | | | | 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
* Prevent notifications from muting accessibility promptsJean-Michel Trivi2015-07-211-6/+6
| | | | | | | | | | | | | | | 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
* Update Policy PFW plugin makefile for PFW release 2.6.0François Gaffie2015-07-151-6/+1
| | | | | | | | | | | This patch updates the Policy PFW plugin with latest change within PFW. It makes use of the dynamic xmlserializer library and does not need anymore to link against xmlserializer library dependencies. Change-Id: Ic7b912929a69d3906a34999c1ae25ddb9ac800e5 Signed-off-by: François Gaffie <francois.gaffie@intel.com> Bug 246391
* audio: several fixes in audio routing callbacksEric Laurent2015-07-102-4/+10
| | | | | | | | | | | | | | | | | | | | | | - 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
* audio policy: session route: move SessionRoute to commonFrançois Gaffie2015-07-095-179/+244
| | | | | | | | | | | | 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>
* audio policy: add support for device combo with speaker safeEric Laurent2015-07-072-4/+12
| | | | | | | | | | combo devices with AUDIO_DEVICE_OUT_SPEAKER_SAFE were not supported by audio policy manager causing selection of speaker+headphone when spekaer_safe+headphone would be the right selection. Bug: 21537010. Change-Id: I9865352559c9d32c6754ad3d2b84bddfe2dc8aac
* Merge "audio policy: fix regression in incall notification management" into ↵Eric Laurent2015-07-061-2/+5
|\ | | | | | | mnc-dev
| * audio policy: fix regression in incall notification managementEric Laurent2015-07-021-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge "audio: add definitions for devices connected over IP" into mnc-devEric Laurent2015-07-061-0/+4
|\ \
| * | audio: add definitions for devices connected over IPEric Laurent2015-07-061-0/+4
| |/ | | | | | | | | Bug: 22068684. Change-Id: Idde0eaf7121d2e43f32eee3e6b10e99d8cff4912
* | Fix build warningGlenn Kasten2015-07-061-0/+1
| | | | | | | | Change-Id: I876edc37fb2093ee13c876c2af5c46512763154d
* | audiopolicy: Update flag enum tables for the new flagsRavi Kumar Alamanda2015-07-021-0/+4
|/ | | | | | | | | | Without an entry in sOutputFlagNameToEnumTable or sInputFlagNameToEnumTable, a profile with specific output/input flag in the audio_policy.conf will not be detected by AudioPolicyManager. Bug: 19230391 Change-Id: I94bb3594e2eb8b57747b474a253da3551263c59a
* Merge "reduce number of binder calls from mediaserver" into mnc-devEric Laurent2015-06-272-3/+25
|\
| * 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
* | audio policy: fix several device descriptor issues.Eric Laurent2015-06-255-20/+20
|/ | | | | | | | | | | | - 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
* Merge "Fixing no rates, chans & encodings on input devices for device enum ↵Paul McLean2015-06-192-7/+20
|\ | | | | | | API. Filtering digital attributes for non-digital audio devices." into mnc-dev
| * Fixing no rates, chans & encodings on input devices for device enum API.Paul McLean2015-06-192-7/+20
| | | | | | | | | | | | | | | | | | Filtering digital attributes for non-digital audio devices. Bug: 21876072 21903975 Change-Id: Ia5c81a8160f4b4ebf5941dd0c5dfb68d01699ca6
* | Merge "Bug fix on Engine Configurable" into mnc-devEric Laurent2015-06-184-109/+38
|\ \
| * | Bug fix on Engine ConfigurableFrançois Gaffie2015-06-184-109/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes a couple of issue within audio policy engine configurable -valgrind error detected within the parsing of the configuration file -configuration file typos -start of the PFW delayed to the init in order to wait the full construction of the engine object -wrong specialization of template functions. -broadcast volume min / max init to stream collection of manager & PFW Change-Id: I08823ab4040c92b719747c60cc3fa5c8b5f172ac Signed-off-by: François Gaffie <francois.gaffie@intel.com>
* | | Merge "Add a configurable version of the policy engine based on PFW" into ↵Eric Laurent2015-06-1863-2/+20495
|\ \ \ | |/ / | | | | | | mnc-dev
| * | Add a configurable version of the policy engine based on PFWFrançois Gaffie2015-06-1863-2/+20495
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a configurable version of the policy engine based on the parameter framework. This configurable engine shall be activated with a flag USE_CONFIGURABLE_AUDIO_POLICY within BoardConfig.mk This patch provides the generic configuration as an example. This configuration provides the same user experience as the default policy engine. - Fix M Issue on configurable policy engine version. - Remove the "empty static lib include trick" hack The code was using a hack to import headers only through an empty lib. This trick was used not only by the PFW and its plugin but also internally with policy. This patch removes this hack and either links againts the real libraries if exist or point on the path of the header. However, since header directories are not recursively detected on Andoid, we need to manually add all necessary libraries. (for example libicuuc needed by libxml2) - let the build system decide which compiler and which stl is to be used - Disable by default Audio Policy Settings XML file generation at compilation time In order not to depend on python tool for the configurable policy example, this patch adds the generated Settings XML file and disables the generation from .pfw files at compile time. If the user wishes to regenerate it, he may use the pfw_rebuild_settings option. - Fix Clang issues within Configurable Audio Policy Fix compilation issues revealed when switching to CLANG compiler within the configurable version of policy engine. Change-Id: I3edc26db94c0bf8a76430ab8081bae52e9193705 Signed-off-by: François Gaffie <francois.gaffie@intel.com>
* | Merge "audiopolicy: Add AUDIO_OUTPUT_FLAG_TTS to flags enum table" into mnc-devEric Laurent2015-06-181-0/+1
|\ \ | |/ |/|
| * audiopolicy: Add AUDIO_OUTPUT_FLAG_TTS to flags enum tableRavi Kumar Alamanda2015-06-181-0/+1
| | | | | | | | | | | | | | | | Without an entry in sOutputFlagNameToEnumTable, a profile with specific output flag in the audio_policy.conf will not be detected by AudioPolicyManager. Change-Id: Id242e6819aab1a67d72c564f3cc39af3de8e1ef7
* | Merge "audio policy: fix explicit routing and accessibility" into mnc-devEric Laurent2015-06-181-1/+8
|\ \ | |/ |/|
| * audio policy: fix explicit routing and accessibilityEric Laurent2015-06-111-1/+8
| | | | | | | | | | | | | | | | | | 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
* | Merge "audiopolicy: use deep buffer output by default for music streams" ↵Andy Hung2015-06-111-0/+5
|\ \ | |/ |/| | | into mnc-dev
| * audiopolicy: use deep buffer output by default for music streamsRavi Kumar Alamanda2015-06-111-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge "audio policy: route media to BT SCO in call" into mnc-devEric Laurent2015-06-101-0/+4
|\ \ | |/ |/|
| * audio policy: route media to BT SCO in callEric Laurent2015-06-081-0/+4
| | | | | | | | | | | | | | | | | | Allow media (and Navigation instructions) to be routed to BT SCO in call. Bug: 18986190. Change-Id: I1fa4decfbf035623fdcc8681b53cbd61e1d5f933
* | audio policy: fix very verbose log build.Eric Laurent2015-06-081-1/+2
|/ | | | Change-Id: I94a69207059d8010ded14bce5d6e39c3f3074649
* Add property to control audio offload with video contentAndy Hung2015-06-011-2/+3
| | | | | | | Property audio.offload.video normally disabled (set to 1 to enable) Bug: 21198655 Change-Id: Ib1c457b1e3950f18d91b855424aa80bd23c723b0
* Merge "audio policy: add checks on primary output" into mnc-devEric Laurent2015-05-222-30/+47
|\
| * audio policy: add checks on primary outputEric Laurent2015-05-222-30/+47
| | | | | | | | | | | | | | | | | | 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
* | audio policy: fix direct output profile selectionEric Laurent2015-05-191-12/+44
|/ | | | | | | | | | | | | | | | | | 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
* Merge "Update sampling rate to 192kHz for devices" into mnc-devAndy Hung2015-05-122-1/+5
|\
| * Update sampling rate to 192kHz for devicesAndy Hung2015-05-122-1/+5
| | | | | | | | Change-Id: I0a83206be51d7ae18ccf85b94b2127356307be69
* | Merge "Support channel index masks for output hal" into mnc-devAndy Hung2015-05-121-0/+6
|\ \ | |/
| * Support channel index masks for output halAndy Hung2015-05-061-0/+6
| | | | | | | | Change-Id: Ib3e61ff6faf91c71b85102b5d77f90f124c08220
* | audiopolicy: Use AUDIO_OUTPUT_FLAG_TTS for TTS streamRavi Kumar Alamanda2015-05-111-0/+3
| | | | | | | | | | | | | | | | 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