History log of /frameworks/av/services/audioflinger/Effects.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
01b32723fb154dce487e20e980a5daff0764badf 18-May-2018 Andy Hung <hunga@google.com> Effects: Aux effect input is always mono, do not retry as stereo

Test: Solotester on multichannel usb with aux effect
Bug: 79950246
Change-Id: I6e2c3be88d657a5df547dc1034be0e0eecc4b7c2
/frameworks/av/services/audioflinger/Effects.cpp
e6a61a5bac21727365b0ad99232df0a7a4dc6810 07-Apr-2018 Andy Hung <hunga@google.com> Effects: Only retry stereo config for legacy playback effects

Test: Compiles, SoloTester Regression
Bug: 76445198
Change-Id: I49b159e0ab73b17cc1d27a777da388b7a1cb3b87
/frameworks/av/services/audioflinger/Effects.cpp
7840c30d04a749da9817682339f97b4ab128dffd 24-Feb-2018 Andy Hung <hunga@google.com> Revert "Ignore config error if non-offloadable effect is on offload thread"

This reverts commit cfb681346730d9d0cf849f44e234f79c1622f209.

Reason for revert: Crashes in Play Music b/73624638
Test: Play Music with cleared app data, check equalizer settings
Bug: 73624638
Bug: 70912361
Change-Id: I6d4eec2fda57a60c2c6949937752d8f1e50bb8ab
/frameworks/av/services/audioflinger/Effects.cpp
cfb681346730d9d0cf849f44e234f79c1622f209 26-May-2017 Tomoharu Kasahara <tomoharu.kasahara@sony.com> Ignore config error if non-offloadable effect is on offload thread

Return NO_ERROR if a non-offloadable effect is created on an offload thread
(since the sampling rate of offload output can be different from
the one supported by a software effect). Enabling the non-offloadable
effect will cause the track to move to a non-offload thread.

Bug: 70912361
Test: Create AudioEffect during 24kHz mp3 playback
Change-Id: Ie5bf264a9790d936c24476ea127bc6da9eefde73
/frameworks/av/services/audioflinger/Effects.cpp
7588ff418aca63b1dc43a85afc1e86c40dd889a3 08-Jan-2018 Kevin Rocard <krocard@google.com> Audio V4: Split HAL wrapper for versioning

Both core and effect Hal now have one single point of entry.
This point of entry is their respective factories:
- DevicesFactoryHalInterface::create
- EffectsFactoryHalInterface::create

Each entry point looks for their respective services supported
version, starting from the highest (currently only 2.0) and
returning the subclass wrapping this version to the most recent audio.h
framework api.

Note that EffectBufferHalInterface were previously created from static
methods (mirror and allocate) which broke the single point of entry
requirement.
As a result, buffers have now to be created from the factory like the
other classes.

Note that the death handler also need to be its own library as it is
used by versioned code and is version independent.

Bug: 38184704
Test: compile
Change-Id: Iac9b1fda561bb486193d5b9e025a870f50cda530
Signed-off-by: Kevin Rocard <krocard@google.com>
/frameworks/av/services/audioflinger/Effects.cpp
9aad48c31ee3557eddbcaf301539f7d19673f018 29-Nov-2017 Andy Hung <hunga@google.com> Allow multichannel effects

Test: Solo Tester with mutichannel file
Bug: 70038539
Change-Id: Id2e47eef62e55710bb6eda54c1f737aa3a3ce6bc
/frameworks/av/services/audioflinger/Effects.cpp
9718d660697b8d7574efd11863b2f0cbd7637dbe 23-Dec-2017 Andy Hung <hunga@google.com> Effects: Add debug float logging

Test: audioflinger dumpsys
Bug: 70993567
Change-Id: I510ab3557ee4b229078d552b7e7085ad3d386e6e
/frameworks/av/services/audioflinger/Effects.cpp
d466435670d1beb80beeeb1a140ebe6a5bfd0d9f 21-Dec-2017 Andy Hung <hunga@google.com> Merge "AudioEffect: Convert aux buffer format from q4.27 to float"
05083ac19249d90af77a23c46f4229a7a002320a 15-Dec-2017 Andy Hung <hunga@google.com> EffectModule: robust computation of mMaxDisableWaitCnt

To compensate for overflow / underflow.

Test: Solo Tester and CTS effects
Bug: 70684279
Change-Id: I7ac3d74c43320a2c6427ba2b424c8edb5a0250b1
/frameworks/av/services/audioflinger/Effects.cpp
62aef7d364670c9c255f8470b0ea874ac2cca293 14-Dec-2017 Andy Hung <hunga@google.com> EffectModule: initialize all member variables in constructor

Test: Solo Tester and CTS effect tests
Bug: 70674145
Change-Id: I9a9e137b8c612f0ea8862da3973d142636fad34d
/frameworks/av/services/audioflinger/Effects.cpp
ab30516bf9e5f371b720f9cdcd6adfc11e278648 14-Dec-2017 Andy Hung <hunga@google.com> EffectModule: Update mConfig initialization

Use aggregate-initialization of mConfig to zero.

Test: instrumented memcmp with static decltype(mConfig) ZERO
Bug: 70674145
Change-Id: Ifdc8780b5da4e0e959f144a1b927ed9bd48edddf
/frameworks/av/services/audioflinger/Effects.cpp
6f88dc4f4e71b6d54359ffa01c7521a384483810 14-Dec-2017 Andy Hung <hunga@google.com> AudioEffect: initialize configuration in constructor

To avoid uninitialized use in setInBuffer() and setOutBuffer().

Test: simulate high uninitialized frame counts and check memory usage.
Bug: 69927864
Change-Id: I8aa68a70596bb3eaca2d4c90915f17272d90fe82
/frameworks/av/services/audioflinger/Effects.cpp
116a49881b35f561f6ee316990d425fad56e7487 30-Nov-2017 Andy Hung <hunga@google.com> AudioEffect: Convert aux buffer format from q4.27 to float

