BufferQueue returns proper code on acquire
Also removed unnecessary debug messages from
SurfaceTextureClient.
Change-Id: I291897a44170142f9d42a007b008823fad4683e0
diff --git a/libs/gui/BufferQueue.cpp b/libs/gui/BufferQueue.cpp
index 84ccb3f..8263e4e 100644
--- a/libs/gui/BufferQueue.cpp
+++ b/libs/gui/BufferQueue.cpp
@@ -851,8 +851,7 @@
ATRACE_INT(mConsumerName.string(), mQueue.size());
} else {
- // should be a better return code?
- return -EINVAL;
+ return NO_BUFFER_AVAILABLE;
}
return OK;
diff --git a/libs/gui/SurfaceTexture.cpp b/libs/gui/SurfaceTexture.cpp
index dd96f84..4fe2cca 100644
--- a/libs/gui/SurfaceTexture.cpp
+++ b/libs/gui/SurfaceTexture.cpp
@@ -211,7 +211,8 @@
// In asynchronous mode the list is guaranteed to be one buffer
// deep, while in synchronous mode we use the oldest buffer.
- if (mBufferQueue->acquireBuffer(&item) == NO_ERROR) {
+ err = mBufferQueue->acquireBuffer(&item);
+ if (err == NO_ERROR) {
int buf = item.mBuf;
// This buffer was newly allocated, so we need to clean up on our side
if (item.mGraphicBuffer != NULL) {
@@ -247,7 +248,6 @@
glBindTexture(mTexTarget, mTexName);
glEGLImageTargetTexture2DOES(mTexTarget, (GLeglImageOES)image);
- status_t err = OK;
while ((error = glGetError()) != GL_NO_ERROR) {
ST_LOGE("updateTexImage: error binding external texture image %p "
"(slot %d): %#04x", image, buf, error);
@@ -292,9 +292,13 @@
mCurrentScalingMode = item.mScalingMode;
mCurrentTimestamp = item.mTimestamp;
computeCurrentTransformMatrix();
- } else {
+ } else {
+ if (err < 0) {
+ ALOGE("updateTexImage failed on acquire %d", err);
+ }
// We always bind the texture even if we don't update its contents.
glBindTexture(mTexTarget, mTexName);
+ return OK;
}
return err;
diff --git a/libs/gui/SurfaceTextureClient.cpp b/libs/gui/SurfaceTextureClient.cpp
index 6aa81a9..5fb5416 100644
--- a/libs/gui/SurfaceTextureClient.cpp
+++ b/libs/gui/SurfaceTextureClient.cpp
@@ -200,23 +200,6 @@
android_native_buffer_t* buffer) const {
bool dumpedState = false;
for (int i = 0; i < NUM_BUFFER_SLOTS; i++) {
- // XXX: Dump the slots whenever we hit a NULL entry while searching for
- // a buffer.
- if (mSlots[i] == NULL) {
- if (!dumpedState) {
- ALOGD("getSlotFromBufferLocked: encountered NULL buffer in slot %d "
- "looking for buffer %p", i, buffer->handle);
- for (int j = 0; j < NUM_BUFFER_SLOTS; j++) {
- if (mSlots[j] == NULL) {
- ALOGD("getSlotFromBufferLocked: %02d: NULL", j);
- } else {
- ALOGD("getSlotFromBufferLocked: %02d: %p", j, mSlots[j]->handle);
- }
- }
- dumpedState = true;
- }
- }
-
if (mSlots[i] != NULL && mSlots[i]->handle == buffer->handle) {
return i;
}