Loading services/audiopolicy/common/managerdefinitions/include/AudioOutputDescriptor.h +1 −1 Original line number Diff line number Diff line Loading @@ -130,7 +130,7 @@ public: sp<SwAudioOutputDescriptor> mOutput1; // used by duplicated outputs: first output sp<SwAudioOutputDescriptor> mOutput2; // used by duplicated outputs: second output uint32_t mDirectOpenCount; // number of clients using this output (direct outputs only) uid_t mDirectClientUid; // uid of the direct output client audio_session_t mDirectClientSession; // session id of the direct output client uint32_t mGlobalRefCount; // non-stream-specific ref count }; Loading services/audiopolicy/common/managerdefinitions/src/AudioOutputDescriptor.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -223,7 +223,8 @@ SwAudioOutputDescriptor::SwAudioOutputDescriptor(const sp<IOProfile>& profile, : AudioOutputDescriptor(profile, clientInterface), mProfile(profile), mIoHandle(0), mLatency(0), mFlags((audio_output_flags_t)0), mPolicyMix(NULL), mOutput1(0), mOutput2(0), mDirectOpenCount(0), mDirectClientUid(0), mGlobalRefCount(0) mOutput1(0), mOutput2(0), mDirectOpenCount(0), mDirectClientSession(AUDIO_SESSION_NONE), mGlobalRefCount(0) { if (profile != NULL) { mFlags = (audio_output_flags_t)profile->getFlags(); Loading services/audiopolicy/managerdefault/AudioPolicyManager.cpp +12 −12 Original line number Diff line number Diff line Loading @@ -754,9 +754,8 @@ audio_io_handle_t AudioPolicyManager::getOutput(audio_stream_type_t stream, ALOGV("getOutput() device %d, stream %d, samplingRate %d, format %x, channelMask %x, flags %x", device, stream, samplingRate, format, channelMask, flags); return getOutputForDevice(device, AUDIO_SESSION_ALLOCATE, uid_t{0} /*Invalid uid*/, stream, samplingRate,format, channelMask, flags, offloadInfo); return getOutputForDevice(device, AUDIO_SESSION_ALLOCATE, stream, samplingRate, format, channelMask, flags, offloadInfo); } status_t AudioPolicyManager::getOutputForAttr(const audio_attributes_t *attr, Loading Loading @@ -834,7 +833,7 @@ status_t AudioPolicyManager::getOutputForAttr(const audio_attributes_t *attr, ALOGV("getOutputForAttr() device 0x%x, samplingRate %d, format %x, channelMask %x, flags %x", device, config->sample_rate, config->format, config->channel_mask, flags); *output = getOutputForDevice(device, session, uid, *stream, *output = getOutputForDevice(device, session, *stream, config->sample_rate, config->format, config->channel_mask, flags, &config->offload_info); if (*output == AUDIO_IO_HANDLE_NONE) { Loading @@ -847,8 +846,7 @@ status_t AudioPolicyManager::getOutputForAttr(const audio_attributes_t *attr, audio_io_handle_t AudioPolicyManager::getOutputForDevice( audio_devices_t device, audio_session_t session __unused, uid_t clientUid, audio_session_t session, audio_stream_type_t stream, uint32_t samplingRate, audio_format_t format, Loading Loading @@ -962,14 +960,15 @@ audio_io_handle_t AudioPolicyManager::getOutputForDevice( if ((samplingRate == outputDesc->mSamplingRate) && audio_formats_match(format, outputDesc->mFormat) && (channelMask == outputDesc->mChannelMask)) { if (clientUid == outputDesc->mDirectClientUid) { if (session == outputDesc->mDirectClientSession) { outputDesc->mDirectOpenCount++; ALOGV("getOutput() reusing direct output %d", mOutputs.keyAt(i)); ALOGV("getOutput() reusing direct output %d for session %d", mOutputs.keyAt(i), session); return mOutputs.keyAt(i); } else { ALOGV("getOutput() do not reuse direct output because current client (%ld) " "is not the same as requesting client (%ld)", (long)outputDesc->mDirectClientUid, (long)clientUid); ALOGV("getOutput() do not reuse direct output because current client (%d) " "is not the same as requesting client (%d)", outputDesc->mDirectClientSession, session); goto non_direct_output; } } Loading Loading @@ -1042,7 +1041,8 @@ audio_io_handle_t AudioPolicyManager::getOutputForDevice( outputDesc->mRefCount[stream] = 0; outputDesc->mStopTime[stream] = 0; outputDesc->mDirectOpenCount = 1; outputDesc->mDirectClientUid = clientUid; outputDesc->mDirectClientSession = session; addOutput(output, outputDesc); mPreviousOutputs = mOutputs; ALOGV("getOutput() returns new direct output %d", output); Loading services/audiopolicy/managerdefault/AudioPolicyManager.h +0 −1 Original line number Diff line number Diff line Loading @@ -627,7 +627,6 @@ private: audio_io_handle_t getOutputForDevice( audio_devices_t device, audio_session_t session, uid_t client, audio_stream_type_t stream, uint32_t samplingRate, audio_format_t format, Loading Loading
services/audiopolicy/common/managerdefinitions/include/AudioOutputDescriptor.h +1 −1 Original line number Diff line number Diff line Loading @@ -130,7 +130,7 @@ public: sp<SwAudioOutputDescriptor> mOutput1; // used by duplicated outputs: first output sp<SwAudioOutputDescriptor> mOutput2; // used by duplicated outputs: second output uint32_t mDirectOpenCount; // number of clients using this output (direct outputs only) uid_t mDirectClientUid; // uid of the direct output client audio_session_t mDirectClientSession; // session id of the direct output client uint32_t mGlobalRefCount; // non-stream-specific ref count }; Loading
services/audiopolicy/common/managerdefinitions/src/AudioOutputDescriptor.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -223,7 +223,8 @@ SwAudioOutputDescriptor::SwAudioOutputDescriptor(const sp<IOProfile>& profile, : AudioOutputDescriptor(profile, clientInterface), mProfile(profile), mIoHandle(0), mLatency(0), mFlags((audio_output_flags_t)0), mPolicyMix(NULL), mOutput1(0), mOutput2(0), mDirectOpenCount(0), mDirectClientUid(0), mGlobalRefCount(0) mOutput1(0), mOutput2(0), mDirectOpenCount(0), mDirectClientSession(AUDIO_SESSION_NONE), mGlobalRefCount(0) { if (profile != NULL) { mFlags = (audio_output_flags_t)profile->getFlags(); Loading
services/audiopolicy/managerdefault/AudioPolicyManager.cpp +12 −12 Original line number Diff line number Diff line Loading @@ -754,9 +754,8 @@ audio_io_handle_t AudioPolicyManager::getOutput(audio_stream_type_t stream, ALOGV("getOutput() device %d, stream %d, samplingRate %d, format %x, channelMask %x, flags %x", device, stream, samplingRate, format, channelMask, flags); return getOutputForDevice(device, AUDIO_SESSION_ALLOCATE, uid_t{0} /*Invalid uid*/, stream, samplingRate,format, channelMask, flags, offloadInfo); return getOutputForDevice(device, AUDIO_SESSION_ALLOCATE, stream, samplingRate, format, channelMask, flags, offloadInfo); } status_t AudioPolicyManager::getOutputForAttr(const audio_attributes_t *attr, Loading Loading @@ -834,7 +833,7 @@ status_t AudioPolicyManager::getOutputForAttr(const audio_attributes_t *attr, ALOGV("getOutputForAttr() device 0x%x, samplingRate %d, format %x, channelMask %x, flags %x", device, config->sample_rate, config->format, config->channel_mask, flags); *output = getOutputForDevice(device, session, uid, *stream, *output = getOutputForDevice(device, session, *stream, config->sample_rate, config->format, config->channel_mask, flags, &config->offload_info); if (*output == AUDIO_IO_HANDLE_NONE) { Loading @@ -847,8 +846,7 @@ status_t AudioPolicyManager::getOutputForAttr(const audio_attributes_t *attr, audio_io_handle_t AudioPolicyManager::getOutputForDevice( audio_devices_t device, audio_session_t session __unused, uid_t clientUid, audio_session_t session, audio_stream_type_t stream, uint32_t samplingRate, audio_format_t format, Loading Loading @@ -962,14 +960,15 @@ audio_io_handle_t AudioPolicyManager::getOutputForDevice( if ((samplingRate == outputDesc->mSamplingRate) && audio_formats_match(format, outputDesc->mFormat) && (channelMask == outputDesc->mChannelMask)) { if (clientUid == outputDesc->mDirectClientUid) { if (session == outputDesc->mDirectClientSession) { outputDesc->mDirectOpenCount++; ALOGV("getOutput() reusing direct output %d", mOutputs.keyAt(i)); ALOGV("getOutput() reusing direct output %d for session %d", mOutputs.keyAt(i), session); return mOutputs.keyAt(i); } else { ALOGV("getOutput() do not reuse direct output because current client (%ld) " "is not the same as requesting client (%ld)", (long)outputDesc->mDirectClientUid, (long)clientUid); ALOGV("getOutput() do not reuse direct output because current client (%d) " "is not the same as requesting client (%d)", outputDesc->mDirectClientSession, session); goto non_direct_output; } } Loading Loading @@ -1042,7 +1041,8 @@ audio_io_handle_t AudioPolicyManager::getOutputForDevice( outputDesc->mRefCount[stream] = 0; outputDesc->mStopTime[stream] = 0; outputDesc->mDirectOpenCount = 1; outputDesc->mDirectClientUid = clientUid; outputDesc->mDirectClientSession = session; addOutput(output, outputDesc); mPreviousOutputs = mOutputs; ALOGV("getOutput() returns new direct output %d", output); Loading
services/audiopolicy/managerdefault/AudioPolicyManager.h +0 −1 Original line number Diff line number Diff line Loading @@ -627,7 +627,6 @@ private: audio_io_handle_t getOutputForDevice( audio_devices_t device, audio_session_t session, uid_t client, audio_stream_type_t stream, uint32_t samplingRate, audio_format_t format, Loading