summaryrefslogtreecommitdiffstats
path: root/include/media
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
commit570a3cb7582daa030cb38eedc5eb6a06f86ecc7f (patch)
tree0c59c44899b4a3fbbe921171028fd193829affc7 /include/media
parentdfaddcc81f27bb9de47edec469a4a5fb2309bd6a (diff)
downloadframeworks_av-570a3cb7582daa030cb38eedc5eb6a06f86ecc7f.zip
frameworks_av-570a3cb7582daa030cb38eedc5eb6a06f86ecc7f.tar.gz
frameworks_av-570a3cb7582daa030cb38eedc5eb6a06f86ecc7f.tar.bz2
Fix no-copy-overhead OMXCodec implementation to actually work.
Diffstat (limited to 'include/media')
-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;
};