summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/MediaBufferGroup.cpp
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2014-07-17 14:23:16 -0700
committerLajos Molnar <lajos@google.com>2014-07-17 19:11:46 -0700
commitc9a11abbb6b48604ea063daedd6118024cfbfa92 (patch)
treeeb36a7ac17829b550ac64f92068788f5e80435aa /media/libstagefright/MediaBufferGroup.cpp
parent20965b564a606f9432177668c032ce97d1913e26 (diff)
downloadframeworks_av-c9a11abbb6b48604ea063daedd6118024cfbfa92.zip
frameworks_av-c9a11abbb6b48604ea063daedd6118024cfbfa92.tar.gz
frameworks_av-c9a11abbb6b48604ea063daedd6118024cfbfa92.tar.bz2
stagefright: add nonblocking MediaBufferGroup.acquire_buffer method
Bug: 15699665 Change-Id: I31c1ab4413c62ff3dd4e0d5b06a398064b4aaddd
Diffstat (limited to 'media/libstagefright/MediaBufferGroup.cpp')
-rw-r--r--media/libstagefright/MediaBufferGroup.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/media/libstagefright/MediaBufferGroup.cpp b/media/libstagefright/MediaBufferGroup.cpp
index 80aae51..6ac6d4a 100644
--- a/media/libstagefright/MediaBufferGroup.cpp
+++ b/media/libstagefright/MediaBufferGroup.cpp
@@ -55,7 +55,8 @@ void MediaBufferGroup::add_buffer(MediaBuffer *buffer) {
mLastBuffer = buffer;
}
-status_t MediaBufferGroup::acquire_buffer(MediaBuffer **out) {
+status_t MediaBufferGroup::acquire_buffer(
+ MediaBuffer **out, bool nonBlocking) {
Mutex::Autolock autoLock(mLock);
for (;;) {
@@ -70,6 +71,11 @@ status_t MediaBufferGroup::acquire_buffer(MediaBuffer **out) {
}
}
+ if (nonBlocking) {
+ *out = NULL;
+ return WOULD_BLOCK;
+ }
+
// All buffers are in use. Block until one of them is returned to us.
mCondition.wait(mLock);
}