diff options
author | Andreas Huber <andih@google.com> | 2010-01-20 15:05:46 -0800 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2010-01-20 15:05:46 -0800 |
commit | c712b9fe2859435ce142b90ddcb46c5bed33eea8 (patch) | |
tree | 945f8e980662cc7bbad93e603d3c038d5d04ede1 /media/libmedia/IOMX.cpp | |
parent | 918007b75539f5eabfd173a369c2da628c607ba7 (diff) | |
download | frameworks_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.cpp | 10 |
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; |