diff options
| author | Android Build Merger (Role) <noreply-android-build-merger@google.com> | 2019-03-15 17:16:59 +0000 |
|---|---|---|
| committer | Android Build Merger (Role) <noreply-android-build-merger@google.com> | 2019-03-15 17:16:59 +0000 |
| commit | e6bf186f8dcec75f5563d5ef1f57b59ec6ffdb0e (patch) | |
| tree | feff36fa7a7a43d7284035abb71996b73dbbe684 /services | |
| parent | 6b7b14ad4c61e3a444309b0fe871c2fac7d33364 (diff) | |
| parent | a29ede5e5624e573c34ab6c27c8a256202f9c590 (diff) | |
| download | frameworks_av-e6bf186f8dcec75f5563d5ef1f57b59ec6ffdb0e.tar.gz frameworks_av-e6bf186f8dcec75f5563d5ef1f57b59ec6ffdb0e.tar.bz2 frameworks_av-e6bf186f8dcec75f5563d5ef1f57b59ec6ffdb0e.zip | |
[automerger] audio: ensure effect chain with specific session id is unique am: 5945746bca am: d2967d3fba am: 63539c399a am: d98b2019db am: a29ede5e56
Change-Id: I8e4d9f493c9d0693f85302b91e52ccc34bf1c8b2
Diffstat (limited to 'services')
| -rw-r--r-- | services/audioflinger/AudioFlinger.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index 328cc150b4..86b733810a 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -2996,9 +2996,13 @@ sp<IEffect> AudioFlinger::createEffect( } // look for the thread where the specified audio session is present for (size_t i = 0; i < mPlaybackThreads.size(); i++) { - if (mPlaybackThreads.valueAt(i)->hasAudioSession(sessionId) != 0) { + uint32_t sessionType = mPlaybackThreads.valueAt(i)->hasAudioSession(sessionId); + if (sessionType != 0) { io = mPlaybackThreads.keyAt(i); - break; + // thread with same effect session is preferable + if ((sessionType & ThreadBase::EFFECT_SESSION) != 0) { + break; + } } } if (io == AUDIO_IO_HANDLE_NONE) { |
