DO NOT MERGE: IOMX: work against metadata buffer spoofing
- Prohibit direct set/getParam/Settings for extensions meant for
OMXNodeInstance alone. This disallows enabling metadata mode
without the knowledge of OMXNodeInstance.
- Do not share metadata mode buffers cross process.
- Disallow setting up metadata mode/tunneling/input surface
after first sendCommand. (Except to Idle state for OMXCodec quirk.)
- Disallow store-meta for input cross process.
- Disallow emptyBuffer for surface input (via IOMX).
- Fix checking for input surface.
[backported from L-MR1]
Bug: 29422020
Change-Id: I801c77b80e703903f62e42d76fd2e76a34e4bc8e
diff --git a/include/media/IOMX.h b/include/media/IOMX.h
index 595e51f..6e4a4ac 100644
--- a/include/media/IOMX.h
+++ b/include/media/IOMX.h
@@ -99,7 +99,7 @@
virtual status_t useBuffer(
node_id node, OMX_U32 port_index, const sp<IMemory> ¶ms,
- buffer_id *buffer) = 0;
+ buffer_id *buffer, OMX_BOOL crossProcess = OMX_FALSE) = 0;
virtual status_t useGraphicBuffer(
node_id node, OMX_U32 port_index,
@@ -125,7 +125,7 @@
virtual status_t allocateBufferWithBackup(
node_id node, OMX_U32 port_index, const sp<IMemory> ¶ms,
- buffer_id *buffer) = 0;
+ buffer_id *buffer, OMX_BOOL crossProcess = OMX_FALSE) = 0;
virtual status_t freeBuffer(
node_id node, OMX_U32 port_index, buffer_id buffer) = 0;