Add metrics_dump, a tool to format drm metrics
[ Merge of http://go/wvgerrit/59022 ] Android metrics are output by the adb shell command |dumpsys media.metrics|. They appear in bugreports and can also be requested interactively. Both the widevine and framework mediadrm metrics are base64 encoded protobufs detailing each of the metrics items. This tool prints them in a readable format. Test: wv android unit/integration tests Change-Id: Id1bc05b34693a3ca44dd3872a28a2337b3ce4d79
This commit is contained in:
@@ -941,7 +941,7 @@ void PrintTo(const enum CdmLicenseType& value, ::std::ostream* os) {
|
||||
*os << "Unknown CdmLicenseType";
|
||||
break;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
void PrintTo(const enum CdmSecurityLevel& value, ::std::ostream* os) {
|
||||
switch (value) {
|
||||
@@ -964,7 +964,7 @@ void PrintTo(const enum CdmSecurityLevel& value, ::std::ostream* os) {
|
||||
*os << "Unknown CdmSecurityLevel";
|
||||
break;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
void PrintTo(const enum CdmCertificateType& value, ::std::ostream* os) {
|
||||
switch (value) {
|
||||
@@ -978,6 +978,182 @@ void PrintTo(const enum CdmCertificateType& value, ::std::ostream* os) {
|
||||
*os << "Unknown CdmCertificateType";
|
||||
break;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
void PrintTo(const enum OEMCryptoResult& value, ::std::ostream* os) {
|
||||
switch (value) {
|
||||
case OEMCrypto_SUCCESS:
|
||||
*os << "SUCCESS";
|
||||
break;
|
||||
case OEMCrypto_ERROR_INIT_FAILED:
|
||||
*os << "INIT_FAILED";
|
||||
break;
|
||||
case OEMCrypto_ERROR_TERMINATE_FAILED:
|
||||
*os << "TERMINATE_FAILED";
|
||||
break;
|
||||
case OEMCrypto_ERROR_OPEN_FAILURE:
|
||||
*os << "OPEN_FAILURE";
|
||||
break;
|
||||
case OEMCrypto_ERROR_CLOSE_FAILURE:
|
||||
*os << "CLOSE_FAILURE";
|
||||
break;
|
||||
case OEMCrypto_ERROR_ENTER_SECURE_PLAYBACK_FAILED:
|
||||
*os << "ENTER_SECURE_PLAYBACK_FAILED";
|
||||
break;
|
||||
case OEMCrypto_ERROR_EXIT_SECURE_PLAYBACK_FAILED:
|
||||
*os << "EXIT_SECURE_PLAYBACK_FAILED";
|
||||
break;
|
||||
case OEMCrypto_ERROR_SHORT_BUFFER:
|
||||
*os << "SHORT_BUFFER";
|
||||
break;
|
||||
case OEMCrypto_ERROR_NO_DEVICE_KEY:
|
||||
*os << "NO_DEVICE_KEY";
|
||||
break;
|
||||
case OEMCrypto_ERROR_NO_ASSET_KEY:
|
||||
*os << "NO_ASSET_KEY";
|
||||
break;
|
||||
case OEMCrypto_ERROR_KEYBOX_INVALID:
|
||||
*os << "KEYBOX_INVALID";
|
||||
break;
|
||||
case OEMCrypto_ERROR_NO_KEYDATA:
|
||||
*os << "NO_KEYDATA";
|
||||
break;
|
||||
case OEMCrypto_ERROR_NO_CW:
|
||||
*os << "NO_CW";
|
||||
break;
|
||||
case OEMCrypto_ERROR_DECRYPT_FAILED:
|
||||
*os << "DECRYPT_FAILED";
|
||||
break;
|
||||
case OEMCrypto_ERROR_WRITE_KEYBOX:
|
||||
*os << "WRITE_KEYBOX";
|
||||
break;
|
||||
case OEMCrypto_ERROR_WRAP_KEYBOX:
|
||||
*os << "WRAP_KEYBOX";
|
||||
break;
|
||||
case OEMCrypto_ERROR_BAD_MAGIC:
|
||||
*os << "BAD_MAGIC";
|
||||
break;
|
||||
case OEMCrypto_ERROR_BAD_CRC:
|
||||
*os << "BAD_CRC";
|
||||
break;
|
||||
case OEMCrypto_ERROR_NO_DEVICEID:
|
||||
*os << "NO_DEVICEID";
|
||||
break;
|
||||
case OEMCrypto_ERROR_RNG_FAILED:
|
||||
*os << "RNG_FAILED";
|
||||
break;
|
||||
case OEMCrypto_ERROR_RNG_NOT_SUPPORTED:
|
||||
*os << "RNG_NOT_SUPPORTED";
|
||||
break;
|
||||
case OEMCrypto_ERROR_SETUP:
|
||||
*os << "SETUP";
|
||||
break;
|
||||
case OEMCrypto_ERROR_OPEN_SESSION_FAILED:
|
||||
*os << "OPEN_SESSION_FAILED";
|
||||
break;
|
||||
case OEMCrypto_ERROR_CLOSE_SESSION_FAILED:
|
||||
*os << "CLOSE_SESSION_FAILED";
|
||||
break;
|
||||
case OEMCrypto_ERROR_INVALID_SESSION:
|
||||
*os << "INVALID_SESSION";
|
||||
break;
|
||||
case OEMCrypto_ERROR_NOT_IMPLEMENTED:
|
||||
*os << "NOT_IMPLEMENTED";
|
||||
break;
|
||||
case OEMCrypto_ERROR_NO_CONTENT_KEY:
|
||||
*os << "NO_CONTENT_KEY";
|
||||
break;
|
||||
case OEMCrypto_ERROR_CONTROL_INVALID:
|
||||
*os << "CONTROL_INVALID";
|
||||
break;
|
||||
case OEMCrypto_ERROR_UNKNOWN_FAILURE:
|
||||
*os << "UNKNOWN_FAILURE";
|
||||
break;
|
||||
case OEMCrypto_ERROR_INVALID_CONTEXT:
|
||||
*os << "INVALID_CONTEXT";
|
||||
break;
|
||||
case OEMCrypto_ERROR_SIGNATURE_FAILURE:
|
||||
*os << "SIGNATURE_FAILURE";
|
||||
break;
|
||||
case OEMCrypto_ERROR_TOO_MANY_SESSIONS:
|
||||
*os << "TOO_MANY_SESSIONS";
|
||||
break;
|
||||
case OEMCrypto_ERROR_INVALID_NONCE:
|
||||
*os << "INVALID_NONCE";
|
||||
break;
|
||||
case OEMCrypto_ERROR_TOO_MANY_KEYS:
|
||||
*os << "TOO_MANY_KEYS";
|
||||
break;
|
||||
case OEMCrypto_ERROR_DEVICE_NOT_RSA_PROVISIONED:
|
||||
*os << "DEVICE_NOT_RSA_PROVISIONED";
|
||||
break;
|
||||
case OEMCrypto_ERROR_INVALID_RSA_KEY:
|
||||
*os << "INVALID_RSA_KEY";
|
||||
break;
|
||||
case OEMCrypto_ERROR_KEY_EXPIRED:
|
||||
*os << "KEY_EXPIRED";
|
||||
break;
|
||||
case OEMCrypto_ERROR_INSUFFICIENT_RESOURCES:
|
||||
*os << "INSUFFICIENT_RESOURCES";
|
||||
break;
|
||||
case OEMCrypto_ERROR_INSUFFICIENT_HDCP:
|
||||
*os << "INSUFFICIENT_HDCP";
|
||||
break;
|
||||
case OEMCrypto_ERROR_BUFFER_TOO_LARGE:
|
||||
*os << "BUFFER_TOO_LARGE";
|
||||
break;
|
||||
case OEMCrypto_WARNING_GENERATION_SKEW:
|
||||
*os << "OEMCrypto_WARNING_GENERATION_SKEW";
|
||||
break;
|
||||
case OEMCrypto_ERROR_GENERATION_SKEW:
|
||||
*os << "GENERATION_SKEW";
|
||||
break;
|
||||
case OEMCrypto_LOCAL_DISPLAY_ONLY:
|
||||
*os << "OEMCrypto_LOCAL_DISPLAY_ONLY";
|
||||
break;
|
||||
case OEMCrypto_ERROR_ANALOG_OUTPUT:
|
||||
*os << "ANALOG_OUTPUT";
|
||||
break;
|
||||
case OEMCrypto_ERROR_WRONG_PST:
|
||||
*os << "WRONG_PST";
|
||||
break;
|
||||
case OEMCrypto_ERROR_WRONG_KEYS:
|
||||
*os << "WRONG_KEYS";
|
||||
break;
|
||||
case OEMCrypto_ERROR_MISSING_MASTER:
|
||||
*os << "MISSING_MASTER";
|
||||
break;
|
||||
case OEMCrypto_ERROR_LICENSE_INACTIVE:
|
||||
*os << "LICENSE_INACTIVE";
|
||||
break;
|
||||
case OEMCrypto_ERROR_ENTRY_NEEDS_UPDATE:
|
||||
*os << "ENTRY_NEEDS_UPDATE";
|
||||
break;
|
||||
case OEMCrypto_ERROR_ENTRY_IN_USE:
|
||||
*os << "ENTRY_IN_USE";
|
||||
break;
|
||||
case OEMCrypto_ERROR_USAGE_TABLE_UNRECOVERABLE:
|
||||
*os << "USAGE_TABLE_UNRECOVERABLE";
|
||||
break;
|
||||
case OEMCrypto_KEY_NOT_LOADED:
|
||||
*os << "OEMCrypto_KEY_NOT_LOADED";
|
||||
break;
|
||||
case OEMCrypto_KEY_NOT_ENTITLED:
|
||||
*os << "OEMCrypto_KEY_NOT_ENTITLED";
|
||||
break;
|
||||
case OEMCrypto_ERROR_BAD_HASH:
|
||||
*os << "BAD_HASH";
|
||||
break;
|
||||
case OEMCrypto_ERROR_OUTPUT_TOO_LARGE:
|
||||
*os << "OUTPUT_TOO_LARGE";
|
||||
break;
|
||||
case OEMCrypto_ERROR_SESSION_LOST_STATE:
|
||||
*os << "SESSION_LOST_STATE";
|
||||
break;
|
||||
case OEMCrypto_ERROR_SYSTEM_INVALIDATED:
|
||||
*os << "SYSTEM_INVALIDATED";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace wvcdm
|
||||
|
||||
Reference in New Issue
Block a user