summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/ACodec.cpp
diff options
context:
space:
mode:
authorWei Jia <wjia@google.com>2015-07-10 14:16:07 -0700
committerWei Jia <wjia@google.com>2015-07-10 14:16:07 -0700
commit3175d2babfcdcb64f41309157e0436d00375ae4b (patch)
tree7aaada001ad4acf7b263d1e80576665687935406 /media/libstagefright/ACodec.cpp
parent11addc1d922efa0bf12e261481bba11024c7c7ab (diff)
downloadframeworks_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.cpp16
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;
+ }
}
}