Do not include selected output in secondary output list.
Bug: 380006470
Test: repro steps in bug
Flag: EXEMPT bugfix
Change-Id: I629303ad5ee2e2ddf3f65edc9875e310d8048b21
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
index 18b5ea9..1f669e1 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -1559,7 +1559,8 @@
for (auto &secondaryMix : secondaryMixes) {
sp<SwAudioOutputDescriptor> outputDesc = secondaryMix->getOutput();
if (outputDesc != nullptr &&
- outputDesc->mIoHandle != AUDIO_IO_HANDLE_NONE) {
+ outputDesc->mIoHandle != AUDIO_IO_HANDLE_NONE &&
+ outputDesc->mIoHandle != *output) {
secondaryOutputs->push_back(outputDesc->mIoHandle);
weakSecondaryOutputDescs.push_back(outputDesc);
}
@@ -7653,7 +7654,8 @@
for (auto &secondaryMix : secondaryMixes) {
sp<SwAudioOutputDescriptor> outputDesc = secondaryMix->getOutput();
if (outputDesc != nullptr &&
- outputDesc->mIoHandle != AUDIO_IO_HANDLE_NONE) {
+ outputDesc->mIoHandle != AUDIO_IO_HANDLE_NONE &&
+ outputDesc != outputDescriptor) {
secondaryDescs.push_back(outputDesc);
}
}