summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorAndroid Build Merger (Role) <noreply-android-build-merger@google.com>2019-03-15 17:16:59 +0000
committerAndroid Build Merger (Role) <noreply-android-build-merger@google.com>2019-03-15 17:16:59 +0000
commite6bf186f8dcec75f5563d5ef1f57b59ec6ffdb0e (patch)
treefeff36fa7a7a43d7284035abb71996b73dbbe684 /services
parent6b7b14ad4c61e3a444309b0fe871c2fac7d33364 (diff)
parenta29ede5e5624e573c34ab6c27c8a256202f9c590 (diff)
downloadframeworks_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.cpp8
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) {