Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 76161782 authored by Andreas Huber's avatar Andreas Huber
Browse files

Notify the OMX component that it's going to be used in "secure" mode.

Change-Id: Id87c4b295eb38f7d24045918e73df298d7b842f9
related-to-bug: 5137212
parent e7a0bc01
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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
+2 −0
Original line number Diff line number Diff line
@@ -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);
+23 −0
Original line number Diff line number Diff line
@@ -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);