Fix no-copy-overhead OMXCodec implementation to actually work.
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 @@
             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 @@
         IOMX::buffer_id mBuffer;
         bool mOwnedByComponent;
         sp<IMemory> mMem;
+        size_t mSize;
+        void *mData;
         MediaBuffer *mMediaBuffer;
     };