diff options
author | Andreas Huber <andih@google.com> | 2013-07-17 13:55:26 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2013-07-17 15:27:31 -0700 |
commit | e40cda70eec141fa05cbcca1de420fdb22b98be6 (patch) | |
tree | 44ba825722026f73ceb0c27e5e58c47ab9e884fa /media/libmedia | |
parent | 5478f3c44b9d6670261733953a71a8290fa70ae8 (diff) | |
download | frameworks_av-e40cda70eec141fa05cbcca1de420fdb22b98be6.zip frameworks_av-e40cda70eec141fa05cbcca1de420fdb22b98be6.tar.gz frameworks_av-e40cda70eec141fa05cbcca1de420fdb22b98be6.tar.bz2 |
Support "suspension" of a video encoder in "surface-input" mode.
i.e. feed no more input frames to the encoder while suspended.
Change-Id: I51391e18c1517548e869f8ddece19f4af37e78f9
Diffstat (limited to 'media/libmedia')
-rw-r--r-- | media/libmedia/IOMX.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/media/libmedia/IOMX.cpp b/media/libmedia/IOMX.cpp index d6cd43a..5bbb2f0 100644 --- a/media/libmedia/IOMX.cpp +++ b/media/libmedia/IOMX.cpp @@ -51,6 +51,7 @@ enum { GET_EXTENSION_INDEX, OBSERVER_ON_MSG, GET_GRAPHIC_BUFFER_USAGE, + SET_INTERNAL_OPTION, }; class BpOMX : public BpInterface<IOMX> { @@ -439,6 +440,24 @@ public: return err; } + + virtual status_t setInternalOption( + node_id node, + OMX_U32 port_index, + InternalOptionType type, + const void *optionData, + size_t size) { + Parcel data, reply; + data.writeInterfaceToken(IOMX::getInterfaceDescriptor()); + data.writeIntPtr((intptr_t)node); + data.writeInt32(port_index); + data.writeInt32(size); + data.write(optionData, size); + data.writeInt32(type); + remote()->transact(SET_INTERNAL_OPTION, data, &reply); + + return reply.readInt32(); + } }; IMPLEMENT_META_INTERFACE(OMX, "android.hardware.IOMX"); @@ -537,6 +556,7 @@ status_t BnOMX::onTransact( case SET_PARAMETER: case GET_CONFIG: case SET_CONFIG: + case SET_INTERNAL_OPTION: { CHECK_OMX_INTERFACE(IOMX, data, reply); @@ -562,6 +582,15 @@ status_t BnOMX::onTransact( case SET_CONFIG: err = setConfig(node, index, params, size); break; + case SET_INTERNAL_OPTION: + { + InternalOptionType type = + (InternalOptionType)data.readInt32(); + + err = setInternalOption(node, index, type, params, size); + break; + } + default: TRESPASS(); } |