| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Change-Id: Ie8f9d42fc061f6d558f23b98414e04eb3d14b376
|
|
|
|
|
|
|
|
|
|
| |
Add "device name" member to AudioPort.
Moved unique device ID from DevicePort to AudioPort.
Straighten out confusion between "name" and "address"
Created string constants for Intent "extra" data keys.
Combine card/address data into "address" at sender.Add additional info to AudioPort for enum/selection API.
Change-Id: I1be308e12b09cd0ead9a3e9fbc9c385462299fb5
|
|
|
|
| |
Change-Id: I6c8fe626a3825fa9e139319656d682a57b887c97
|
|
|
|
|
|
|
|
|
| |
Add binder calls to register and unregister dynamic mixes
to AudioPolicyManager.
Bug: 16009464.
Change-Id: I4ef38166d0cfc88c984970969380d0cd6eb083ac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added AudioRecord constructor with audio attributes.
Replaced AudioPolicymanager::getInput() by getInputForAttr().
No new functionality for now.
Also:
- Fixed warnings in AudioPolicyManager
- Allocate audio session ID before calling getOutputForAttr() in
AudioTrack.
Bug: 16006090.
Change-Id: I15df21e4411db688e3096dd801cf579d76d81711
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
Fix cross deadlock with AudioFlinger by adding
a dedicated mutex to protect access to cached output list
and parameters.
Bug: 18410728.
Change-Id: Ia31283b1972d8865a46e84e63695173c187eb781
|
|
|
|
|
|
|
|
| |
It is safer to query the output sampling rate once the output
have been acquired by calling getOutputForAttr().
Bug: 16009464.
Change-Id: Ib561facd19fba5359a6b837d75f1a1cd2dc51b29
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
1. Fix race condition in handling of binder death notifications.
AudioSystem has a mixture of APIs for both ordinary app clients,
and the AudioFlinger and AudioPolicy services within mediaserver.
Due to this mix of uses, it is possible for there to be "surprising"
sequences of calls on the call stack.
Previously, we used a single mutex for all global variables, but
this caused a deadlock. To avoid the deadlock, we unlocked the mutex
during the critical sequence of calls. But this was a a
crucial place where it should have stayed locked;
see Change-Id I315c1c5066f62b05e1c13b04fae1272b5fbce977
Now we use separate mutexes for the AudioFlinger, AudioPolicy, and audio port
related global variables. This allows us to correctly hold each mutex
throughout the atomic region, even when AudioFlinger calls AudioPolicy
via AudioSystem, or vice-versa.
2. AudioSystem::clearAudioConfigCache now clears the IAudioFlinger reference.
3. Make AudioSystem::get_audio_policy_service more like get_audio_flinger.
Bug: 18242291
Change-Id: I9761443d8337df5bf66d4ca2316a9fd0bd11be94
|
|/
|
|
|
| |
Bug: 18067208.
Change-Id: I9bbf9088485f5162c765ca504d9b784b956234c6
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Bug: 17109761
Change-Id: I315c1c5066f62b05e1c13b04fae1272b5fbce977
|
|
|
|
|
|
|
|
|
|
|
| |
Add a method to query from the audio HAL the HW sync
source used for a given audio session.
Modify audio policy to select a direct output with HW sync
when requested.
Bug: 16132368.
Change-Id: I03038f9188f2d389f8a5fd76a671854013a4513e
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Audio policy:
- Added active capture indication to sound trigger service:
recognition stops if concurrent capture is not supported.
- Added generation of reserved I/O handle and session ID for
utterance capture.
Sound trigger service
- Added sound model update callback handling.
- Added service state callback
- Simplified callback shared memory allocation.
Bug: 12378680.
Change-Id: Ib0292c2733e6df90fdae480633dd9953d0016ef1
|
|
|
|
|
|
|
|
| |
Indicate the audio session ID when calling getInput(),
startInput(), stopInput(), releaseInput().
Bug: 12378680.
Change-Id: I763793752f93e2f4e1445a5ab217c895af011038
|
|
|
|
|
|
|
|
|
| |
Rename AudioSystem::newAudioSessionId() to
AudioSystem::newAudioUniqueId() as it can be used
also for I/O handles.
Bug: 12378680.
Change-Id: I611ea3b5eb57a4b0774437f477ee87dc4ccc2cc2
|
|
|
|
| |
Change-Id: I9f37be05f8dc7b85a8827a94e76ca0f45453e170
|
|
|
|
| |
Change-Id: I600f062fa7148c01851023c1240c39939e648002
|
|
|
|
|
|
|
|
|
|
| |
In AudioPolicyManager, support querying an output
or playback strategy for audio attributes,
instead of a stream type,
In AudioTrack creation, use the output returned
for the track's attributes.
Change-Id: I0fef05845ba676404775e2e338c10e6a96237268
|
|
|
|
|
|
|
| |
The audio stream type is not used in the getSampleRate() and
getFrameCount() methods.
Change-Id: I3d065ae272bd039204cd323cdab9b60460034f2d
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: I0a62e5416edc41c3a0e816275085ab18a23066f1
|
|\ |
|
| |
| |
| |
| | |
Change-Id: Id6b1aa17558eb73e17f22b8eab6cd02e00a96dff
|
|/
|
|
| |
Change-Id: I5776313b9b49072cd666d28880f0d07cc73f827b
|
|\ |
|
| |
| |
| |
| | |
Change-Id: I61f882c5e7c949bf00d3bfc745ebf3b5e1c42a58
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| | |
The I/O handle is never equal to AUDIO_IO_HANDLE_NONE,
so the stream type is not needed.
Change-Id: I1ab134a2fa379d6dd0b6167345a856a192d478f9
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Constructor for AudioFlinger::mAudioHwDevs was missing, and so
AudioFlinger::findSuitableHwDev_l() could return an undefined pointer
if a non-0 module wasn't found.
A KeyedVector of Plain Old Data (POD) element type must specify the
default value in the constructor, or else the default will be undefined.
Minor:
- Parameter had wrong type in constructor for AudioSystem::gOutputs.
- Remove obsolete AudioSystem::gStreamOutputMap.
Change-Id: I9841493e018440e559d8b8b0e4e748ba2b2d365b
|
|\ \ |
|
| |/
| |
| |
| | |
Change-Id: Ie7346e93436ddc215cad7d16be555dcb6c277d54
|
|/
|
|
| |
Change-Id: Iaa168722f362c36bdfa87fe20dc0a59b43cf1ca3
|
|
|
|
|
|
| |
so they can be properly freed.
Change-Id: I6f389035bc29e74e7c367c1c6d0252b180f666b3
|
|\
| |
| |
| | |
Change-Id: I7b1cc71057b2bd4f771e7bcf508a8c3abd6017ce
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Contains the necessary changes to make frameworks/av build and work
on a 64-bit machine.
Signed-off-by: Craig Barber <craig.barber@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Change-Id: I725feaae50ed8eee25ca2c947cf15aee1f395c43
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Change-Id: I1c611d1037685d52ccc84efe0fccd6413ec938e9
|
|/ /
| |
| |
| | |
Change-Id: I9add0872030a26933f6b6dad1be299154611cc56
|
| |
| |
| |
| | |
Change-Id: I665ba3358dd9502f0adec70d486e7bf8a2e1b0fe
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fixed bug that if the binder call failed (for example if the
IAudioFlinger binder is dead), then getInputFramesLost was returning
garbage. Now it correctly returns zero, which is the error value for
this method.
The type declarations for getInputFramesLost were inconsistent:
a mixture of unsigned int, size_t, and uint32_t. Now it returns uint32_t
everywhere, which is what the underlying HAL API returns.
Added a FIXME about the side effect behavior. This will need review
for multi-client.
Change-Id: Ifa2e117a87dbd0c1f2c892a31d1c3dd919bf1a0a
|
|\ \ \
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
and AudioPolicyService::getOutputForEffect.
The conventional error value for audio_io_handle_t is 0,
not a status_t cast to audio_io_handle_t.
Change-Id: I34b3fd1a50f3fa1cbf39f32eea1911112a4e094a
|
|\ \ \ |
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously, if the IAudioFlinger::getInputBufferSize failed,
it would return NO_ERROR but a zero buffer size value, which could
confuse the caller. Now it returns BAD_VALUE in this case.
Also it would still cache the zero buffer size. Now it does
not cache on failure.
Removed over-initialization of the cache globals.
Change-Id: I6835fcb56fe52535e018fc8c0c242115221b5d85
|
|/ /
| |
| |
| |
| |
| | |
Don't return zero sample rate or frame count without an error.
Change-Id: I052d841080ed33e4f081ae9825a2f33dff444fb9
|