022b9953153bdb1984f0abb17d21ef8c1826ad49 |
|
05-Jan-2017 |
Mikhail Naganov <mnaganov@google.com> |
Re-implement HIDL effect processing using FMQ and IMemory Result: no hwbinder calls due music processing. Test: make, use Play Music with effects, check traces Bug: 30222631 Change-Id: I06d0e94e603688874b31824427f3b0878b5f7c8e
/frameworks/av/services/audioflinger/Effects.h
|
f10c709fda87d971a206eebd5df47356e7f2aa39 |
|
07-Dec-2016 |
Eric Laurent <elaurent@google.com> |
audio policy: remove effects before releasing input modify releaseInput() implementation so that effects added by policy rules are removed before closing the input stream to avoid failure to destroy the effect chain make sure that orphan effect chains are checked when an EffectHandle is disconnected after thread destruction. Test: make and run Hangouts Bug: 32707507 Change-Id: I7833b4c5e42c0057a4477eb4485a20dd26ca2f90
/frameworks/av/services/audioflinger/Effects.h
|
7cdef381717e3a96acc6c5786c88bf1eaf03d2f2 |
|
05-Dec-2016 |
Eric Laurent <elaurent@google.com> |
Merge "audioflinger: update comment on mutex locking order"
|
3bc859bfba96815315c05469e9da07adfc0aa8d5 |
|
05-Dec-2016 |
Eric Laurent <elaurent@google.com> |
audioflinger: update comment on mutex locking order Test: make Bug: 32707507 Change-Id: Ief55cb740373a97c59de470738e3c36fcde03aae
/frameworks/av/services/audioflinger/Effects.h
|
0d5a2ed0a05a2bf337c68edb54f24c60e18032c1 |
|
02-Dec-2016 |
Eric Laurent <elaurent@google.com> |
improve audio effect framwework thread safety - Reorganize handle effect creation code to make sure the effect engine is created with both thread and effect chain mutex held. - Reorganize handle disconnect code to make sure the effect engine is released with both thread and effect chain mutex held. - Protect IEffect interface methods in EffectHande with a Mutex. - Only pin effect if the session was acquired first. - Do not use strong pointer to EffectModule in EffectHandles: only the EffectChain has a single strong reference to the EffectModule. Test: Tested with EffectTest app. Regression tests in main audio use cases. Bug: 32707507 Change-Id: Ia1098cba2cd32cc2d1c9dfdff4adc2388dfed80e
/frameworks/av/services/audioflinger/Effects.h
|
473de569eed6438ee3eea955efe309900122f051 |
|
12-Oct-2016 |
Andy Hung <hunga@google.com> |
AudioFlinger: Improve effect compatibility with RAW and FAST am: d3bb0adfe4 am: 4a7ef5c1d7 am: 5bc5b90bbe Change-Id: I681d68a632a527983972df160ba5dab1c50967cc
|
5bc5b90bbe3eae27c6de5a556eda531d4430dfab |
|
12-Oct-2016 |
Andy Hung <hunga@google.com> |
AudioFlinger: Improve effect compatibility with RAW and FAST am: d3bb0adfe4 am: 4a7ef5c1d7 Change-Id: Ia7d516d957b0582ec6776d4306019e6f2dfc10c0
|
d3bb0adfe40e60bb94e9a87e8d5bffb4ea6863b0 |
|
12-Oct-2016 |
Andy Hung <hunga@google.com> |
AudioFlinger: Improve effect compatibility with RAW and FAST Effects without process function now are allowed with RAW and FAST playback and record tracks. Bug: 32053844 Change-Id: I58064eb2c357043c2da1a781a20988f42570d97e
/frameworks/av/services/audioflinger/Effects.h
|
db0fd69d5dd2cb70009884458d5c78c9e7256c15 |
|
16-Sep-2016 |
Eric Laurent <elaurent@google.com> |
Merge commit '77b44035440f4dfc1c8d29da7d800f111ebe6376' into fix_merge Change-Id: I0f1d2b605a8d90f86f8fa27cbf971018981c6c38
|
77b44035440f4dfc1c8d29da7d800f111ebe6376 |
|
16-Sep-2016 |
Eric Laurent <elaurent@google.com> |
audio flinger: add support for effects without process function am: 6dd0fd92d6 am: 79c3335e35 Change-Id: I719e0379c19d6e0e4e50597726f83b3a1d0b3cd8
|
6dd0fd92d6cdeb2cf5b7127c0e880e5eacfd4574 |
|
15-Sep-2016 |
Eric Laurent <elaurent@google.com> |
audio flinger: add support for effects without process function Add support for effects indicating they do not implement a process function and do not consume CPU or add latency. Enable those effects on RAW and FAST outputs and inputs. Do not call the process function. Bug: 31491112. Change-Id: If020c8bb3b180568dec5138b087edec8c2524182
/frameworks/av/services/audioflinger/Effects.h
|
4a3d5c23f79189eb7ab9f31c440c7da5b15947a2 |
|
15-Aug-2016 |
Mikhail Naganov <mnaganov@google.com> |
Abstract away access to audio effects HAL and factory In this CL all direct calls to functions from EffectsFactoryApi.h and hardware/audio_effect.h are encapsulated within two new classes: EffectsFactoryHalLocal and EffectHalLocal. AudioFlinger uses interface classes EffectsFactoryHalInterface and EffectHalInterface to access these functions. Bug: 30222631 Change-Id: Id64b9c5529319077f6f968921489a13f60daa977
/frameworks/av/services/audioflinger/Effects.h
|
5ca8f32280377dd923e72c3c6bd3994217461b8b |
|
11-Aug-2016 |
Chih-Hung Hsieh <chh@google.com> |
resolve merge conflicts of fd923e7 to stage-aosp-master am: df5d9246f9 am: 63ef5a38f8 Change-Id: I516a43c5e56323e99ad7a8ca2e4811b77c9704f4
|
df5d9246f9607b1c2f8b134c46a05af06e206da3 |
|
11-Aug-2016 |
Chih-Hung Hsieh <chh@google.com> |
resolve merge conflicts of fd923e7 to stage-aosp-master Change-Id: I75b44b89bae41197a1fd68362d20b8ba2b4dd192
|
e964d4e421e2d1ca937227a580c0c837091a11e3 |
|
09-Aug-2016 |
Chih-Hung Hsieh <chh@google.com> |
Fix clang-tidy warnings in audio and playerservice. * Add explicit keyword to conversion constructors. Bug: 28341362 * Use const reference type for read-only parameters. Bug: 30407689 Test: build with WITH_TIDY=1 Change-Id: I265f3b094e08d5705b506b3fbba51439c134af84
/frameworks/av/services/audioflinger/Effects.h
|
36d0ca16024820df9a12903d2ac443fabcc180bc |
|
09-Aug-2016 |
Chih-Hung Hsieh <chh@google.com> |
Fix clang-tidy warnings in audio and playerservice. * Add explicit keyword to conversion constructors. Bug: 28341362 * Use const reference type for read-only parameters. Bug: 30407689 Test: build with WITH_TIDY=1 Change-Id: I265f3b094e08d5705b506b3fbba51439c134af84 Merged-In: I265f3b094e08d5705b506b3fbba51439c134af84
/frameworks/av/services/audioflinger/Effects.h
|
fa1e123f3fffe1eb3d6c284e19014815835e22d6 |
|
03-Aug-2016 |
Eric Laurent <elaurent@google.com> |
audioflinger: fix effect volume control delay Fix delay between effect enable and forced volume update on offload threads. Bug: 30458082 Change-Id: I4222ccde8c6d0bb834c525d3746bd668654f50f3
/frameworks/av/services/audioflinger/Effects.h
|
4c415062ad1bb53e9af8f644d8215837262b79bb |
|
18-Jun-2016 |
Eric Laurent <elaurent@google.com> |
audioflinger: add check for effect vs thread compatibility Make sure that only HW accelerated effects are added on FAST playback or record threads and no effect is added on threads with RAW flag. Make sure that tracks with RAW and FAST flags are compatible with exiting effects on a playback or record threads and clear flags accordingly. Bug: 4999001 Change-Id: I0c060f1ee4dfb9f1e206633536e67f7c3b7b3788
/frameworks/av/services/audioflinger/Effects.h
|
d848eb48c121c119e8ba7583efc75415fe102570 |
|
08-Mar-2016 |
Glenn Kasten <gkasten@google.com> |
Use audio_session_t consistently Bug: 27562099 Change-Id: I328d8226191386b163f2ace41233607294c50dcd
/frameworks/av/services/audioflinger/Effects.h
|
1b92868010b5c1409692a86f6b27e4a265b64c1a |
|
03-Oct-2014 |
Eric Laurent <elaurent@google.com> |
audioflinger: fix pre processing transfer between record threads. Fix two problems remaining with pre processing effects transfer from one record thread to the next in case of tear down due to device connection: 1 - the enabled state of the effects was not communicated to the new HAL input stream. 2 - the effects saved in orphan chains list were not transfered to the new thread when a AudioRecord was created. Bug: 17757378. Change-Id: I0923c98470db3b51154dc89846157780a4c21e86
/frameworks/av/services/audioflinger/Effects.h
|
cb4b6e9f05d1c0b3fcc5be5ebe3f7d6f32669b1a |
|
01-Oct-2014 |
Eric Laurent <elaurent@google.com> |
audioflinger: fix failure to indicate volume to effect If an effect is added and enabled after a track is started it will not receive current volume information because volume is indicated only to active effects and if there is a volume change. Add a flag to force EffectChain::setVolume_l() to pass volume indication to all effects each time an effect is enabled. Bug: 17572556. Change-Id: I6b68488c9aca8b2095fb210aa124d02e4f759660
/frameworks/av/services/audioflinger/Effects.h
|
aaa44478a373232d8416657035a9020f9c7aa7c3 |
|
13-Sep-2014 |
Eric Laurent <elaurent@google.com> |
audioflinger: fix pre processing effect leak When a capture thread was closed, the effects attached to this thread were left dangling and the associated effect chain destroyed. When their last client was disconnected, the effects were not released properly from the effect library because the destruction process could not be completed without the effect being attached to a thread. A similar problem prevented a RecordTrack to be properly released if its client was destroyed after the capture thread. The fix consists in allowing the effect or record track to be properly released even if its parent thread cannot be promoted. Also save any effect chain still present on a closed capture thread in case a new client wants to reuse the effects on the same session later. Bug: 17110064. Change-Id: I5cd644daa357afd1f3548f9bcb28e6152d95fdb8
/frameworks/av/services/audioflinger/Effects.h
|
c56f3426099a3cf2d07ccff8886050c7fbce140f |
|
22-Mar-2014 |
Glenn Kasten <gkasten@google.com> |
Pass stereo gains as packed minifloat This will allow (eventually) a greater dynamic range for gains. However there are still a few remaining places in effects and mixer that will also need to be changed in order to get the full benefit. Also fixes a minor bug: was not checking for NaN in AudioTrack C++. Change-Id: I63bce9e82e0a61546d8ff475fb94bcb700d99c96
/frameworks/av/services/audioflinger/Effects.h
|
01d3acba9de861cb2b718338e787cff3566fc5ec |
|
06-Feb-2014 |
Glenn Kasten <gkasten@google.com> |
Fix clang warnings in AudioFlinger Change-Id: I0fa61025c979709ad7d655bc717df5f194b6089e
/frameworks/av/services/audioflinger/Effects.h
|
e75da4004b2c814987aa2adf8a76190f92d99c65 |
|
20-Nov-2013 |
Glenn Kasten <gkasten@google.com> |
Fix bug in creation of EffectHandle when out of memory If there is insufficient client memory to create the EffectHandle, it was returning a handle which would be useless. Now it correctly reports the out-of-memory error back to client. Change-Id: I894e65d5d17df39383032c1527be6ccd35f578bb
/frameworks/av/services/audioflinger/Effects.h
|
eb3c337a3d6c74ec857dfc8be7eeafe634614bcd |
|
25-Sep-2013 |
Eric Laurent <elaurent@google.com> |
fix deadlock in audioflinger::createEffect() commit 5baf2af5 introduced a regression by calling getOutputForEffect() with AudioFLinger main mutex locked. The locking order must always be AudioPolicyService mutex then AudioFlinger then ThreadBase mutex. Bug: 10916796. Change-Id: Ide34a2d84dbb06dbb35abd0640d91b01b0ac4d40
/frameworks/av/services/audioflinger/Effects.h
|
5baf2af52cd186633b7173196c1e4a4cd3435f22 |
|
13-Sep-2013 |
Eric Laurent <elaurent@google.com> |
more support for audio effect offload Offloading of audio effects is now enabled for offloaded output threads. If an effect not supporting offload is enabled, the AudioTrack is invalidated so that it can be recreated in PCM mode. Fix some issues in effect proxy related to handling of effect commands to offloaded and non offloaded effects. Also fixed a bug on capture index in software Visualizer effect. Bug: 8174034. Change-Id: Ib23d3c2d5a652361b0aaec7faee09102f2b18fce
/frameworks/av/services/audioflinger/Effects.h
|
813e2a74853bde19e37d878c596a044b3f299efc |
|
31-Aug-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: no effects on offloaded tracks Invalidate offloaded tracks when an effect is enabled so that the track is recreated in PCM mode and the effect can be applied. This is temporary until effect offloading is implemented. Bug: 8174034. Change-Id: I77b8b54a10db6cb8334be76d863ea7e720eaad09
/frameworks/av/services/audioflinger/Effects.h
|
bfb1b832079bbb9426f72f3863199a54aefd02da |
|
07-Jan-2013 |
Eric Laurent <elaurent@google.com> |
AudioFlinger: offload playback, non-blocking write - Added specialized playback thread class for offload playback, derived from directoutput thread. This thread type handles specific state transitions for offloaded tracks and offloading commands (pause/resume/drain/flush..) to audio HAL. As opposed to other threads, does not go to standby if the track is paused. - Added support for asynchronous write and drain operations at audio HAL. Use a thread to handle async callback events from HAL: this avoids locking playback thread mutex when executing the callback and cause deadlocks when calling audio HAL functions with the playback thread mutex locked. - Better accouting for track activity: call start/stop and release Output methods in audio policy manager when tracks are actually added and removed from the active tracks list. Added a command thread in audio policy service to handle stop/release commands asynchronously and avoid deadlocks with playback thread. - Track terminated status is not a state anymore. This condition is othogonal to state to permitted state transitions while terminated. Change-Id: Id157f4b3277620568d8eace7535d9186602564de
/frameworks/av/services/audioflinger/Effects.h
|
81784c37c61b09289654b979567a42bf73cd2b12 |
|
19-Nov-2012 |
Eric Laurent <elaurent@google.com> |
AudioFlinger files reorganization Audioflinger.cpp and Audioflinger.h files must be split to improve readability and maintainability. This CL splits the files as follows: AudioFlinger.cpp split into: - AudioFlinger.cpp: implementation of IAudioflinger interface and global methods - AFThreads.cpp: implementation of ThreadBase, PlaybackThread, MixerThread, DuplicatingThread, DirectOutputThread and RecordThread. - AFTracks.cpp: implementation of TrackBase, Track, TimedTrack, OutputTrack, RecordTrack, TrackHandle and RecordHandle. - AFEffects.cpp: implementation of EffectModule, EffectChain and EffectHandle. AudioFlinger.h is modified by inline inclusion of header files containing the declaration of complex inner classes: - AFThreads.h: ThreadBase, PlaybackThread, MixerThread, DuplicatingThread, DirectOutputThread and RecordThread - AFEffects.h: EffectModule, EffectChain and EffectHandle AFThreads.h includes the follownig headers inline: - AFTrackBase.h: TrackBase - AFPlaybackTracks: Track, TimedTrack, OutputTrack - AFRecordTracks: RecordTrack Change-Id: I512ebc3a51813ab7a4afccc9a538b18125165c4c
/frameworks/av/services/audioflinger/Effects.h
|