From 3175d2babfcdcb64f41309157e0436d00375ae4b Mon Sep 17 00:00:00 2001 From: Wei Jia Date: Fri, 10 Jul 2015 14:16:07 -0700 Subject: ACodec: call cancelBufferToNativeWindow() only when the buffer is owned by us. Bug: 22316379 Change-Id: I0b63e507b97b5c93f06ed6b5e0b38075fccfbe8d --- media/libstagefright/ACodec.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'media/libstagefright/ACodec.cpp') diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp index 7d7c2a6..9206b5c 100644 --- a/media/libstagefright/ACodec.cpp +++ b/media/libstagefright/ACodec.cpp @@ -1063,9 +1063,11 @@ status_t ACodec::allocateOutputBuffersFromNativeWindow() { for (OMX_U32 i = cancelStart; i < cancelEnd; i++) { BufferInfo *info = &mBuffers[kPortIndexOutput].editItemAt(i); - status_t error = cancelBufferToNativeWindow(info); - if (err == 0) { - err = error; + if (info->mStatus == BufferInfo::OWNED_BY_US) { + status_t error = cancelBufferToNativeWindow(info); + if (err == 0) { + err = error; + } } } @@ -1152,9 +1154,11 @@ status_t ACodec::allocateOutputMetadataBuffers() { for (OMX_U32 i = 0; i < mBuffers[kPortIndexOutput].size(); i++) { BufferInfo *info = &mBuffers[kPortIndexOutput].editItemAt(i); - status_t error = cancelBufferToNativeWindow(info); - if (err == OK) { - err = error; + if (info->mStatus == BufferInfo::OWNED_BY_US) { + status_t error = cancelBufferToNativeWindow(info); + if (err == OK) { + err = error; + } } } -- cgit v1.1