diff options
author | Jean-Michel Trivi <jmtrivi@google.com> | 2014-09-18 22:14:00 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-09-18 22:14:00 +0000 |
commit | 6aadfce1d8c972faad7f4437dcd88d8cd3557611 (patch) | |
tree | 59e128037e1ba35eab1be1595d72621ce322476e /media/libmedia | |
parent | 2973994af39d55b58728df3dca067594e826ea2a (diff) | |
parent | a0fd9ca66a68baefd9d76800fd66823fd654ef45 (diff) | |
download | frameworks_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.cpp | 13 |
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); |