From 93bb77da5481ab75c2cd6e3aa681839273c6e43d Mon Sep 17 00:00:00 2001 From: Glenn Kasten Date: Mon, 24 Jun 2013 12:10:45 -0700 Subject: Workaround AudioRecord bug for large buffer sizes Bug: 9556436 Change-Id: I92d1238b623d2cfd648e0a684d0e710fb0bd8b43 --- media/libmedia/AudioTrackShared.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'media/libmedia/AudioTrackShared.cpp') diff --git a/media/libmedia/AudioTrackShared.cpp b/media/libmedia/AudioTrackShared.cpp index 4b7f368..5f8f292 100644 --- a/media/libmedia/AudioTrackShared.cpp +++ b/media/libmedia/AudioTrackShared.cpp @@ -482,7 +482,8 @@ void ServerProxy::releaseBuffer(Buffer* buffer) } else if (minimum > half) { minimum = half; } - if (!mDeferWake && mAvailToClient + stepCount >= minimum) { + // FIXME AudioRecord wakeup needs to be optimized; it currently wakes up client every time + if (!mIsOut || (!mDeferWake && mAvailToClient + stepCount >= minimum)) { ALOGV("mAvailToClient=%u stepCount=%u minimum=%u", mAvailToClient, stepCount, minimum); int32_t old = android_atomic_or(CBLK_FUTEX_WAKE, &cblk->mFutex); if (!(old & CBLK_FUTEX_WAKE)) { -- cgit v1.1