- 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
// Gets the next graphics buffer from the producer and locks it for CPU use,
// filling out the passed-in locked buffer structure with the native pointer
// and metadata. Returns BAD_VALUE if no new buffer is available, and
- // INVALID_OPERATION if the maximum number of buffers is already locked.
+ // NOT_ENOUGH_DATA if the maximum number of buffers is already locked.
//
// Only a fixed number of buffers can be locked at a time, determined by the
// construction-time maxLockedBuffers parameter. If INVALID_OPERATION is
if (!nativeBuffer) return BAD_VALUE;
if (mCurrentLockedBuffers == mMaxLockedBuffers) {
- return INVALID_OPERATION;
+ CC_LOGW("Max buffers have been locked (%d), cannot lock anymore.",
+ mMaxLockedBuffers);
+ return NOT_ENOUGH_DATA;
}
BufferQueue::BufferItem b;