commit | b4561f5bf1a89a8477b26c5c48fb93ae5c66c265 | [log] [tgz] |
---|---|---|
author | Yuchen Liu <yucliu@google.com> | Tue Sep 15 22:36:10 2020 +0000 |
committer | Android (Google) Code Review <android-gerrit@google.com> | Tue Sep 15 22:36:10 2020 +0000 |
tree | d2dcd0e009b3c6d0807cfa71958c062a4a07d7d1 | |
parent | f622abc2acf3168549968b5e987a81190af9adab [diff] | |
parent | f4de36d17ea278672c61fd1be94d36bc3ea5c340 [diff] |
Merge "Invalidate stream when unregistering audio policy mix"
diff --git a/services/audiopolicy/common/managerdefinitions/include/ClientDescriptor.h b/services/audiopolicy/common/managerdefinitions/include/ClientDescriptor.h index 923310c..80afe9d 100644 --- a/services/audiopolicy/common/managerdefinitions/include/ClientDescriptor.h +++ b/services/audiopolicy/common/managerdefinitions/include/ClientDescriptor.h
@@ -113,6 +113,9 @@ const sp<AudioPolicyMix> getPrimaryMix() const { return mPrimaryMix.promote(); }; + bool hasLostPrimaryMix() const { + return mPrimaryMix.unsafe_get() && !mPrimaryMix.promote(); + } void setActive(bool active) override {
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp index 830b74c..fc3b2a2 100644 --- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp +++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -5354,7 +5354,7 @@ if (status != OK) { continue; } - if (client->getPrimaryMix() != primaryMix) { + if (client->getPrimaryMix() != primaryMix || client->hasLostPrimaryMix()) { invalidate = true; if (desc->isStrategyActive(psId)) { maxLatency = desc->latency();