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

Commit 8d2ed055 authored by Sohail Nagaraj's avatar Sohail Nagaraj
Browse files

Add DRM Hal pulgin version in MediaDrm atoms

Bug: 260066653

Test: gts-tradefed run gts --abi arm64-v8a -m GtsMediaTestCases
Test: atest CtsMediaDrmFrameworkTestCases

Change-Id: I7085ee81182798660a83b1177c97f24de4e936a3
parent 4a7bb7b4
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -75,6 +75,10 @@ DrmStatus DrmMetricsLogger::createPlugin(const uint8_t uuid[IDRM_UUID_SIZE],
    }
    DrmStatus status = mImpl->createPlugin(uuid, appPackageName);
    if (status == OK) {
        String8 version8;
        if (getPropertyString(String8("version"), version8) == OK) {
            mVersion = version8.string();
        }
        reportMediaDrmCreated();
    } else {
        reportMediaDrmErrored(status, __func__);
@@ -103,6 +107,9 @@ DrmStatus DrmMetricsLogger::openSession(DrmPlugin::SecurityLevel securityLevel,
        if (getSecurityLevel(sessionId, &ctx.mActualSecurityLevel) != OK) {
            ctx.mActualSecurityLevel = DrmPlugin::kSecurityLevelUnknown;
        }
        if (!mVersion.empty()) {
            ctx.mVersion = mVersion;
        }
        {
            const std::lock_guard<std::mutex> lock(mSessionMapMutex);
            mSessionMap.insert({sessionKey, ctx});
@@ -466,6 +473,7 @@ void DrmMetricsLogger::reportMediaDrmCreated() const {
    mediametrics_setInt64(handle, "uuid_lsb", mUuid[1]);
    mediametrics_setInt32(handle, "frontend", mFrontend);
    mediametrics_setCString(handle, "object_nonce", mObjNonce.c_str());
    mediametrics_setCString(handle, "version", mVersion.c_str());
    mediametrics_selfRecord(handle);
    mediametrics_delete(handle);
}
@@ -476,6 +484,7 @@ void DrmMetricsLogger::reportMediaDrmSessionOpened(const std::vector<uint8_t>& s
    mediametrics_setInt64(handle, "uuid_msb", mUuid[0]);
    mediametrics_setInt64(handle, "uuid_lsb", mUuid[1]);
    mediametrics_setInt32(handle, "frontend", mFrontend);
    mediametrics_setCString(handle, "version", mVersion.c_str());
    mediametrics_setCString(handle, "object_nonce", mObjNonce.c_str());
    const std::lock_guard<std::mutex> lock(mSessionMapMutex);
    auto it = mSessionMap.find(sessionId);
@@ -495,6 +504,7 @@ void DrmMetricsLogger::reportMediaDrmErrored(const DrmStatus& error_code, const
    mediametrics_setInt64(handle, "uuid_msb", mUuid[0]);
    mediametrics_setInt64(handle, "uuid_lsb", mUuid[1]);
    mediametrics_setInt32(handle, "frontend", mFrontend);
    mediametrics_setCString(handle, "version", mVersion.c_str());
    mediametrics_setCString(handle, "object_nonce", mObjNonce.c_str());
    if (!sessionId.empty()) {
        const std::lock_guard<std::mutex> lock(mSessionMapMutex);
+2 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ struct SessionContext {
    std::string mNonce;
    int64_t mTargetSecurityLevel;
    DrmPlugin::SecurityLevel mActualSecurityLevel;
    std::string mVersion;
};

class DrmMetricsLogger : public IDrm {
@@ -161,6 +162,7 @@ class DrmMetricsLogger : public IDrm {
    std::array<int64_t, 2> mUuid;
    std::string mObjNonce;
    std::string mScheme;
    std::string mVersion;
    std::map<std::vector<uint8_t>, SessionContext> mSessionMap;
    mutable std::mutex mSessionMapMutex;
    IDrmFrontend mFrontend;