From 5de4999e6dd8a3f2740d20e30e8a3fccdcb76362 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Tue, 7 Sep 2010 14:11:47 -0700 Subject: Don't assert on unexpected surface flinger dequeue/enqueueBuffer errors, log a warning and ignore them instead. Change-Id: Ia45887df82d66f393520e5a4308f430010402d5e related-to-bug: 2976248 --- media/libstagefright/colorconversion/SoftwareRenderer.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'media/libstagefright/colorconversion') diff --git a/media/libstagefright/colorconversion/SoftwareRenderer.cpp b/media/libstagefright/colorconversion/SoftwareRenderer.cpp index 507fa5a..c204a94 100644 --- a/media/libstagefright/colorconversion/SoftwareRenderer.cpp +++ b/media/libstagefright/colorconversion/SoftwareRenderer.cpp @@ -106,7 +106,12 @@ static inline size_t ALIGN(size_t x, size_t alignment) { void SoftwareRenderer::render( const void *data, size_t size, void *platformPrivate) { android_native_buffer_t *buf; - CHECK_EQ(0, mSurface->dequeueBuffer(mSurface.get(), &buf)); + int err; + if ((err = mSurface->dequeueBuffer(mSurface.get(), &buf)) != 0) { + LOGW("Surface::dequeueBuffer returned error %d", err); + return; + } + CHECK_EQ(0, mSurface->lockBuffer(mSurface.get(), buf)); GraphicBufferMapper &mapper = GraphicBufferMapper::get(); @@ -186,7 +191,9 @@ void SoftwareRenderer::render( CHECK_EQ(0, mapper.unlock(buf->handle)); - CHECK_EQ(0, mSurface->queueBuffer(mSurface.get(), buf)); + if ((err = mSurface->queueBuffer(mSurface.get(), buf)) != 0) { + LOGW("Surface::queueBuffer returned error %d", err); + } buf = NULL; } -- cgit v1.1