summaryrefslogtreecommitdiffstats
path: root/media/libmedia
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2014-09-18 22:14:00 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-09-18 22:14:00 +0000
commit6aadfce1d8c972faad7f4437dcd88d8cd3557611 (patch)
tree59e128037e1ba35eab1be1595d72621ce322476e /media/libmedia
parent2973994af39d55b58728df3dca067594e826ea2a (diff)
parenta0fd9ca66a68baefd9d76800fd66823fd654ef45 (diff)
downloadframeworks_av-6aadfce1d8c972faad7f4437dcd88d8cd3557611.zip
frameworks_av-6aadfce1d8c972faad7f4437dcd88d8cd3557611.tar.gz
frameworks_av-6aadfce1d8c972faad7f4437dcd88d8cd3557611.tar.bz2
Merge "AudioEffect acquires session" into lmp-dev
Diffstat (limited to 'media/libmedia')
-rw-r--r--media/libmedia/AudioEffect.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/media/libmedia/AudioEffect.cpp b/media/libmedia/AudioEffect.cpp
index 35f6557..0d5d7e4 100644
--- a/media/libmedia/AudioEffect.cpp
+++ b/media/libmedia/AudioEffect.cpp
@@ -145,15 +145,19 @@ status_t AudioEffect::set(const effect_uuid_t *type,
return mStatus;
}
- mIEffect = iEffect;
mCblkMemory = cblk;
mCblk = static_cast<effect_param_cblk_t*>(cblk->pointer());
int bufOffset = ((sizeof(effect_param_cblk_t) - 1) / sizeof(int) + 1) * sizeof(int);
mCblk->buffer = (uint8_t *)mCblk + bufOffset;
iEffect->asBinder()->linkToDeath(mIEffectClient);
- ALOGV("set() %p OK effect: %s id: %d status %d enabled %d", this, mDescriptor.name, mId,
- mStatus, mEnabled);
+ mClientPid = IPCThreadState::self()->getCallingPid();
+ ALOGV("set() %p OK effect: %s id: %d status %d enabled %d pid %d", this, mDescriptor.name, mId,
+ mStatus, mEnabled, mClientPid);
+
+ if (mSessionId > AUDIO_SESSION_OUTPUT_MIX) {
+ AudioSystem::acquireAudioSessionId(mSessionId, mClientPid);
+ }
return mStatus;
}
@@ -164,6 +168,9 @@ AudioEffect::~AudioEffect()
ALOGV("Destructor %p", this);
if (mStatus == NO_ERROR || mStatus == ALREADY_EXISTS) {
+ if (mSessionId > AUDIO_SESSION_OUTPUT_MIX) {
+ AudioSystem::releaseAudioSessionId(mSessionId, mClientPid);
+ }
if (mIEffect != NULL) {
mIEffect->disconnect();
mIEffect->asBinder()->unlinkToDeath(mIEffectClient);