diff options
author | Andreas Huber <andih@google.com> | 2011-08-04 15:05:17 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2011-08-04 15:05:17 -0700 |
commit | f89d780df70b7fbb8465bce4913c46cca019721f (patch) | |
tree | 56d00af18e567c8df2ecb9f41d596ad0d80cdf2d /media/libstagefright/MediaBuffer.cpp | |
parent | 6801b4dbd00b485ecdcd31b517ed885a8fa21c63 (diff) | |
download | frameworks_av-f89d780df70b7fbb8465bce4913c46cca019721f.zip frameworks_av-f89d780df70b7fbb8465bce4913c46cca019721f.tar.gz frameworks_av-f89d780df70b7fbb8465bce4913c46cca019721f.tar.bz2 |
Eliminate superfluous memcpys by wrapping an ABuffer in a MediaBuffer
Change-Id: I1313f117cd7cdfaf7d6ec25413a0b4b8ea495037
related-to-bug: 5122973
Diffstat (limited to 'media/libstagefright/MediaBuffer.cpp')
-rw-r--r-- | media/libstagefright/MediaBuffer.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/media/libstagefright/MediaBuffer.cpp b/media/libstagefright/MediaBuffer.cpp index a8fadf2..0b14f1e 100644 --- a/media/libstagefright/MediaBuffer.cpp +++ b/media/libstagefright/MediaBuffer.cpp @@ -21,6 +21,7 @@ #include <pthread.h> #include <stdlib.h> +#include <media/stagefright/foundation/ABuffer.h> #include <media/stagefright/MediaBuffer.h> #include <media/stagefright/MediaDebug.h> #include <media/stagefright/MetaData.h> @@ -70,6 +71,20 @@ MediaBuffer::MediaBuffer(const sp<GraphicBuffer>& graphicBuffer) mOriginal(NULL) { } +MediaBuffer::MediaBuffer(const sp<ABuffer> &buffer) + : mObserver(NULL), + mNextBuffer(NULL), + mRefCount(0), + mData(buffer->data()), + mSize(buffer->size()), + mRangeOffset(0), + mRangeLength(mSize), + mBuffer(buffer), + mOwnsData(false), + mMetaData(new MetaData), + mOriginal(NULL) { +} + void MediaBuffer::release() { if (mObserver == NULL) { CHECK_EQ(mRefCount, 0); |