From c9a11abbb6b48604ea063daedd6118024cfbfa92 Mon Sep 17 00:00:00 2001 From: Lajos Molnar Date: Thu, 17 Jul 2014 14:23:16 -0700 Subject: stagefright: add nonblocking MediaBufferGroup.acquire_buffer method Bug: 15699665 Change-Id: I31c1ab4413c62ff3dd4e0d5b06a398064b4aaddd --- media/libstagefright/MediaBufferGroup.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'media/libstagefright/MediaBufferGroup.cpp') 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); } -- cgit v1.1