diff options
| author | 2011-08-08 16:17:21 -0700 | |
|---|---|---|
| committer | 2011-08-08 16:17:21 -0700 | |
| commit | a00b97c94e774de28f0a2ed00e24acb9d644f2c8 (patch) | |
| tree | 3974b5789892e6a8c79a065f21e198307c68ac25 | |
| parent | f6a241fc212494fc7cdd27fd8d328d1124c6fa71 (diff) | |
| parent | 7616178271e95f009452a21ea45e7225997dc27a (diff) | |
Merge "Notify the OMX component that it's going to be used in "secure" mode."
| -rw-r--r-- | include/media/stagefright/HardwareAPI.h | 10 | ||||
| -rw-r--r-- | include/media/stagefright/OMXCodec.h | 2 | ||||
| -rwxr-xr-x | media/libstagefright/OMXCodec.cpp | 23 |
3 files changed, 35 insertions, 0 deletions
diff --git a/include/media/stagefright/HardwareAPI.h b/include/media/stagefright/HardwareAPI.h index 32eed3f79c6c..d785c48708c9 100644 --- a/include/media/stagefright/HardwareAPI.h +++ b/include/media/stagefright/HardwareAPI.h @@ -73,6 +73,16 @@ struct StoreMetaDataInBuffersParams { OMX_BOOL bStoreMetaData; }; +// A pointer to this struct is passed to OMX_SetParameter() when the extension +// index "OMX.google.android.index.enableSecureMode" +// is given. +// +struct EnableSecureModeParams { + OMX_U32 nSize; + OMX_VERSIONTYPE nVersion; + OMX_BOOL bEnableSecureMode; +}; + // A pointer to this struct is passed to OMX_SetParameter when the extension // index for the 'OMX.google.android.index.useAndroidNativeBuffer' extension is // given. This call will only be performed if a prior call was made with the diff --git a/include/media/stagefright/OMXCodec.h b/include/media/stagefright/OMXCodec.h index 2932744f0e6b..2a1b3d814f41 100644 --- a/include/media/stagefright/OMXCodec.h +++ b/include/media/stagefright/OMXCodec.h @@ -319,6 +319,8 @@ private: void initOutputFormat(const sp<MetaData> &inputFormat); status_t initNativeWindow(); + status_t enableSecureMode(); + void dumpPortStatus(OMX_U32 portIndex); status_t configureCodec(const sp<MetaData> &meta); diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp index a4f3922ee0e6..5327f3bd7abd 100755 --- a/media/libstagefright/OMXCodec.cpp +++ b/media/libstagefright/OMXCodec.cpp @@ -720,9 +720,32 @@ status_t OMXCodec::configureCodec(const sp<MetaData> &meta) { } } + if (mFlags & kUseSecureInputBuffers) { + (void)enableSecureMode(); + } + return OK; } +status_t OMXCodec::enableSecureMode() { + OMX_INDEXTYPE index; + + status_t err = + mOMX->getExtensionIndex( + mNode, "OMX.google.android.index.enableSecureMode", &index); + + if (err != OK) { + return err; + } + + EnableSecureModeParams params; + InitOMXParams(¶ms); + + params.bEnableSecureMode = OMX_TRUE; + + return mOMX->setConfig(mNode, index, ¶ms, sizeof(params)); +} + void OMXCodec::setMinBufferSize(OMX_U32 portIndex, OMX_U32 size) { OMX_PARAM_PORTDEFINITIONTYPE def; InitOMXParams(&def); |