summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Andreas Huber <andih@google.com> 2011-08-08 16:17:21 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2011-08-08 16:17:21 -0700
commita00b97c94e774de28f0a2ed00e24acb9d644f2c8 (patch)
tree3974b5789892e6a8c79a065f21e198307c68ac25
parentf6a241fc212494fc7cdd27fd8d328d1124c6fa71 (diff)
parent7616178271e95f009452a21ea45e7225997dc27a (diff)
Merge "Notify the OMX component that it's going to be used in "secure" mode."
-rw-r--r--include/media/stagefright/HardwareAPI.h10
-rw-r--r--include/media/stagefright/OMXCodec.h2
-rwxr-xr-xmedia/libstagefright/OMXCodec.cpp23
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(&params);
+
+ params.bEnableSecureMode = OMX_TRUE;
+
+ return mOMX->setConfig(mNode, index, &params, sizeof(params));
+}
+
void OMXCodec::setMinBufferSize(OMX_U32 portIndex, OMX_U32 size) {
OMX_PARAM_PORTDEFINITIONTYPE def;
InitOMXParams(&def);