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

Commit 3b7f9769 authored by Robert Shih's avatar Robert Shih Committed by Android (Google) Code Review
Browse files

Merge "libmediadrm: associate plugin & framework metrics" into sc-dev

parents c5df1afd 7e36f266
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -317,8 +317,7 @@ void DrmHal::cleanup() {
    closeOpenSessions();

    Mutex::Autolock autoLock(mLock);
    reportPluginMetrics();
    reportFrameworkMetrics();
    reportFrameworkMetrics(reportPluginMetrics());

    setListener(NULL);
    mInitCheck = NO_INIT;
@@ -1464,7 +1463,7 @@ status_t DrmHal::signRSA(Vector<uint8_t> const &sessionId,
    return hResult.isOk() ? err : DEAD_OBJECT;
}

void DrmHal::reportFrameworkMetrics() const
std::string DrmHal::reportFrameworkMetrics(const std::string& pluginMetrics) const
{
    mediametrics_handle_t item(mediametrics_create("mediadrm"));
    mediametrics_setUid(item, mMetrics.GetAppUid());
@@ -1493,21 +1492,26 @@ void DrmHal::reportFrameworkMetrics() const
    if (!b64EncodedMetrics.empty()) {
        mediametrics_setCString(item, "serialized_metrics", b64EncodedMetrics.c_str());
    }
    if (!pluginMetrics.empty()) {
        mediametrics_setCString(item, "plugin_metrics", pluginMetrics.c_str());
    }
    if (!mediametrics_selfRecord(item)) {
        ALOGE("Failed to self record framework metrics");
    }
    mediametrics_delete(item);
    return serializedMetrics;
}

void DrmHal::reportPluginMetrics() const
std::string DrmHal::reportPluginMetrics() const
{
    Vector<uint8_t> metricsVector;
    String8 vendor;
    String8 description;
    std::string metricsString;
    if (getPropertyStringInternal(String8("vendor"), vendor) == OK &&
            getPropertyStringInternal(String8("description"), description) == OK &&
            getPropertyByteArrayInternal(String8("metrics"), metricsVector) == OK) {
        std::string metricsString = toBase64StringNoPad(metricsVector.array(),
        metricsString = toBase64StringNoPad(metricsVector.array(),
                                                        metricsVector.size());
        status_t res = android::reportDrmPluginMetrics(metricsString, vendor,
                                                       description, mMetrics.GetAppUid());
@@ -1515,6 +1519,7 @@ void DrmHal::reportPluginMetrics() const
            ALOGE("Metrics were retrieved but could not be reported: %d", res);
        }
    }
    return metricsString;
}

bool DrmHal::requiresSecureDecoder(const char *mime) const {
+2 −2
Original line number Diff line number Diff line
@@ -241,8 +241,8 @@ private:

    void writeByteArray(Parcel &obj, const hidl_vec<uint8_t>& array);

    void reportPluginMetrics() const;
    void reportFrameworkMetrics() const;
    std::string reportPluginMetrics() const;
    std::string reportFrameworkMetrics(const std::string& pluginMetrics) const;
    status_t getPropertyStringInternal(String8 const &name, String8 &value) const;
    status_t getPropertyByteArrayInternal(String8 const &name,
                                          Vector<uint8_t> &value) const;