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 | 570a3cb7582daa030cb38eedc5eb6a06f86ecc7f (patch) | |
tree | 0c59c44899b4a3fbbe921171028fd193829affc7 /media/libmedia/IOMX.cpp | |
parent | dfaddcc81f27bb9de47edec469a4a5fb2309bd6a (diff) | |
download | frameworks_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.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; |