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
commitc712b9fe2859435ce142b90ddcb46c5bed33eea8 (patch)
tree945f8e980662cc7bbad93e603d3c038d5d04ede1 /media/libmedia/IOMX.cpp
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 '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;