summaryrefslogtreecommitdiffstats
path: root/media/libmedia
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2013-08-06 23:55:31 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-08-06 23:55:31 +0000
commit89a70f71cef61d10437b3901e8efc1f082a857c5 (patch)
treea973a3c580ab5de75ffc390a7eb52293028fb9c6 /media/libmedia
parente1e476669a5ee25f2a3c2fe30170e0f9a89f30a4 (diff)
parentd0715867861c216e88a4a7523b6da8a3cb128724 (diff)
downloadframeworks_av-89a70f71cef61d10437b3901e8efc1f082a857c5.zip
frameworks_av-89a70f71cef61d10437b3901e8efc1f082a857c5.tar.gz
frameworks_av-89a70f71cef61d10437b3901e8efc1f082a857c5.tar.bz2
Merge "IOMX: add updateGraphicBufferInMeta method for metadata mode"
Diffstat (limited to 'media/libmedia')
-rw-r--r--media/libmedia/IOMX.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/media/libmedia/IOMX.cpp b/media/libmedia/IOMX.cpp
index 5bbb2f0..ef99f4f 100644
--- a/media/libmedia/IOMX.cpp
+++ b/media/libmedia/IOMX.cpp
@@ -52,6 +52,7 @@ enum {
OBSERVER_ON_MSG,
GET_GRAPHIC_BUFFER_USAGE,
SET_INTERNAL_OPTION,
+ UPDATE_GRAPHIC_BUFFER_IN_META,
};
class BpOMX : public BpInterface<IOMX> {
@@ -283,6 +284,21 @@ public:
return err;
}
+ virtual status_t updateGraphicBufferInMeta(
+ node_id node, OMX_U32 port_index,
+ const sp<GraphicBuffer> &graphicBuffer, buffer_id buffer) {
+ Parcel data, reply;
+ data.writeInterfaceToken(IOMX::getInterfaceDescriptor());
+ data.writeIntPtr((intptr_t)node);
+ data.writeInt32(port_index);
+ data.write(*graphicBuffer);
+ data.writeIntPtr((intptr_t)buffer);
+ remote()->transact(UPDATE_GRAPHIC_BUFFER_IN_META, data, &reply);
+
+ status_t err = reply.readInt32();
+ return err;
+ }
+
virtual status_t createInputSurface(
node_id node, OMX_U32 port_index,
sp<IGraphicBufferProducer> *bufferProducer) {
@@ -691,6 +707,23 @@ status_t BnOMX::onTransact(
return NO_ERROR;
}
+ case UPDATE_GRAPHIC_BUFFER_IN_META:
+ {
+ CHECK_OMX_INTERFACE(IOMX, data, reply);
+
+ node_id node = (void*)data.readIntPtr();
+ OMX_U32 port_index = data.readInt32();
+ sp<GraphicBuffer> graphicBuffer = new GraphicBuffer();
+ data.read(*graphicBuffer);
+ buffer_id buffer = (void*)data.readIntPtr();
+
+ status_t err = updateGraphicBufferInMeta(
+ node, port_index, graphicBuffer, buffer);
+ reply->writeInt32(err);
+
+ return NO_ERROR;
+ }
+
case CREATE_INPUT_SURFACE:
{
CHECK_OMX_INTERFACE(IOMX, data, reply);