diff options
| author | Chong Zhang <chz@google.com> | 2015-06-30 19:38:15 +0000 | 
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-06-30 19:38:16 +0000 | 
| commit | b483c6aa4aacb0ec271b03648fd6eaadc938d995 (patch) | |
| tree | 5869bf6d3a9b5944059e0195e4415a63cc49ee97 /media | |
| parent | ad949cd4ca52d19ea5e7a5c5dce84d1410fe5244 (diff) | |
| parent | 5419242328f33f4d126a22ef6296c99353f4dfb4 (diff) | |
| download | frameworks_av-b483c6aa4aacb0ec271b03648fd6eaadc938d995.zip frameworks_av-b483c6aa4aacb0ec271b03648fd6eaadc938d995.tar.gz frameworks_av-b483c6aa4aacb0ec271b03648fd6eaadc938d995.tar.bz2  | |
Merge "ignore buffers that's already removed" into mnc-dev
Diffstat (limited to 'media')
| -rw-r--r-- | media/libstagefright/omx/OMXNodeInstance.cpp | 23 | 
1 files changed, 19 insertions, 4 deletions
diff --git a/media/libstagefright/omx/OMXNodeInstance.cpp b/media/libstagefright/omx/OMXNodeInstance.cpp index 147aae7..95549a4 100644 --- a/media/libstagefright/omx/OMXNodeInstance.cpp +++ b/media/libstagefright/omx/OMXNodeInstance.cpp @@ -1607,7 +1607,12 @@ OMX_BUFFERHEADERTYPE *OMXNodeInstance::findBufferHeader(OMX::buffer_id buffer) {          return NULL;      }      Mutex::Autolock autoLock(mBufferIDLock); -    return mBufferIDToBufferHeader.valueFor(buffer); +    ssize_t index = mBufferIDToBufferHeader.indexOfKey(buffer); +    if (index < 0) { +        CLOGW("findBufferHeader: buffer %u not found", buffer); +        return NULL; +    } +    return mBufferIDToBufferHeader.valueAt(index);  }  OMX::buffer_id OMXNodeInstance::findBufferID(OMX_BUFFERHEADERTYPE *bufferHeader) { @@ -1615,7 +1620,12 @@ OMX::buffer_id OMXNodeInstance::findBufferID(OMX_BUFFERHEADERTYPE *bufferHeader)          return 0;      }      Mutex::Autolock autoLock(mBufferIDLock); -    return mBufferHeaderToBufferID.valueFor(bufferHeader); +    ssize_t index = mBufferHeaderToBufferID.indexOfKey(bufferHeader); +    if (index < 0) { +        CLOGW("findBufferID: bufferHeader %p not found", bufferHeader); +        return 0; +    } +    return mBufferHeaderToBufferID.valueAt(index);  }  void OMXNodeInstance::invalidateBufferID(OMX::buffer_id buffer) { @@ -1623,8 +1633,13 @@ void OMXNodeInstance::invalidateBufferID(OMX::buffer_id buffer) {          return;      }      Mutex::Autolock autoLock(mBufferIDLock); -    mBufferHeaderToBufferID.removeItem(mBufferIDToBufferHeader.valueFor(buffer)); -    mBufferIDToBufferHeader.removeItem(buffer); +    ssize_t index = mBufferIDToBufferHeader.indexOfKey(buffer); +    if (index < 0) { +        CLOGW("invalidateBufferID: buffer %u not found", buffer); +        return; +    } +    mBufferHeaderToBufferID.removeItem(mBufferIDToBufferHeader.valueAt(index)); +    mBufferIDToBufferHeader.removeItemsAt(index);  }  }  // namespace android  | 
