summaryrefslogtreecommitdiffstats
path: root/media/libmedia/IOMX.cpp
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 /media/libmedia/IOMX.cpp
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 'media/libmedia/IOMX.cpp')
-rw-r--r--media/libmedia/IOMX.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/media/libmedia/IOMX.cpp b/media/libmedia/IOMX.cpp
index 277bce1..0469fd5 100644
--- a/media/libmedia/IOMX.cpp
+++ b/media/libmedia/IOMX.cpp
@@ -240,7 +240,7 @@ public:
virtual status_t allocateBuffer(
node_id node, OMX_U32 port_index, size_t size,
- buffer_id *buffer) {
+ buffer_id *buffer, void **buffer_data) {
Parcel data, reply;
data.writeInterfaceToken(IOMX::getInterfaceDescriptor());
data.writeIntPtr((intptr_t)node);
@@ -255,7 +255,8 @@ public:
return err;
}
- *buffer = (void*)reply.readIntPtr();
+ *buffer = (void *)reply.readIntPtr();
+ *buffer_data = (void *)reply.readIntPtr();
return err;
}
@@ -569,11 +570,14 @@ status_t BnOMX::onTransact(
size_t size = data.readInt32();
buffer_id buffer;
- status_t err = allocateBuffer(node, port_index, size, &buffer);
+ void *buffer_data;
+ status_t err = allocateBuffer(
+ node, port_index, size, &buffer, &buffer_data);
reply->writeInt32(err);
if (err == OK) {
reply->writeIntPtr((intptr_t)buffer);
+ reply->writeIntPtr((intptr_t)buffer_data);
}
return NO_ERROR;