diff options
author | Glenn Kasten <gkasten@google.com> | 2013-10-18 15:06:37 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-10-18 15:06:37 -0700 |
commit | 77177fa20773d02b4f9c4147ecb98107f019fa7d (patch) | |
tree | 9d72d4d5d404fda711ae8e7b476052ef5d81a8cf /media | |
parent | 6edd8ca5b7e3d169db4314d2b994bc9d48e9e082 (diff) | |
parent | 95c03858e2ab4fb693a2bfe47b3caa806e43c044 (diff) | |
download | frameworks_av-77177fa20773d02b4f9c4147ecb98107f019fa7d.zip frameworks_av-77177fa20773d02b4f9c4147ecb98107f019fa7d.tar.gz frameworks_av-77177fa20773d02b4f9c4147ecb98107f019fa7d.tar.bz2 |
am 95c03858: Merge "Allow releaseBuffer after flush" into klp-dev
* commit '95c03858e2ab4fb693a2bfe47b3caa806e43c044':
Allow releaseBuffer after flush
Diffstat (limited to 'media')
-rw-r--r-- | media/libmedia/AudioTrackShared.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/media/libmedia/AudioTrackShared.cpp b/media/libmedia/AudioTrackShared.cpp index da73d65..caa7900 100644 --- a/media/libmedia/AudioTrackShared.cpp +++ b/media/libmedia/AudioTrackShared.cpp @@ -506,7 +506,7 @@ ServerProxy::ServerProxy(audio_track_cblk_t* cblk, void *buffers, size_t frameCo { } -status_t ServerProxy::obtainBuffer(Buffer* buffer) +status_t ServerProxy::obtainBuffer(Buffer* buffer, bool ackFlush) { LOG_ALWAYS_FATAL_IF(buffer == NULL || buffer->mFrameCount == 0); if (mIsShutdown) { @@ -579,7 +579,11 @@ status_t ServerProxy::obtainBuffer(Buffer* buffer) buffer->mRaw = part1 > 0 ? &((char *) mBuffers)[(mIsOut ? front : rear) * mFrameSize] : NULL; buffer->mNonContig = availToServer - part1; - mUnreleased = part1; + // After flush(), allow releaseBuffer() on a previously obtained buffer; + // see "Acknowledge any pending flush()" in audioflinger/Tracks.cpp. + if (!ackFlush) { + mUnreleased = part1; + } return part1 > 0 ? NO_ERROR : WOULD_BLOCK; } no_init: @@ -761,7 +765,7 @@ ssize_t StaticAudioTrackServerProxy::pollPosition() return (ssize_t) position; } -status_t StaticAudioTrackServerProxy::obtainBuffer(Buffer* buffer) +status_t StaticAudioTrackServerProxy::obtainBuffer(Buffer* buffer, bool ackFlush) { if (mIsShutdown) { buffer->mFrameCount = 0; |