Test: Solo Tester aux reverb
Bug: 69853407
Change-Id: I72ca2377036e5ccfd5f4631ac6cc5e86d2e40433
/frameworks/av/services/audioflinger/Effects.cpp
fa69ca3012fb4065dd892f363957a4f9a6d24757 30-Nov-2017 Andy Hung <hunga@google.com> AudioEffect: clean up format conversion in EffectModule::process()

Editing for clarity, no change in operation.

Test: Solo Tester
Bug: 69984406
Change-Id: I683fd9b83417c3d1c6d63339537d03c55625ac13
/frameworks/av/services/audioflinger/Effects.cpp
bded9c8bd20c6cc55d4e4f73b56fdfe86e6fbc69 01-Dec-2017 Andy Hung <hunga@google.com> AudioEffect: rename m(In|Out)Buffer16 to m(In|Out)ConversionBuffer

These buffers will be used later for channel conversion as well.

Test: Solo Tester
Bug: 69984406
Change-Id: I551a256d79793b4137b2689be1140d1d6e35ef71
/frameworks/av/services/audioflinger/Effects.cpp
c15aaeec42f2b14cff0f29bb84e58f4388975d91 28-Nov-2017 Andy Hung <hunga@google.com> Allow clearing effect hal buffers

Test: SoloTest with int effects
Bug: 69855634
Change-Id: I273c9da600f3ab04890a7a1cb74b606cc28bea53
/frameworks/av/services/audioflinger/Effects.cpp
5effdf6d9ed17b4ff67a7e1adc56996c01c43383 27-Nov-2017 Andy Hung <hunga@google.com> Deprecate ditherAndClamp with memcpy_to_i16_from_q4_27

Test: test-mixer and SoloTester
Bug: 69636805
Change-Id: I5cc04d82f3e46fbfc8188a63eb2a90fb70634c90
/frameworks/av/services/audioflinger/Effects.cpp
94a1ee822686e920a33e312f4032f991731aea07 22-Jul-2017 rago <rago@google.com> Converting effect chains to float point by default.

Removed additional conversions from/to int16/float.
Fixed config file restrictions.
Detection of native format (int16/float) of effects.
On-the-fly conversion to/from 16 bit effects if necessary.
WIP: testing effects in all possible configurations.

Bug: 63935479
Test: Bufflog dumps, frequency analysis comparison, SoloTester
Change-Id: Id4cabc5c5698befc90a5d68b0b996a9b9adebfc4
/frameworks/av/services/audioflinger/Effects.cpp
424c4f5b76a6ed11f2c713b42246a7220cfbb240 20-Jul-2017 Mikhail Naganov <mnaganov@google.com> audio effects: Eliminate the cause warning logs about unreleased interface

The cause of frequent "EffectModule 0xxx destructor called with unreleased
interface" messages was due to not releasing the effects when purging
stale effects.

The cause of "Effect handle 0xxx disconnected after thread destruction"
message was due to late binder call for disconnecting already purged
effect handle.

Also improved logging to communicate uuids of the effects causing
these issues.

Bug: 62267926
Test: no aforementioned warnings in the log when opening the Effects
panel in Play Music

Change-Id: I6ec6f60c46dc704226931fb59a641e4cd74c2fd1
/frameworks/av/services/audioflinger/Effects.cpp
d8365c54d049aade9e02ccae722f311f846cad9a 17-Jul-2017 Eric Laurent <elaurent@google.com> audio flinger: fix AEC and NS suspend logic

Make sure we suspend/restore AEC and NS only when the suspend condition
actually changes to avoid mismatch in number of suspends/restores
causing the ref counting mechanism to leave the effects in suspend mode
while they should not.

Also clear the suspend state on an effect session before parking it in
the orphan chains list so that it is in default state whne attached to a
new record thread.

Bug: 63015903
Test: verify that switching BT SCO on/off with Duo enables or disables
AEC and NS accordingly

Change-Id: I4d0f0bf818deca3952da3c67bb7e83cb500429c7
/frameworks/av/services/audioflinger/Effects.cpp
80e7e68dbf734da1c387152f1757aa70e88ddf5a 15-Jul-2017 Eric Laurent <elaurent@google.com> Merge "audio effects: filter reserved effect commands" into nyc-mr1-dev am: 125fc63d73 am: a5d728cce1 am: ccd8680538
am: dd36008b78

Change-Id: Icd196218ebeaa40b2463b1a35eb2cb9e27d76b0c
dd36008b782ec1da0ded327dc51292d102c690d4 15-Jul-2017 Eric Laurent <elaurent@google.com> Merge "audio effects: filter reserved effect commands" into nyc-mr1-dev am: 125fc63d73 am: a5d728cce1
am: ccd8680538

Change-Id: I0af69333bcb67ef6534175ce986fc05e5a26ffa6
c7ab309ecbb289cd1296430f724166a26bd45afe 16-Jun-2017 Eric Laurent <elaurent@google.com> audio effects: filter reserved effect commands

Block effect commands reserved for framework use when
received on server side IAudioEffect. Applications have no reason
to use these commands and they present a unnecessary attack surface.

Bug: 62019992
Test: run CTS tests for audio effects
Change-Id: Ie680d5d5650f99dbabf93891703e1cde2c2e852d
/frameworks/av/services/audioflinger/Effects.cpp
444841ffd7f56f7eadc3cccd59e62738626f0c33 17-Dec-2016 Glenn Kasten <gkasten@google.com> Get declarations from the proper header file

Test: builds OK
Change-Id: I759e49570cd00b3e5101f38164fcac5ac53faa6c
/frameworks/av/services/audioflinger/Effects.cpp
869fab171971f350d5adf4680608ff39049270c3 28-Feb-2017 Phil Burk <philburk@google.com> AudioFlinger: fix Effects handling for MMapThread

Test: CTS test_aaudio.cpp in Exclusive mode
Change-Id: Iac63d901822255028b16c5b90ca07a72ceec372a
Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/services/audioflinger/Effects.cpp
7863c791dba8c4e5e9591b6837d410e580be0a25 10-Feb-2017 Eric Laurent <elaurent@google.com> Merge changes from topic 'mmap_no_irq'

