summaryrefslogtreecommitdiffstats
path: root/media/libmedia/AudioTrackShared.cpp
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2013-06-24 12:10:45 -0700
committerGlenn Kasten <gkasten@google.com>2013-06-24 13:34:08 -0700
commit93bb77da5481ab75c2cd6e3aa681839273c6e43d (patch)
tree024bebbba1fd4692be502a1fc2c7297055a2a3cc /media/libmedia/AudioTrackShared.cpp
parent0d09a9bec07b3bec78bd473ff0bfcf0a261f3f25 (diff)
downloadframeworks_av-93bb77da5481ab75c2cd6e3aa681839273c6e43d.zip
frameworks_av-93bb77da5481ab75c2cd6e3aa681839273c6e43d.tar.gz
frameworks_av-93bb77da5481ab75c2cd6e3aa681839273c6e43d.tar.bz2
Workaround AudioRecord bug for large buffer sizes
Bug: 9556436 Change-Id: I92d1238b623d2cfd648e0a684d0e710fb0bd8b43
Diffstat (limited to 'media/libmedia/AudioTrackShared.cpp')
-rw-r--r--media/libmedia/AudioTrackShared.cpp3
1 files changed, 2 insertions, 1 deletions
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)) {