diff options
author | Lajos Molnar <lajos@google.com> | 2014-07-17 14:23:16 -0700 |
---|---|---|
committer | Lajos Molnar <lajos@google.com> | 2014-07-17 19:11:46 -0700 |
commit | c9a11abbb6b48604ea063daedd6118024cfbfa92 (patch) | |
tree | eb36a7ac17829b550ac64f92068788f5e80435aa /media/libstagefright/MediaBufferGroup.cpp | |
parent | 20965b564a606f9432177668c032ce97d1913e26 (diff) | |
download | frameworks_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.cpp | 8 |
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); } |