diff options
author | Wei Jia <wjia@google.com> | 2015-07-10 14:16:07 -0700 |
---|---|---|
committer | Wei Jia <wjia@google.com> | 2015-07-10 14:16:07 -0700 |
commit | 3175d2babfcdcb64f41309157e0436d00375ae4b (patch) | |
tree | 7aaada001ad4acf7b263d1e80576665687935406 /media/libstagefright/ACodec.cpp | |
parent | 11addc1d922efa0bf12e261481bba11024c7c7ab (diff) | |
download | frameworks_av-3175d2babfcdcb64f41309157e0436d00375ae4b.zip frameworks_av-3175d2babfcdcb64f41309157e0436d00375ae4b.tar.gz frameworks_av-3175d2babfcdcb64f41309157e0436d00375ae4b.tar.bz2 |
ACodec: call cancelBufferToNativeWindow() only when the buffer is owned by us.
Bug: 22316379
Change-Id: I0b63e507b97b5c93f06ed6b5e0b38075fccfbe8d
Diffstat (limited to 'media/libstagefright/ACodec.cpp')
-rw-r--r-- | media/libstagefright/ACodec.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
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; + } } } |