libmediadrm: associate plugin & framework metrics
Bug: 141714243
Test: MediaDrmMetricsTest
Change-Id: I27bb22b202dd9265dbd98d976653ba5d9ee241cb
diff --git a/drm/libmediadrm/DrmHal.cpp b/drm/libmediadrm/DrmHal.cpp
index ba801e7..253a1fa 100644
--- a/drm/libmediadrm/DrmHal.cpp
+++ b/drm/libmediadrm/DrmHal.cpp
@@ -317,8 +317,7 @@
closeOpenSessions();
Mutex::Autolock autoLock(mLock);
- reportPluginMetrics();
- reportFrameworkMetrics();
+ reportFrameworkMetrics(reportPluginMetrics());
setListener(NULL);
mInitCheck = NO_INIT;
@@ -1464,7 +1463,7 @@
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 @@
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 @@
ALOGE("Metrics were retrieved but could not be reported: %d", res);
}
}
+ return metricsString;
}
bool DrmHal::requiresSecureDecoder(const char *mime) const {