6a26be7c2b1e5a84b5d2105780148016889285e6 |
|
23-Jan-2015 |
Lajos Molnar <lajos@google.com> |
CpuConsumer: lock buffers that could be YUV as ycbcr Bug: 17906609 Change-Id: Ic71af69ec3b19ab1224ed3ad5e0a97c60e81cda6
/frameworks/native/libs/gui/CpuConsumer.cpp
|
d53e052322c658ce7c67b046caaeee4babc0a657 |
|
19-Aug-2014 |
Riley Andrews <riandrews@google.com> |
Within CpuConsumer, use gralloc lockAsync/unlockAsync Change-Id: I6b2cd195e111c3c7bf94c8052af4db92e09649a5
/frameworks/native/libs/gui/CpuConsumer.cpp
|
a5b7513711555c8681eb9391cfafe30fb7d6dd3d |
|
15-Aug-2013 |
Igor Murashkin <iam@google.com> |
gui: CpuConsumer::lockNextBuffer change return code when too many bufs acquired - Return NOT_ENOUGH_DATA instead of INVALID_OPERATION when too many buffers have already been locked. - INVALID_OPERATION is nominally used when something irrecoverable happens, but in this case the client just needs to call unlockBuffer to go back into a good state. Bug: 10333400 Change-Id: I3a034d77de85741429f832a90eedd670afa1dc94
/frameworks/native/libs/gui/CpuConsumer.cpp
|
db89edc94bd2a78226b407f9f7261e202e7fa325 |
|
02-Aug-2013 |
Mathias Agopian <mathias@google.com> |
All consumers now take an IGraphicBufferConsumer instead of a BufferQueue this means they only have access to the consumer end of the interface. we had a lot of code that assumed consumers where holding a BufferQueue (i.e.: both ends), so most of this change is untangling in fix that Bug: 9265647 Change-Id: Ic2e2596ee14c7535f51bf26d9a897a0fc036d22c
/frameworks/native/libs/gui/CpuConsumer.cpp
|
595264f1af12e25dce57d7c5b1d52ed86ac0d0c9 |
|
17-Jul-2013 |
Mathias Agopian <mathias@google.com> |
BufferQueue improvements and APIs changes this is the first step of a series of improvements to BufferQueue. A few things happen in this change: - setSynchronousMode() goes away as well as the SynchronousModeAllowed flag - BufferQueue now defaults to (what used to be) synchronous mode - a new "controlled by app" flag is passed when creating consumers and producers those flags are used to put the BufferQueue in a mode where it will never block if both flags are set. This is achieved by: - returning an error from dequeueBuffer() if it would block - making sure a buffer is always available by replacing the previous buffer with the new one in queueBuffer() (note: this is similar to what asynchrnous mode used to be) Note: in this change EGL's swap-interval 0 is broken; this will be fixed in another change. Change-Id: I691f9507d6e2e158287e3039f2a79a4d4434211d
/frameworks/native/libs/gui/CpuConsumer.cpp
|
8f938a53385a3c6d1c6aa24b3f38437bb2cc47ae |
|
13-Jul-2013 |
Mathias Agopian <mathias@google.com> |
always pass the BufferQueue explicitely to consumers Change-Id: I883b0a7b19d8e722f9ab714ba6f49e658b02ca86
/frameworks/native/libs/gui/CpuConsumer.cpp
|
1585c4d9fbbba3ba70ae625923b85cd02cb8a0fd |
|
28-Jun-2013 |
Andy McFadden <fadden@android.com> |
Pay attention to buffer timestamps When acquiring a buffer, SurfaceFlinger now computes the expected presentation time and passes it to the BufferQueue acquireBuffer() method. If it's not yet time to display the buffer, acquireBuffer() returns PRESENT_LATER instead of a buffer. The current implementation of the expected-present-time computation uses approximations and guesswork. Bug 7900302 Change-Id: If9345611c5983a11a811935aaf27d6388a5036f1
/frameworks/native/libs/gui/CpuConsumer.cpp
|
b4b63704c02319765625de360a140ef8a59ab43b |
|
06-Jun-2013 |
Zhijun He <zhijunhe@google.com> |
CpuConsumer: Add set buffer size and format functions. Add setDefaultBufferSize() and setDefaultBufferFormat(). ImageReader JNI need them. Bug: 9254294 Change-Id: I7d2464d43b0ca73fbb834ed22cecbfbb30eef60c
/frameworks/native/libs/gui/CpuConsumer.cpp
|
c5d7b7d323bba8772a9005f7d300ad983a04733a |
|
03-May-2013 |
Lajos Molnar <lajos@google.com> |
BufferQueue: track buffer-queue by instance vs. by reference Instead of representing the buffer-queue as a vector of buffer indices, represent them as a vector of BufferItems (copies). This allows modifying the buffer slots independent of the queued buffers. As part of this change, BufferSlot properties that are only been relevant in the buffer-queue have been removed. Also, invalid scalingMode in queueBuffer now returns an error. ConsumerBase has also changed to allow reuse of the same buffer slots by different buffers. Change-Id: If2a698fa142b67c69ad41b8eaca6e127eb3ef75b Signed-off-by: Lajos Molnar <lajos@google.com> Related-to-bug: 7093648
/frameworks/native/libs/gui/CpuConsumer.cpp
|
ea74d3b78d607cde17790a7bb83e6f68ffd34cfd |
|
17-May-2013 |
Mathias Agopian <mathias@google.com> |
make the warning timout of Fence::waitForever() implicit and longer - timeout is now 3 seconds instead of 1 - simplifies the API a bit - allows us to change/tweak this timeout globaly Bug: 8988871 Change-Id: I8d3c6ec43a372f602fb3f29856710339f86c0ec9
/frameworks/native/libs/gui/CpuConsumer.cpp
|
c43946b931de5dafd28f49963f9af78e05390b26 |
|
05-May-2013 |
Eino-Ville Talvala <etalvala@google.com> |
Add support for HAL_PIXEL_FORMAT_YCbCr_420_888 - Add fields to CpuConsumer::LockedBuffer for new information - New lock methods for GraphicBuffer and GraphicBufferMapper for the format Bug: 8734880 Change-Id: If31f82c62d64b6942cf4cc6e5715585c03273f12
/frameworks/native/libs/gui/CpuConsumer.cpp
|
042ecee2abf8584585f1f22f661ac6be9689edf4 |
|
01-Mar-2013 |
Eino-Ville Talvala <etalvala@google.com> |
CpuConsumer: Properly track acquired buffers CpuConsumer cannot simply assume a slot's buffer is the same buffer between acquire and release, and therefore it could be possible for the same slot to get used for a second acquired buffer, if there's a producer disconnect in between. This would cause a problem when the first buffer is released by the consumer. Instead, use an independent list of acquired buffers to properly track their state. Bug: 8291751 Change-Id: I0241ad8704e53d47318c7179b13daed8181b1fab
/frameworks/native/libs/gui/CpuConsumer.cpp
|
eb0d12963d271052c24abb025d698504df9e7573 |
|
28-Feb-2013 |
Eino-Ville Talvala <etalvala@google.com> |
CpuConsumer: Add optional asynchronous mode Bug: 8290146 Bug: 8291751 Change-Id: I9c8ac4bff38b0411e987a204e540d018dba6d0b4
/frameworks/native/libs/gui/CpuConsumer.cpp
|
64d8b1903e4b5f2838818eedcf4fef748b38709c |
|
28-Feb-2013 |
Eino-Ville Talvala <etalvala@google.com> |
CpuConsumer: Don't unlock buffers on producer disconnect Bug: 8291751 Change-Id: I062a3d34b41183d07fb6b9109cdb6bf0c0c75672
/frameworks/native/libs/gui/CpuConsumer.cpp
|
ba607d53c6a94ea8c4c12571980c4ad159af308b |
|
01-Oct-2012 |
Jesse Hall <jessehall@google.com> |
Add Fence::waitForever which logs a warning timeout, and use it Bug: 7217641 Change-Id: If0c1a613ead307c4045a47824174bf40c72bc7d7
/frameworks/native/libs/gui/CpuConsumer.cpp
|
b27254154642575dfb4bbfa79fbedde7d7ee23dd |
|
06-Sep-2012 |
Jamie Gennis <jgennis@google.com> |
libgui: move fence handling into ConsumerBase This change moves some common fence handling code into the base class for BufferQueue consumer classes. It also makes the ConsumerBase class initialize a buffer slot's fence with the acquire fence every time a buffer is acquired. Change-Id: I0bd88bc269e919653b659bfb3ebfb04dd61692a0
/frameworks/native/libs/gui/CpuConsumer.cpp
|
72f096fb1ad0a0deadbfac5f88627461905d38e8 |
|
28-Aug-2012 |
Jamie Gennis <jgennis@google.com> |
BufferQueue: use max acquired buffer count This change makes BufferQueue derive the min undequeued buffer count from a max acquired buffer count that is set by the consumer. This value may be set at any time that a producer is not connected to the BufferQueue rather than at BufferQueue construction time. Change-Id: Icf9f1d91ec612a079968ba0a4621deffe48f4e22
/frameworks/native/libs/gui/CpuConsumer.cpp
|
e232fdca2a62dc5e81b550f5be8710e36174e7a6 |
|
21-Aug-2012 |
Eino-Ville Talvala <etalvala@google.com> |
Add BufferItemConsumer, a simple BufferQueue consumer. BufferItemConsumer allows for acquiring BufferQueue's BufferItems, which contain all the data and metadata the BufferQueue has for a given graphics buffer. This consumer is useful when direct access to the native buffer_handles is needed by the client. Also includes a minor cleanup of CpuConsumer's use of 'virtual'. Bug: 6243944 Change-Id: If7dc4192b15ac499555f1eda42a85140f2434795
/frameworks/native/libs/gui/CpuConsumer.cpp
|
f57e7540d4cf799f18fe87d3536c55f1e0064931 |
|
21-Aug-2012 |
Eino-Ville Talvala <etalvala@google.com> |
CpuConsumer: inherit from ConsumerBase Change-Id: I55178b1d673ffa0fbc6e63ef47642c64d4d03228
/frameworks/native/libs/gui/CpuConsumer.cpp
|
b42b1ac1587aebda5e2f334d95b620271fafba4e |
|
28-Jun-2012 |
Jesse Hall <jessehall@google.com> |
Return fence from acquireBuffer Change-Id: Iab22054c1dc4fd84affab3cc5bbdcd5a1e689666
/frameworks/native/libs/gui/CpuConsumer.cpp
|
ef19414bd8b77a26f5751f3845be79025a8263fe |
|
14-Jun-2012 |
Jesse Hall <jessehall@google.com> |
Transfer HWC release fences to BufferQueue After a HWC set, each SurfaceFlinger Layer retrieves the release fence HWC returned and gives it to the layer's SurfaceTexture. The SurfaceTexture accumulates the fences into a merged fence until the next updateTexImage, then passes the merged fence to the BufferQueue in releaseBuffer. In a follow-on change, BufferQueue will return the fence along with the buffer slot in dequeueBuffer. For now, dequeueBuffer waits for the fence to signal before returning. The releaseFence default value for BufferQueue::releaseBuffer() is temporary to avoid transient build breaks with a multi-project checkin. It'll disappear in the next change. Change-Id: Iaa9a0d5775235585d9cbf453d3a64623d08013d9
/frameworks/native/libs/gui/CpuConsumer.cpp
|
e41b318bc4708e1dee9364e73215ff0d51fb76a1 |
|
17-Apr-2012 |
Eino-Ville Talvala <etalvala@google.com> |
Add a BufferQueue CPU consumer. Aimed for use cases where gralloc buffers need to be consumed by CPU users, such as camera image data streams. The CpuConsumer is a synchronous queue, which exposes raw pointers to the underlying graphics buffers to applications. Multiple buffers may be acquired at once, up to the limit set at time of construction. Change-Id: If1d99f12471438e95a69696e40685948778055fd
/frameworks/native/libs/gui/CpuConsumer.cpp
|