Merge changes from topic "am-99626481-1222-4690-a6c3-4a3db61755f9" into oc-dev

* changes:
  [automerger] audio: ensure effect chain with specific session id is unique am: 5945746bca am: d2967d3fba am: 63539c399a am: d98b2019db am: a29ede5e56
  [automerger] audio: ensure effect chain with specific session id is unique am: 5945746bca am: d2967d3fba am: 63539c399a am: d98b2019db
  [automerger] audio: ensure effect chain with specific session id is unique am: 5945746bca am: d2967d3fba am: 63539c399a
  [automerger] audio: ensure effect chain with specific session id is unique am: 5945746bca am: d2967d3fba
  [automerger] audio: ensure effect chain with specific session id is unique am: 5945746bca
  audio: ensure effect chain with specific session id is unique
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index 328cc15..86b7338 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -2996,9 +2996,13 @@
             }
             // 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) {