commit | a069304fe522a0849b075940768fcc8fb79be6d7 | [log] [tgz] |
---|---|---|
author | Treehugger Robot <treehugger-gerrit@google.com> | Tue Jun 30 17:23:10 2020 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Tue Jun 30 17:23:10 2020 +0000 |
tree | 13dfcf2783f02e0278aaa160ded3e7bcb9bda8a4 | |
parent | a6eda0cf36f629e5849e704a6966ec3ea323b1c1 [diff] | |
parent | 2b51eb33af3c4f61708bffaa671383ef2372994b [diff] |
Merge "Fix direct/offload thread output devices into MSD" am: 24c46f1741 am: 5f829dead3 am: 456051d0b9 am: 37a8cbea2e am: 2b51eb33af Original change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1340017 Change-Id: I5f885470d75362697716772bbd0a8e5d3f235136
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp index c5c13e9..2661c30 100644 --- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp +++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -5446,6 +5446,12 @@ } } + // Do not retrieve engine device for outputs through MSD + // TODO: support explicit routing requests by resetting MSD patch to engine device. + if (outputDesc->devices() == getMsdAudioOutDevices()) { + return outputDesc->devices(); + } + // Honor explicit routing requests only if no client using default routing is active on this // input: a specific app can not force routing for other apps by setting a preferred device. bool active; // unused
diff --git a/services/audiopolicy/tests/AudioPolicyManagerTestClient.h b/services/audiopolicy/tests/AudioPolicyManagerTestClient.h index e1721ea..bdddf06 100644 --- a/services/audiopolicy/tests/AudioPolicyManagerTestClient.h +++ b/services/audiopolicy/tests/AudioPolicyManagerTestClient.h
@@ -75,6 +75,10 @@ status_t createAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle, int /*delayMs*/) override { + auto iter = mActivePatches.find(*handle); + if (iter != mActivePatches.end()) { + mActivePatches.erase(*handle); + } *handle = mNextPatchHandle++; mActivePatches.insert(std::make_pair(*handle, *patch)); return NO_ERROR;