Loading libs/nativedisplay/include/surfacetexture/surface_texture_platform.h +2 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,8 @@ typedef int (*ASurfaceTexture_fenceWait)(int fence, void* fencePassThroughHandle /** * ASurfaceTexture_dequeueBuffer returns the next available AHardwareBuffer. * The caller gets ownership of the buffer and need to release it with * AHardwareBuffer_release. */ AHardwareBuffer* ASurfaceTexture_dequeueBuffer(ASurfaceTexture* st, int* outSlotid, android_dataspace* outDataspace, Loading libs/nativedisplay/surfacetexture/surface_texture.cpp +9 −1 Original line number Diff line number Diff line Loading @@ -208,7 +208,15 @@ AHardwareBuffer* ASurfaceTexture_dequeueBuffer(ASurfaceTexture* st, int* outSlot *outNewContent = true; } } while (buffer.get() && (!queueEmpty)); return reinterpret_cast<AHardwareBuffer*>(buffer.get()); AHardwareBuffer* result = nullptr; if (buffer.get()) { result = buffer->toAHardwareBuffer(); // add a reference to keep the hardware buffer alive, even if // BufferQueueProducer is disconnected. This is needed, because // sp reference is destroyed at the end of this function. AHardwareBuffer_acquire(result); } return result; } } // namespace android Loading
libs/nativedisplay/include/surfacetexture/surface_texture_platform.h +2 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,8 @@ typedef int (*ASurfaceTexture_fenceWait)(int fence, void* fencePassThroughHandle /** * ASurfaceTexture_dequeueBuffer returns the next available AHardwareBuffer. * The caller gets ownership of the buffer and need to release it with * AHardwareBuffer_release. */ AHardwareBuffer* ASurfaceTexture_dequeueBuffer(ASurfaceTexture* st, int* outSlotid, android_dataspace* outDataspace, Loading
libs/nativedisplay/surfacetexture/surface_texture.cpp +9 −1 Original line number Diff line number Diff line Loading @@ -208,7 +208,15 @@ AHardwareBuffer* ASurfaceTexture_dequeueBuffer(ASurfaceTexture* st, int* outSlot *outNewContent = true; } } while (buffer.get() && (!queueEmpty)); return reinterpret_cast<AHardwareBuffer*>(buffer.get()); AHardwareBuffer* result = nullptr; if (buffer.get()) { result = buffer->toAHardwareBuffer(); // add a reference to keep the hardware buffer alive, even if // BufferQueueProducer is disconnected. This is needed, because // sp reference is destroyed at the end of this function. AHardwareBuffer_acquire(result); } return result; } } // namespace android