From 1dfe2f9c2d03fc8d0ed0cdfe0b9fb894bc0bcc11 Mon Sep 17 00:00:00 2001 From: Glenn Kasten Date: Mon, 9 Mar 2015 12:03:14 -0700 Subject: Allow TRANSFER_OBTAIN to be used for fast tracks Change-Id: I8fa20c26f076567b38210af4a680fe1cb2eacee4 --- media/libmedia/AudioTrack.cpp | 4 +++- services/audioflinger/Threads.cpp | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp index 720db17..0ad9cc0 100644 --- a/media/libmedia/AudioTrack.cpp +++ b/media/libmedia/AudioTrack.cpp @@ -1002,7 +1002,9 @@ status_t AudioTrack::createTrack_l() // use case 1: shared buffer (mSharedBuffer != 0) || // use case 2: callback transfer mode - (mTransfer == TRANSFER_CALLBACK)) && + (mTransfer == TRANSFER_CALLBACK) || + // use case 3: obtain/release mode + (mTransfer == TRANSFER_OBTAIN)) && // matching sample rate (mSampleRate == afSampleRate))) { ALOGW("AUDIO_OUTPUT_FLAG_FAST denied by client"); diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp index 3474f24..ef889aa 100644 --- a/services/audioflinger/Threads.cpp +++ b/services/audioflinger/Threads.cpp @@ -1545,9 +1545,10 @@ sp AudioFlinger::PlaybackThread::createTrac ( (sharedBuffer != 0) ) || - // use case 2: callback handler and frame count is default or at least as large as HAL + // use case 2: frame count is default or at least as large as HAL ( - (tid != -1) && + // we formerly checked for a callback handler (non-0 tid), + // but that is no longer required for TRANSFER_OBTAIN mode ((frameCount == 0) || (frameCount >= mFrameCount)) ) -- cgit v1.1