* changes:
Add support for mmap stream
audioflinger: define MMAP HAL Stream control interface
c778e59330a01a9aee6ad354c1e53462df4c88af 25-Jan-2017 Mikhail Naganov <mnaganov@google.com> audioflinger: Fix crash in EffectChain::dump

Check for null buffer in dumpInOutBuffer

Bug: 34691158
Change-Id: I5d11fcb1ce0170da7a742fdbe42a7eaeba4370fe
Test: try bug repro steps
/frameworks/av/services/audioflinger/Effects.cpp
0688880d2862e6cddfea1fceca24e8a081a6be60 19-Jan-2017 Mikhail Naganov <mnaganov@google.com> audioflinger and hal: Compatibility fixes for Treble

1. Treat both reply size being 0 and reply buffer being NULL
as an indication that the reply isn't needed.

2. Synchronize both input and output effect chain buffers,
and avoid excessive copies when the input buffer is the same as
the output buffer.

3. Improve effect chain debug dump by showing both
"external" and "allocated" pointers for effect audio data buffers.

Bug: 34368451
Change-Id: I56aba6908408b5fce3f15c8d29138555101e8720
Test: volume controls works when both Bass Boost and EQ effects enabled
/frameworks/av/services/audioflinger/Effects.cpp
6acd1d432f526ae9a055ddaece28bf93b474a776 04-Jan-2017 Eric Laurent <elaurent@google.com> Add support for mmap stream

