diff options
Diffstat (limited to 'services/audiopolicy/managerdefault/AudioPolicyManager.cpp')
| -rw-r--r-- | services/audiopolicy/managerdefault/AudioPolicyManager.cpp | 4 | 
1 files changed, 3 insertions, 1 deletions
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp index de204e5..6d99640 100644 --- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp +++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp @@ -1076,6 +1076,9 @@ status_t AudioPolicyManager::startSource(sp<AudioOutputDescriptor> outputDesc,          beaconMuteLatency = handleEventForBeacon(STARTING_OUTPUT);      } +    // check active before incrementing usage count +    bool force = !outputDesc->isActive(); +      // increment usage count for this stream on the requested output:      // NOTE that the usage count is the same for duplicated output and hardware output which is      // necessary for a correct control of hardware output routing by startOutput() and stopOutput() @@ -1091,7 +1094,6 @@ status_t AudioPolicyManager::startSource(sp<AudioOutputDescriptor> outputDesc,                              (strategy == STRATEGY_SONIFICATION_RESPECTFUL) ||                              (beaconMuteLatency > 0);          uint32_t waitMs = beaconMuteLatency; -        bool force = false;          for (size_t i = 0; i < mOutputs.size(); i++) {              sp<AudioOutputDescriptor> desc = mOutputs.valueAt(i);              if (desc != outputDesc) {  | 
