From bbbcf65532c905b71f5c731551b15e9bd2fc26e0 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Tue, 7 Dec 2010 14:25:54 -0800 Subject: Better buffer status management and verification in OMXCodec. Change-Id: I90410f2ac0d8ff86076a239dc6e281b1bc4d8643 --- include/media/stagefright/OMXCodec.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/media/stagefright/OMXCodec.h b/include/media/stagefright/OMXCodec.h index 0aba347264dc..d37c22d68574 100644 --- a/include/media/stagefright/OMXCodec.h +++ b/include/media/stagefright/OMXCodec.h @@ -121,10 +121,16 @@ private: kOutputBuffersAreUnreadable = 8192, }; + enum BufferStatus { + OWNED_BY_US, + OWNED_BY_COMPONENT, + OWNED_BY_NATIVE_WINDOW, + OWNED_BY_CLIENT, + }; + struct BufferInfo { IOMX::buffer_id mBuffer; - bool mOwnedByComponent; - bool mOwnedByNativeWindow; + BufferStatus mStatus; sp mMem; size_t mSize; void *mData; @@ -248,9 +254,9 @@ private: status_t freeBuffer(OMX_U32 portIndex, size_t bufIndex); - void drainInputBuffer(IOMX::buffer_id buffer); + bool drainInputBuffer(IOMX::buffer_id buffer); void fillOutputBuffer(IOMX::buffer_id buffer); - void drainInputBuffer(BufferInfo *info); + bool drainInputBuffer(BufferInfo *info); void fillOutputBuffer(BufferInfo *info); void drainInputBuffers(); -- cgit v1.2.3-59-g8ed1b