summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2010-01-20 15:05:46 -0800
committerAndreas Huber <andih@google.com>2010-01-20 15:05:46 -0800
commitc712b9fe2859435ce142b90ddcb46c5bed33eea8 (patch)
tree945f8e980662cc7bbad93e603d3c038d5d04ede1 /include
parent918007b75539f5eabfd173a369c2da628c607ba7 (diff)
downloadframeworks_base-c712b9fe2859435ce142b90ddcb46c5bed33eea8.zip
frameworks_base-c712b9fe2859435ce142b90ddcb46c5bed33eea8.tar.gz
frameworks_base-c712b9fe2859435ce142b90ddcb46c5bed33eea8.tar.bz2
Fix no-copy-overhead OMXCodec implementation to actually work.
Diffstat (limited to 'include')
-rw-r--r--include/media/IOMX.h6
-rw-r--r--include/media/stagefright/OMXCodec.h2
2 files changed, 7 insertions, 1 deletions
diff --git a/include/media/IOMX.h b/include/media/IOMX.h
index d38c177..bb7677d 100644
--- a/include/media/IOMX.h
+++ b/include/media/IOMX.h
@@ -82,9 +82,13 @@ public:
node_id node, OMX_U32 port_index, const sp<IMemory> &params,
buffer_id *buffer) = 0;
+ // This API clearly only makes sense if the caller lives in the
+ // same process as the callee, i.e. is the media_server, as the
+ // returned "buffer_data" pointer is just that, a pointer into local
+ // address space.
virtual status_t allocateBuffer(
node_id node, OMX_U32 port_index, size_t size,
- buffer_id *buffer) = 0;
+ buffer_id *buffer, void **buffer_data) = 0;
virtual status_t allocateBufferWithBackup(
node_id node, OMX_U32 port_index, const sp<IMemory> &params,
diff --git a/include/media/stagefright/OMXCodec.h b/include/media/stagefright/OMXCodec.h
index 2c32386..ac2f662 100644
--- a/include/media/stagefright/OMXCodec.h
+++ b/include/media/stagefright/OMXCodec.h
@@ -100,6 +100,8 @@ private:
IOMX::buffer_id mBuffer;
bool mOwnedByComponent;
sp<IMemory> mMem;
+ size_t mSize;
+ void *mData;
MediaBuffer *mMediaBuffer;
};