History log of /frameworks/av/services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
bcbcb1bdda4f1970830fa4924e3a5f24171ae005 13-Dec-2017 Mikhail Naganov <mnaganov@google.com> audiopolicy: Add more tests, fix issues found

Added tests that ensure correct initialization of APM.

Fixed issues:

-- UB in VolumeCurvesForStream::volIndexToDb due to not
checking that the pointer is non-null;

-- AudioInputDescriptor::open and SwAudioOutputDescriptor::open
were not checking that the returned IO handle is valid,
this was causing an infinite loop in
AudioPolicyManager::selectOutputForMusicEffects, added an
assertion.

-- Memory leak of VolumeCurves collection in APM.

Test: audiopolicy_tests
Change-Id: Ia4ecca1dd03b74d7f93720f042da05d5a0c74a6b
/frameworks/av/services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.cpp
733ce945741b1fc12cee92d8133c3136b4e6e0e0 07-Dec-2017 Eric Laurent <elaurent@google.com> audio policy: fix HAL stream activity ref counting

commit f05fc906 did not take into account the specificities of duplicated
outputs causing a crash when accessing the profile (null for duplicated outputs)
and not counting activity resulting from duplicated output activity.
Also account for HW source activity when connected to an output mix.

Bug: 70319466
Test: CTS tests for AudioTrack and AudioRecord
Test: audio smoke tests

Change-Id: Id0364170794302e42212a90e1b40e28c1e7193fe
/frameworks/av/services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.cpp
447d53631b7560eace6016b2711a75533339cbcc 08-Dec-2017 Eric Laurent <elaurent@google.com> Revert "Revert "audio policy: fix regression in A2DP playback""

This reverts commit 460451e5d7b9813926fe8fc17283e77b63adaee7.
/frameworks/av/services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.cpp
3974e3b22856ef35dd73760056ff38b7a4062176 08-Dec-2017 Eric Laurent <elaurent@google.com> Revert "Revert "audio policy: add open and active count for IO profiles""

This reverts commit 7b0e95327267f08e36b38fdd8fb2624e251b8e97.
/frameworks/av/services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.cpp
53b810ead5b726994fe6a28c6fa955e7b8799aaa 11-Dec-2017 Eric Laurent <elaurent@google.com> audio policy: fix device address passed when opening HAL streams

Commit fe231127 caused a regression where the device address is
not passed properly to audio HAL by openInputStream() or
openOutputStream(). The address must be read from available
device descriptors, not supported devices in profiles which do not
have the current device address for removable devices.

Bug: 70321528
Test: audio smoke tests,CTS AudioRecordTest
Change-Id: I83211a31f86391b80c3c244b436a2e36923ccea0
/frameworks/av/services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.cpp
7b0e95327267f08e36b38fdd8fb2624e251b8e97 07-Dec-2017 Eric Laurent <elaurent@google.com> Revert "audio policy: add open and active count for IO profiles"

Bug: 70319466

This reverts commit f05fc9061254a3329bf0a3b40e27cac87b51b4cc.
/frameworks/av/services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.cpp
460451e5d7b9813926fe8fc17283e77b63adaee7 07-Dec-2017 Eric Laurent <elaurent@google.com> Revert "audio policy: fix regression in A2DP playback"

Bug: 70319466

This reverts commit 995ba712ed77e36129485f5ac811cf328d0a27f6.
/frameworks/av/services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.cpp
995ba712ed77e36129485f5ac811cf328d0a27f6 06-Dec-2017 Eric Laurent <elaurent@google.com> audio policy: fix regression in A2DP playback

commit f05fc906 introduced a regression preventing playback over A2DP
to resume after the second time an A2DP device is connected.

Bug: 70245910
Test: Audio smoke test, CTS test for AudioTrack.
Change-Id: Ic6b5da96debf62be08ae12efec27ad36854fe3c5
/frameworks/av/services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.cpp
f05fc9061254a3329bf0a3b40e27cac87b51b4cc 21-Nov-2017 Eric Laurent <elaurent@google.com> audio policy: add open and active count for IO profiles

Remove the hardcoded limit of one open output stream per IO profile
and add a max open count per IO profile.
Same thing for maximum number of active input streams per IO profile.

Now both the maximum number of opened streams and active streams for
a given profile is stored in that profile.

For now only defaults are set corresponding to legacy behavior,
but these values will be loaded form the audio policy configuration file.

Test: AudioTrack and AudioRecord CTS tests

Change-Id: I5ebcc7f8a06b3f0a52815d241c561bb65e036026
/frameworks/av/services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.cpp
fe23112742eeb6199c3aa1f3dfcf800fc2aa0e26 18-Nov-2017 Eric Laurent <elaurent@google.com> audio policy: refactor output and input opening

Refactor the way input and output streams are open so that common
logic is centralized in AudioOutputDescriptor and AudioInputDescriptor
classes.

This is in preparation of adding reference counting for ouputs and inputs
opened for a given profile.

Test: Manual
Change-Id: Id806e23077eb41f6398400ab40aeaa694c7d5603
/frameworks/av/services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.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/common/managerdefinitions/src/AudioInputDescriptor.cpp
f7c50104b07091880019f4ecc70d977961148268 01-Oct-2016 Eric Laurent <elaurent@google.com> resolve merge conflicts of a3de77f to master

Change-Id: Idb3346465ee7f47d95fd24e2dafdd66f3759c1be
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/common/managerdefinitions/src/AudioInputDescriptor.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/common/managerdefinitions/src/AudioInputDescriptor.cpp
d51b1b247b120c7e49851d923f3c5aa0aa19a787 27-Feb-2016 Jean-Michel Trivi <jmtrivi@google.com> resolve merge conflicts of 1e9a65df13 to master

Change-Id: I7c255d7813805b5ffb0d8e5ecd6fc11ee0b80c8a
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/common/managerdefinitions/src/AudioInputDescriptor.cpp
c8d25af1c3c32b7671dbeb967fb86f24fa5fa313 24-Feb-2016 Jean-Michel Trivi <jmtrivi@google.com> Merge "Send client / device format in recording callback" into nyc-dev am: f70077e435
am: bce5dfdac0

* commit 'bce5dfdac0e90701f53e4f8a2c0f5a3c44a0a4ac':
Send client / device format in recording callback
7281aa9810b33eff47b00104db26c97c77931611 18-Feb-2016 Jean-Michel Trivi <jmtrivi@google.com> Send client / device format in recording callback

Bug 26798796

Change-Id: Ib4f64159c8371d87da49a8f0cad9317a87d843c4
/frameworks/av/services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.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/common/managerdefinitions/src/AudioInputDescriptor.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/common/managerdefinitions/src/AudioInputDescriptor.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/common/managerdefinitions/src/AudioInputDescriptor.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/common/managerdefinitions/src/AudioInputDescriptor.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/common/managerdefinitions/src/AudioInputDescriptor.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/common/managerdefinitions/src/AudioInputDescriptor.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/common/managerdefinitions/src/AudioInputDescriptor.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/common/managerdefinitions/src/AudioInputDescriptor.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/common/managerdefinitions/src/AudioInputDescriptor.cpp
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/common/managerdefinitions/src/AudioInputDescriptor.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/common/managerdefinitions/src/AudioInputDescriptor.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/common/managerdefinitions/src/AudioInputDescriptor.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/common/managerdefinitions/src/AudioInputDescriptor.cpp