summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy/AudioPolicyEffects.h
diff options
context:
space:
mode:
authorbryant_liu <bryant_liu@htc.com>2014-08-20 18:06:13 +0800
committerDmitry Shmidt <dimitrysh@google.com>2014-08-28 17:45:55 -0700
commit890a5637b3e3eb197fd2c7f5deec816c7feb13fc (patch)
tree71a722cfba64b26c6f4d09b0e353986928d12d3d /services/audiopolicy/AudioPolicyEffects.h
parent8b250cb67d0cab6234c0e8e0e21342d03c1eca5d (diff)
downloadframeworks_av-890a5637b3e3eb197fd2c7f5deec816c7feb13fc.zip
frameworks_av-890a5637b3e3eb197fd2c7f5deec816c7feb13fc.tar.gz
frameworks_av-890a5637b3e3eb197fd2c7f5deec816c7feb13fc.tar.bz2
frameworks: av: AudioPolicyEffect: Add refCount for each session
Audio framework stops and restarts AudioTracks on same audio session. Sometimes the AudioTrack start() comes before a stop(). As effects are linked to the session, they should only be created on the last stop() related to that session. Bug: 17201117 Change-Id: I19343e293d6b7b6b794fe05ebd0dd239ed3b075c
Diffstat (limited to 'services/audiopolicy/AudioPolicyEffects.h')
-rw-r--r--services/audiopolicy/AudioPolicyEffects.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/services/audiopolicy/AudioPolicyEffects.h b/services/audiopolicy/AudioPolicyEffects.h
index 351cb1a..dbe0d0e 100644
--- a/services/audiopolicy/AudioPolicyEffects.h
+++ b/services/audiopolicy/AudioPolicyEffects.h
@@ -131,9 +131,11 @@ private:
// class to store voctor of AudioEffects
class EffectVector {
public:
- EffectVector(int session) : mSessionId(session) {}
+ EffectVector(int session) : mSessionId(session), mRefCount(0) {}
/*virtual*/ ~EffectVector() {}
const int mSessionId;
+ // AudioPolicyManager keeps mLock, no need for lock on reference count here
+ int mRefCount;
Vector< sp<AudioEffect> >mEffects;
};