Add support for MMAP streams created by Oboe service.
- A new audio thread class MmapThread deriving from ThreadBase
is added to manage permissions, volume, routing and wakelocks for activity
on MMAP streams.
- Requests received over MmapStreamInterface to open, start and stop
a MMAP stream are forwarded to audio policy manager so that activity
on MMAP capture and playback streams is visible to audio policy and
taken into account in volume and routing management.
`

Bug: Bug: 33398120
Test: manual test
Change-Id: I957906495fe9277d2972d810b633f50cd1e14ec3
/frameworks/av/services/audioflinger/Effects.cpp
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.cpp
0ce91633d8a4f5dcb3706a7734c02ddb5099eefd 27-Dec-2016 Mikhail Naganov <mnaganov@google.com> audioflinger: Fix deletion of input buffer in EffectChain

mInBuffer, when it is owned by EffectChain, comes from
AudioFlinger::PlaybackThread::addEffectChain_l where it is
allocated using "new[]", and thus needs to be deleted
using "delete[]".

Change-Id: Ib16bab59f9e00627f8ef52f7232ebdd74a6c9a74
Test: make
/frameworks/av/services/audioflinger/Effects.cpp
31a4598a1908b3ccac7ddb33c511ce66840aa911 15-Dec-2016 Eric Laurent <elaurent@google.com> DO NOT MERGE - audioflinger: fix recursive mutex lock in EffectHandle.

Bug: 33661708
Bug: 32707507
Bug: 32095713

Test: run CTS AudioEffectTest#test5_0Command, Custom binder test

Change-Id: I03f674f126c191143bd8bdfe236f793e975826a5
/frameworks/av/services/audioflinger/Effects.cpp
1ffc585aaaa236806bc0464566ea51189ad2d36e 15-Dec-2016 Eric Laurent <elaurent@google.com> audioflinger: fix recursive mutex lock in EffectHandle.

Bug: 33661708
Bug: 32707507
Bug: 32095713

Test: run CTS AudioEffectTest#test5_0Command, Custom binder test

Change-Id: I03f674f126c191143bd8bdfe236f793e975826a5
/frameworks/av/services/audioflinger/Effects.cpp
b378b73dd7480b584340b8028802c9ca2d625123 02-Dec-2016 Eric Laurent <elaurent@google.com> DO NOT MERGE - 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.

Bug: 32707507
Change-Id: Ia1098cba2cd32cc2d1c9dfdff4adc2388dfed80e
/frameworks/av/services/audioflinger/Effects.cpp
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.cpp
79366efacc2da6e531bf4e2f44776288feab44dd 03-Dec-2016 Andy Hung <hunga@google.com> Effect: Use local cached data for Effect commit am: dd79ccda92 am: 82c8c7656f am: 9851dee7da am: 4242950061 am: a661c82829 am: b45c856249 am: 39ca98f547 am: 9ea4b8abdf am: 25813f0a7a am: 1155d119b4 am: 70dc13599d
am: 2fd05aa3f0

Change-Id: Ic3a3443d71ac628d5727970b75d65c4e29813a14
2fd05aa3f0d2a22e1b4625aa2a9a384ac4691d91 03-Dec-2016 Andy Hung <hunga@google.com> Effect: Use local cached data for Effect commit am: dd79ccda92 am: 82c8c7656f am: 9851dee7da am: 4242950061 am: a661c82829 am: b45c856249 am: 39ca98f547 am: 9ea4b8abdf am: 25813f0a7a am: 1155d119b4
am: 70dc13599d

Change-Id: I0cb9e61f3bad85c85f433ae0bd7dbd5ef74afa34
70dc13599db3519108bccd0f3d7f8c3e2e37b572 03-Dec-2016 Andy Hung <hunga@google.com> Effect: Use local cached data for Effect commit am: dd79ccda92 am: 82c8c7656f am: 9851dee7da am: 4242950061 am: a661c82829 am: b45c856249 am: 39ca98f547 am: 9ea4b8abdf am: 25813f0a7a
am: 1155d119b4

Change-Id: Ia29bfe12f493e94b451b973e8e027007630b4c55
39ca98f547e786a6c0258f17bd496a206f4a0ac3 03-Dec-2016 Andy Hung <hunga@google.com> Effect: Use local cached data for Effect commit am: dd79ccda92 am: 82c8c7656f am: 9851dee7da am: 4242950061 am: a661c82829
am: b45c856249

Change-Id: I6cb0c8e2dbaa2ebe3d4fd4f283a2028ac099f3c3
42429500612b768902442c9fe594327511462cc5 03-Dec-2016 Andy Hung <hunga@google.com> Effect: Use local cached data for Effect commit am: dd79ccda92 am: 82c8c7656f
am: 9851dee7da

Change-Id: I3d375c671122e61cf0b530457c37c1cd5c06e563
82c8c7656f7c7b7269fd7f7a9f1e657109824123 03-Dec-2016 Andy Hung <hunga@google.com> Effect: Use local cached data for Effect commit
am: dd79ccda92

Change-Id: Ide8165907e03b9d400eaa33a222ceeae782d6509
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.cpp
c64e124bca8b7813ecea19d38452dd55fee4082f 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a am: 3e8ab60b7f am: 9161586309 am: ad29b47d91 am: 8b9b199891 am: 72729c449d am: 97bb7fe084 am: 3d6aada999 am: ffe82a3b4a am: ec601622f8 am: f50635bdc4 am: f1e829a54e am: a2e95f5c9b am: c6239b0d4d
am: cbc7183fbb

Change-Id: I7a13718ab24d1c4c9c64d83e148031af046921e1
c6239b0d4dfa730c122f2de214dfd2e62f7f8eea 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a am: 3e8ab60b7f am: 9161586309 am: ad29b47d91 am: 8b9b199891 am: 72729c449d am: 97bb7fe084 am: 3d6aada999 am: ffe82a3b4a am: ec601622f8 am: f50635bdc4 am: f1e829a54e
am: a2e95f5c9b

Change-Id: Ic25053a111913dfd4490633b9f0eff1e7fe1d359
f1e829a54ec8c5e28063366d378a110e14b98811 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a am: 3e8ab60b7f am: 9161586309 am: ad29b47d91 am: 8b9b199891 am: 72729c449d am: 97bb7fe084 am: 3d6aada999 am: ffe82a3b4a am: ec601622f8
am: f50635bdc4

Change-Id: I2a763c6477374600f84d5c3aae646af395b947c5
f50635bdc4613bfd8f4a3a76dc0e5c6fc752c77a 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a am: 3e8ab60b7f am: 9161586309 am: ad29b47d91 am: 8b9b199891 am: 72729c449d am: 97bb7fe084 am: 3d6aada999 am: ffe82a3b4a
am: ec601622f8

Change-Id: I406374de32920003302cff5a78c0ced400dacbdc
ec601622f852cd1710bb92023d318a28dd03c56d 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a am: 3e8ab60b7f am: 9161586309 am: ad29b47d91 am: 8b9b199891 am: 72729c449d am: 97bb7fe084 am: 3d6aada999
am: ffe82a3b4a

Change-Id: I428d5c72ea37518c30d50d21b1ef47e440933cde
72729c449d9f7a6f217be629066cb683ad27b37b 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a am: 3e8ab60b7f am: 9161586309 am: ad29b47d91
am: 8b9b199891

Change-Id: Id1d62d9ebabab42f5ca82ff2fbbcf14d130466f4
9161586309fd018a1503dc5227f2cb329b935213 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a
am: 3e8ab60b7f

Change-Id: Ib575df34ec5bb7dc2cd83a859e10abe94e894317
f96b08d53781db2b572980a2539e86dd39cb3927 30-Nov-2016 Andy Hung <hunga@google.com> Merge "Change order of EFFECT_CMD_GET_PARAM command size check"
e275907e576601a3579747c3a842790bacf111e2 23-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver

Bug: 32705438
Bug: 32703959
Test: cts security test
Change-Id: I8900c92fa55b56c4c2c9d721efdbabe6bfc8a4a4
/frameworks/av/services/audioflinger/Effects.cpp
b34566440cad5da599fb93b87b37cb6d38168839 28-Nov-2016 Andy Hung <hunga@google.com> Change order of EFFECT_CMD_GET_PARAM command size check

Test: Custom APK
Bug: 33003822
Change-Id: I7801cf73377ec4086df5da6b138ebc9d13067ebc
/frameworks/av/services/audioflinger/Effects.cpp
a447a0f52fff7f1cab3bbe7c0a2f9b96f8e3914e 16-Nov-2016 Andy Hung <hunga@google.com> Effect: Use local cached data for Effect commit

Test: POC, Cts Effect, BassBoost, EnvReverb, Equalizer,
Test: LoudnessEnhancer, PresetReverb, Virtualizer, Visualizer
Bug: 32220769
Change-Id: Iea96ba0daf71691ee8954cca4ba1c10fe827626e
/frameworks/av/services/audioflinger/Effects.cpp
221bfde160c9d0f52cab903bfb2e48d04881243e 23-Nov-2016 Baligh Uddin <baligh@google.com> Merge remote-tracking branch 'goog/cw-f-dev' into fix_merger

Bug: 32849428

* goog/cw-f-dev:
If a device does not have a camera, do not set a camera death notifier
Fix security vulnerability: Effect command might allow negative indexes
Make VBRISeeker more robust
DO NOT MERGE: defensive parsing of mp3 album art information
Effects: Check get parameter command size
IOMX: convert ANWB to Gralloc meta if using useBuffer in the same process
DO NOT MERGE: defensive parsing of mp3 album art information
DO NOT MERGE: defensive parsing of mp3 album art information
DO NOT MERGE: defensive parsing of mp3 album art information
DO NOT MERGE: defensive parsing of mp3 album art information
Camera API1: don't pick wrong preview fps value
Fix security vulnerability: Equalizer command might allow negative indexes
Camera API1: relax the fps check with some margin
stagefright: remove allottedSize equality check in IOMX::useBuffer
Camera API1: filter out the unsupported preview fps range
DO NOT MERGE: Visualizer: Check capture size and latency parameters
Visualizer: Check capture size and latency parameters
dd79ccda92c1e9b982b2d0f8877d98e5258fbb73 16-Nov-2016 Andy Hung <hunga@google.com> Effect: Use local cached data for Effect commit

Test: POC, Cts Effect, BassBoost, EnvReverb, Equalizer,
Test: LoudnessEnhancer, PresetReverb, Virtualizer, Visualizer
Bug: 32220769
Change-Id: Iea96ba0daf71691ee8954cca4ba1c10fe827626e
/frameworks/av/services/audioflinger/Effects.cpp
791d393881025ccebb5674b82b636000dddd94b1 10-Nov-2016 Andy Hung <hunga@google.com> Effects: Check get parameter command size am: 3d34cc76e3 am: 59920bf785 am: 14d87911d7 am: 79a088a065 am: 58e5681c96 am: f0f864a1e4 am: 134e208477 am: 5662efe76b am: 1ad93b9617 am: 8c8eb964c0 am: 34f29aac04
am: dfb1bd9794

Change-Id: I1507778b7b095b92fda6f664da6111a91d388010
dfb1bd97947b71019d4be758572875edebb01808 10-Nov-2016 Andy Hung <hunga@google.com> Effects: Check get parameter command size am: 3d34cc76e3 am: 59920bf785 am: 14d87911d7 am: 79a088a065 am: 58e5681c96 am: f0f864a1e4 am: 134e208477 am: 5662efe76b am: 1ad93b9617 am: 8c8eb964c0
am: 34f29aac04

Change-Id: I7dc182307420e375c5f63bd9b2ba2be472845dca
34f29aac0400290f98d42a3d807b2b8d6e8bd4e6 10-Nov-2016 Andy Hung <hunga@google.com> Effects: Check get parameter command size am: 3d34cc76e3 am: 59920bf785 am: 14d87911d7 am: 79a088a065 am: 58e5681c96 am: f0f864a1e4 am: 134e208477 am: 5662efe76b am: 1ad93b9617
am: 8c8eb964c0

Change-Id: If5f09a4ad11bc1045e8a961091cfaa90ff554237
134e20847763b64ae4afb968f55801c0cfb26c5f 10-Nov-2016 Andy Hung <hunga@google.com> Effects: Check get parameter command size am: 3d34cc76e3 am: 59920bf785 am: 14d87911d7 am: 79a088a065 am: 58e5681c96
am: f0f864a1e4

Change-Id: I4e1a1cbcc97223abf9f87a0e575f198342c2accf
79a088a065f04239f404c4f94bc0d8bcc82ffaad 10-Nov-2016 Andy Hung <hunga@google.com> Effects: Check get parameter command size am: 3d34cc76e3 am: 59920bf785
am: 14d87911d7

Change-Id: Icbc43a1d34af774dcf500cdb3548d0399f0b6943
eb6300d4bbe1cb0e24e26b15e3b5af8afe874c5f 10-Nov-2016 Ricardo Garcia <rago@google.com> Merge "Override Auxiliary audio effect output as stereo" am: 568085d022 am: f34b5f6e93 am: 7b5b1e315d
am: 1c79c0531c

Change-Id: I2ef049fd9a82711022179938838c3f4598552b62
f34b5f6e93751a7ec05efccb658951ee90e1d09c 10-Nov-2016 Ricardo Garcia <rago@google.com> Merge "Override Auxiliary audio effect output as stereo"
am: 568085d022

Change-Id: I4f705ee2b47f30731d4f1ac46213fbcd678633a5
12ccef792da1f12a7916f2dca521eb2314eb5298 23-Aug-2016 Yuuki Yokoyama <yuuki.x.yokoyama@sonymobile.com> Override Auxiliary audio effect output as stereo

Auxiliary audio effect supports only stereo as output channel.
Override output channel in case of Auxiliary effect.

Bug: 31985321
Change-Id: I308a6281e2ae2b8f814a659aa40dc6220ab7660a
/frameworks/av/services/audioflinger/Effects.cpp
8d029bffae6ab6592ea0f2aaa8938d04bf4c8a97 09-Nov-2016 Andy Hung <hunga@google.com> Merge "Effects: Check get parameter command size"
913d06c099bd689375483a839e11057ccf284d1c 01-Nov-2016 Mikhail Naganov <mnaganov@google.com> Move TypeConverter into a shared library

This will be needed for the default implementation of the audio HAL
in TREBLE for parsing supported formats etc. provided by HAL in
a form of string literals.

As a bonus, remove some hand-written type conversions in AudioFlinger
used in dumps.

Example changes in the dump output:

HAL format: 0x1 (pcm16) ==> HAL format: 0x1 (AUDIO_FORMAT_PCM_16_BIT)
Processing format: 0x5 (pcmfloat) ==> Processing format: 0x5 (AUDIO_FORMAT_PCM_FLOAT)
Output device: 0x2 (SPEAKER) ==> Output device: 0x2 (AUDIO_DEVICE_OUT_SPEAKER)
Input device: 0 (NONE) ==> Input device: 0 (AUDIO_DEVICE_NONE)
AudioStreamOut: 0x... flags 0x6 (PRIMARY|FAST) ==>
AudioStreamOut: 0x... flags 0x6 (AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST)

Test: make & run
Change-Id: I9cde640e6827b7aa6d62e9caade9e738227e299f
/frameworks/av/services/audioflinger/Effects.cpp
3d34cc76e315dfa8c3b1edf78835b0dab4980505 05-Nov-2016 Andy Hung <hunga@google.com> Effects: Check get parameter command size

Test: Custom test.
Bug: 32438594
Bug: 32624850
Bug: 32635664
Change-Id: I9b1315e2c02f11bea395bfdcf5c1ccddccbad8a6
/frameworks/av/services/audioflinger/Effects.cpp
6660f12f004b5f9e45a6686c646b982ca5bf06d5 05-Nov-2016 Andy Hung <hunga@google.com> Effects: Check get parameter command size

Test: Custom test.
Bug: 32438594
Bug: 32624850
Bug: 32635664
Change-Id: I9b1315e2c02f11bea395bfdcf5c1ccddccbad8a6
/frameworks/av/services/audioflinger/Effects.cpp
9fe94012187a29eeeca2c74e75f121192560fba0 14-Oct-2016 Mikhail Naganov <mnaganov@google.com> Split audio effects headers

There can be different use cases with the code that imports
headers from audio_effects (each subsequent case is a more
specialized version of the previous one):

1. The code only needs access to general structures
like effect_descriptor_t:
==> include system/audio_effect.h
Example: AudioSystem in libmedia

2. The code that needs access to effect UUID and parameter
enums:
==> include system/audio_effects/effect_foo.h
Examples: media framework effects interfaces, libwilhelm

3. The code that needs to call into HAL:
==> include hardware/audio_effect.h
Examples: libaudiohal (implementation part) and libeffects

4. The code that implements a particular effect:
==> include audio_effects/effect_foo.h
Examples: cts/.../CTSTestEffect.cpp
stuff in hardware/, vendor/

Note that AudioPolicy still deals with the effects HAL directly,
this needs to be fixed.

Change-Id: I963335ede6a196f9225caf21e1a01d03635e363c
Test: make
/frameworks/av/services/audioflinger/Effects.cpp
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.cpp
a0c91339814f37ea78365afb436c9f3d1f0a0090 19-Sep-2016 Mikhail Naganov <mnaganov@google.com> Update NBAIO to use the new audio HAL abstraction layer

Moved the HAL access abstraction layer to a separate library so it
can be used both by audioflinger and libnbaio.

Bug: 30222631
Test: manual with Loopback app, Hangouts, YouTube

Change-Id: Id622c2f1aa8f55a775d34f369a596c2c4d29d5be
/frameworks/av/services/audioflinger/Effects.cpp
1dc98674f701dada94143b4d31b7221c58346c6c 19-Aug-2016 Mikhail Naganov <mnaganov@google.com> Abstract away access to audio streams HAL in AudioFlinger

In this CL all direct access to audio_stream_t, audio_stream_out_t, and
audio_stream_in_t their functions is encapsulated within the new
hierarchy of Stream[In|Out]HalLocal classes. AudioFlinger uses
interface classes Stream[In|Out]HalInterface to access these functions.

Note that NBAIO still receives raw HAL stream handles and needs to be
converted separately.

Bug: 30222631
Test: manual with Loopback app

Change-Id: I6388cfa2006791c9c0aa7bb186719209726a2d48
/frameworks/av/services/audioflinger/Effects.cpp
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.cpp
e4f1f63a2c54ee8687ad8cca18df0f6639ad7c81 31-Aug-2016 Mikhail Naganov <mnaganov@google.com> Abstract away access to audio devices HAL

In this CL all direct access to audio_hw_device_t and its functions is
encapsulated within the new class DeviceHalLocal. Loading of hardware
modules is encapsulated withing DevicesFactoryHalLocal. AudioFlinger
uses interface classes DevicesFactoryHalInterface and DeviceHalInterface
to access these functions.

Bug: 30222631
Change-Id: Ic88b20c55813a24b898f4a832e082c17d81935b7
/frameworks/av/services/audioflinger/Effects.cpp
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.cpp
3366d7965645c1f9694493fa2caff361158a90f2 19-Aug-2016 Andy Hung <hunga@google.com> Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501 am: 19d8a61324 am: ebd9f1029e am: d37cf46848 am: ced0dd635e am: 00acbf03be am: 1ab50af9c1 am: 18e5ce6891 am: 0330f4ce2d am: 41880fe252 am: 7b2ce5639f am: 4faee5a880
am: a3e0e40218

Change-Id: I56558cd3dff5fcafafd6fe5cd542b57bf836f544
183d012ea9e1d2bea2f46fb4c784b824075ce841 19-Aug-2016 Andy Hung <hunga@google.com> Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501 am: 19d8a61324 am: ebd9f1029e am: d37cf46848 am: ced0dd635e am: 00acbf03be am: 1ab50af9c1 am: 18e5ce6891 am: 0330f4ce2d am: 41880fe252 am: 7b2ce5639f
am: 4faee5a880

Change-Id: Id866cf06e00f0ca2de3229d868ef1d945def4d45
a3e0e40218a3f1dafa7b9084615a6e80d2812d87 19-Aug-2016 Andy Hung <hunga@google.com> Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501 am: 19d8a61324 am: ebd9f1029e am: d37cf46848 am: ced0dd635e am: 00acbf03be am: 1ab50af9c1 am: 18e5ce6891 am: 0330f4ce2d am: 41880fe252 am: 7b2ce5639f
am: 4faee5a880

Change-Id: I238d8ce2ab24f15b9d10e01974804cfa0c647f00
4faee5a880c5c5363c64dd8b1d5c8f42bf85e424 19-Aug-2016 Andy Hung <hunga@google.com> Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501 am: 19d8a61324 am: ebd9f1029e am: d37cf46848 am: ced0dd635e am: 00acbf03be am: 1ab50af9c1 am: 18e5ce6891 am: 0330f4ce2d am: 41880fe252
am: 7b2ce5639f

Change-Id: Ic7468a587b3c709949f57bbb177cacafd9c72db0
18e5ce689152760c29dbe83e68371b116a8f0605 19-Aug-2016 Andy Hung <hunga@google.com> Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501 am: 19d8a61324 am: ebd9f1029e am: d37cf46848 am: ced0dd635e am: 00acbf03be
am: 1ab50af9c1

Change-Id: I5be11eba820ccb3f6c3bb97b3fa417504306bb3f
d37cf46848ff1eeedcf2c05bf00c18582941a412 19-Aug-2016 Andy Hung <hunga@google.com> Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501 am: 19d8a61324
am: ebd9f1029e

Change-Id: Ic2fa5bba22d9ffc7b69ea97e2e4bc44d8a0fa42d
e4a1d91501d47931dbae19c47815952378787ab6 17-Aug-2016 Andy Hung <hunga@google.com> Add EFFECT_CMD_SET_PARAM parameter checking

Bug: 30204301
Change-Id: Ib9c3ee1c2f23c96f8f7092dd9e146bc453d7a290
/frameworks/av/services/audioflinger/Effects.cpp
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
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.cpp
e7449bf60c861f1dea7510f706004dfdb5efb2a7 04-Aug-2016 Eric Laurent <elaurent@google.com> audioflinger: fix effect volume set on start.

commit fa1e123f forced effect volume to be re applied when
an effect is enabled regardless of the fact that the volume was
already set or not on the effect chain. This caused a systematic
volume command to be send with an invalid value immediately
followed by the correct value.

Bug: 30458082
Change-Id: Ida4b5d7e96c2d4da298589c37c2ce98541a9396a
/frameworks/av/services/audioflinger/Effects.cpp
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.cpp
f3c87704fcd7f2556948d3174083cb3b3784bc4c 21-Jun-2016 Andy Hung <hunga@google.com> Check effect command reply size in AudioFlinger am: 110bc9547a am: 075c8f7713 am: c971a59f4c am: 195f7c6125 am: 1e1b7e4c3d am: d34a9dfc5e am: 4d942ffdf7 am: 97dc689080 am: 96727e67fa am: 2072f925af am: 807b325704
am: c0da993332

Change-Id: Icd6b91a252aa1095229052c5d042de0af06dc2f1
c0da99333228e88c311f6e4d52bb282b11d0d068 21-Jun-2016 Andy Hung <hunga@google.com> Check effect command reply size in AudioFlinger am: 110bc9547a am: 075c8f7713 am: c971a59f4c am: 195f7c6125 am: 1e1b7e4c3d am: d34a9dfc5e am: 4d942ffdf7 am: 97dc689080 am: 96727e67fa am: 2072f925af
am: 807b325704

Change-Id: If0a3ddbf84c520434f88ad5f6f02fd854cf8c4aa
97dc6890807d2cf861bac781acad375173906e62 21-Jun-2016 Andy Hung <hunga@google.com> Check effect command reply size in AudioFlinger am: 110bc9547a am: 075c8f7713 am: c971a59f4c am: 195f7c6125 am: 1e1b7e4c3d am: d34a9dfc5e
am: 4d942ffdf7

Change-Id: I5d59510f7bd7c8b72deef4de177193028af1f4c7
195f7c6125d7c0a48c9f7f0aeb0311ba076a8df7 21-Jun-2016 Andy Hung <hunga@google.com> Check effect command reply size in AudioFlinger am: 110bc9547a am: 075c8f7713
am: c971a59f4c

Change-Id: I86d971f1a537a34e90e4f0697c9c9a43e509cfc4
110bc9547a0c851ff1f20f5d7579b34f942947b8 21-Jun-2016 Andy Hung <hunga@google.com> Check effect command reply size in AudioFlinger

Bug: 29251553
Change-Id: I1bcc1281f1f0542bb645f6358ce31631f2a8ffbf
/frameworks/av/services/audioflinger/Effects.cpp
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.cpp
c42e9b462661673dff480ee71757a58b0f806370 21-Mar-2016 Glenn Kasten <gkasten@google.com> Fix build warnings

Change-Id: Idfdaff3a7a8f60cd8817bd306bfba28020a391c8
/frameworks/av/services/audioflinger/Effects.cpp
57c4e6f7464d458eb52d209c2a63524913d6406d 18-Mar-2016 Glenn Kasten <gkasten@google.com> Fix build warnings

Change-Id: I33178dbe0bfc087d6599579ca0529ad853c669ed
/frameworks/av/services/audioflinger/Effects.cpp
d848eb48c121c119e8ba7583efc75415fe102570 08-Mar-2016 Glenn Kasten <gkasten@google.com> Use audio_session_t consistently

Bug: 27562099
Change-Id: I328d8226191386b163f2ace41233607294c50dcd
/frameworks/av/services/audioflinger/Effects.cpp
d11da70f0e1d06ee6c7b2f83fcfb06257a1c90f2 28-May-2015 Ricardo Garcia <rago@google.com> Fix for audio effects in offload path for mono content

Effects path is always stereo, and it should be initialized as thus even
if the source is mono. Fixed condition check before initialization.

bug: 18157592
Change-Id: Idd7241931e4ba6085fd804345128d898c8511e11
/frameworks/av/services/audioflinger/Effects.cpp
63238efb0d674758902918e3cdaac322126484b7 03-Mar-2015 Glenn Kasten <gkasten@google.com> Remove redundant semicolon from namespace closing

Change-Id: I163f9d3d216c283ae1160ce4802e5247cf44fba7
/frameworks/av/services/audioflinger/Effects.cpp
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.cpp
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.cpp
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.cpp
726b6a7540ac997928df1a14dfede872a82f6210 11-Aug-2014 Ricardo Garcia <rago@google.com> Fix to support mono in effect buffer allocation.

Since effects are now enabled for recording, mono cases are possible
and needed to be correctly allocated.

Bug: 16917961
Change-Id: I760fc421f9f90fabb3f0deadd5f9dc61cd284371
/frameworks/av/services/audioflinger/Effects.cpp
322bab26dc3fe9bd9c1cbb829dc62ff44f1ae810 06-Aug-2014 Ricardo Garcia <rago@google.com> MediaServer crashing and audio effects not applied to TTS.

A memclear in the EffectChain was out of bounds.

Bug 15432115
Bug 16845751

Change-Id: Ib0adc7fa730d630bb71fb87d51163a26149b16e2
/frameworks/av/services/audioflinger/Effects.cpp
021cf9634ab09c0753a40b7c9ef4ba603be5c3da 13-May-2014 Eric Laurent <elaurent@google.com> AudioFlinger: add specific mutex for client lists

Add a specific mutex to protect access to mClients and
mNotificationClients lists. This avoids locking the main AudioFlinger
mutex from inside thread loops and allows not to worry about
cross deadlocks when sending a config event with status reply while
keeping the ThreadBase or AudioFlinger mutex locked.
As a way of consequence, remove notification client list passed to
processConfigEvents_l() and audioConfigChanged() as the list
can now be accessed by locking client mutex only.

Change-Id: I228022204b6709a8bb60cc96d9514a6ffe59b62e
/frameworks/av/services/audioflinger/Effects.cpp
1d6fa7af1288b550faabe4ec2cf98684236723db 11-Feb-2014 Narayan Kamath <narayan@google.com> resolved conflicts for merge of 566be7c3 to master

Change-Id: I7b1cc71057b2bd4f771e7bcf508a8c3abd6017ce
377b2ec9a2885f9b6405b07ba900a9e3f4349c38 03-Feb-2014 Kévin PETIT <kevin.petit@arm.com> Make frameworks/av 64-bit compatible

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
/frameworks/av/services/audioflinger/Effects.cpp
b1f5b0dd237c2767ad7bc0b081d03aafc87589ea 10-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "Fix clang warnings in AudioFlinger"
01d3acba9de861cb2b718338e787cff3566fc5ec 06-Feb-2014 Glenn Kasten <gkasten@google.com> Fix clang warnings in AudioFlinger

Change-Id: I0fa61025c979709ad7d655bc717df5f194b6089e
/frameworks/av/services/audioflinger/Effects.cpp
b220884bf3129253cc5bc8d030bc475411ea4911 07-Feb-2014 Marco Nelissen <marcone@google.com> Pretty up audioflinger dumpsys

Change-Id: I57e44b4c36b99f7149542bbcf9645521c6152dfa
/frameworks/av/services/audioflinger/Effects.cpp
0f11b51a57bc9062c4fe8af73747319cedabc5d6 01-Feb-2014 Glenn Kasten <gkasten@google.com> Fix unused parameter warnings in audio

Change-Id: I665ba3358dd9502f0adec70d486e7bf8a2e1b0fe
/frameworks/av/services/audioflinger/Effects.cpp
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.cpp
34717c83733def81287e2b4ba2f62b416325c7ae 02-Oct-2013 Eric Laurent <elaurent@google.com> am 3424d6e1: am 1adf20ce: Merge "fix volume and effect enable delay on offloaded tracks" into klp-dev

* commit '3424d6e17637e0743ddf3bf4688af8ee36e69264':
fix volume and effect enable delay on offloaded tracks
98232ab7c20bfbdfe176d2c25bb810dbb5e7b4f1 30-Sep-2013 Jean-Michel Trivi <jmtrivi@google.com> am a2340b30: Merge "Don\'t call audio effect process on offloaded playback threads" into klp-dev

* commit 'a2340b3059b9d6e4286d0db7069df477c164df0c':
Don't call audio effect process on offloaded playback threads
59fe010bcc072597852454a2ec53d7b0a2002a3b 28-Sep-2013 Eric Laurent <elaurent@google.com> fix volume and effect enable delay on offloaded tracks

Volume: add a method to wake up the mediaserver playback
thread when a volume command is received on an offloaded track.

Effects: call effect chain process on offloaded playback threads
asynchronously from writes to allow effect state updates while
waiting for async write callback.

Bug: 10796540.

Change-Id: Id2747ae88783575d1d7ffd6fc86fbd054ab2c739
/frameworks/av/services/audioflinger/Effects.cpp
fed6292af65a0b97b583ecbd3c232b3811a3f37b 26-Sep-2013 Jean-Michel Trivi <jmtrivi@google.com> Don't call audio effect process on offloaded playback threads

An audio effect process command is not meant to be called for
playback threads belonging to offloaded playback.

Bug 10933817

Change-Id: Idc7b6a0224791bbf8d61648474d3c288617c498f
/frameworks/av/services/audioflinger/Effects.cpp
dc8cae8c118e4aef4ef1f7b2c6f79becc1df4a05 18-Sep-2013 Eric Laurent <elaurent@google.com> am bf5e2397: am 5baf2af5: more support for audio effect offload

* commit 'bf5e23979a03da96ce1d63126c480103232f174b':
more support for audio effect offload
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.cpp
8136cfae9c22ae8ff42eec9ed751833dda605444 09-Sep-2013 Eric Laurent <elaurent@google.com> am 8a910716: am 6ca83fad: Merge "audioflinger: no effects on offloaded tracks" into klp-dev

* commit '8a910716892d17a2ac62c7e9884af0e9d75b26bc':
audioflinger: no effects on offloaded tracks
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.cpp
6e2ebe97f2ad0a21907f20f9ee644c4eacbb7a40 13-Aug-2013 Glenn Kasten <gkasten@google.com> Use curly braces in 'if' to make it easier to add logs

Change-Id: I58b33fefdd8bf703647414157a99a3223be3531c
/frameworks/av/services/audioflinger/Effects.cpp
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.cpp
153b9fe667e6e78e0218ff0159353097428c7657 15-Jul-2013 Glenn Kasten <gkasten@google.com> Make AudioFlinger::instantiate() more resilient when called from separate module

Bug: 8834855
Change-Id: I4cd842cdfb09d2aaaaab9df9ac3bec6179709bd3
/frameworks/av/services/audioflinger/Effects.cpp
7e1139c0377b6806942fb2a043737b3b9cf0ae91 07-Jun-2013 Eric Laurent <elaurent@google.com> AudioFlinger: do not cache audio device when 0.

AudioFlinger should not cache the audio device
passed to the audio HAL when it is AUDIO_DEVICE_NONE
but keep previous valid selection instead.

Bug: 9323399.
Change-Id: I6f9480e55a21be4115453e6a5eebc5cf2536c476
/frameworks/av/services/audioflinger/Effects.cpp
d0ebb538599cc25726b856e0f5deeb8215db8c92 03-Apr-2013 Eric Laurent <elaurent@google.com> audioflinger: add effect config status check

Check the result of the effect engine configuration command
and do not attempt to send parameters to, enable, or process
the effect if configuration fails.

Bug 8512027

Change-Id: I8c78a05d79fba36b1a387aa5cf2700612301ac91
/frameworks/av/services/audioflinger/Effects.cpp
ca7cc8273ffd88b9b89655808ee7e3df74162b83 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.cpp