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); |