From de779e7545fee3d2551da5a27b37a5b6d1a59092 Mon Sep 17 00:00:00 2001 From: Alex Dale Date: Wed, 5 Apr 2023 13:16:50 -0700 Subject: [PATCH] Moved OEMCryptoResult string converter. [ Merge of http://go/wvgerrit/170073 ] Removed the file "error_string_util.cpp" and its header, moving the OEMCryptoResult to string converter to "wv_cdm_types.cpp". This extra file served little purpose, and created a dependency on the CDM utils to the CDM itself. This is part of the effort to fix the formatting of WV metrics; making enum-to-string conversion uniform throughout the CDM. Bug: 239462891 Test: adb shell dumpsys android.hardware.drm.IDrmFactory/widevine -m Test: Manual testing with Google TV Change-Id: I4bf95d26b623f5b8fa86bdb2578cbc4ee65125cb --- libwvdrmengine/Android.bp | 1 - .../cdm/core/include/wv_cdm_types.h | 3 + libwvdrmengine/cdm/core/src/wv_cdm_types.cpp | 169 ++++++++++++++++- .../cdm/core/test/test_printers.cpp | 4 +- .../cdm/util/include/error_string_util.h | 11 -- .../cdm/util/src/error_string_util.cpp | 171 ------------------ libwvdrmengine/src/WVDrmFactory.cpp | 1 - libwvdrmengine/src/wv_metrics.cpp | 4 +- 8 files changed, 172 insertions(+), 192 deletions(-) delete mode 100644 libwvdrmengine/cdm/util/include/error_string_util.h delete mode 100644 libwvdrmengine/cdm/util/src/error_string_util.cpp diff --git a/libwvdrmengine/Android.bp b/libwvdrmengine/Android.bp index 4f44b613..56d8a808 100644 --- a/libwvdrmengine/Android.bp +++ b/libwvdrmengine/Android.bp @@ -195,7 +195,6 @@ cc_library_static { "cdm/src/timer.cpp", "cdm/util/src/cdm_random.cpp", "cdm/util/src/clock.cpp", - "cdm/util/src/error_string_util.cpp", "cdm/util/src/file_store.cpp", "cdm/util/src/file_utils.cpp", "cdm/util/src/log.cpp", diff --git a/libwvdrmengine/cdm/core/include/wv_cdm_types.h b/libwvdrmengine/cdm/core/include/wv_cdm_types.h index 0b667b1e..ce9c4905 100644 --- a/libwvdrmengine/cdm/core/include/wv_cdm_types.h +++ b/libwvdrmengine/cdm/core/include/wv_cdm_types.h @@ -944,6 +944,9 @@ const char* IdToString(const std::string& id); // Some CDM API function allow for optional string parameters to be // provided as string pointers. const char* IdPtrToString(const std::string* id); + +// Logging utilities for OEMCrypto types. +const char* OemCryptoResultToString(OEMCryptoResult result); } // namespace wvcdm #endif // WVCDM_CORE_WV_CDM_TYPES_H_ diff --git a/libwvdrmengine/cdm/core/src/wv_cdm_types.cpp b/libwvdrmengine/cdm/core/src/wv_cdm_types.cpp index 168bfc90..cca231e8 100644 --- a/libwvdrmengine/cdm/core/src/wv_cdm_types.cpp +++ b/libwvdrmengine/cdm/core/src/wv_cdm_types.cpp @@ -42,9 +42,8 @@ bool CdmResponseType::operator==(const CdmResponseType& other) const { std::string CdmResponseType::ToString() const { std::string result = CdmResponseEnumToString(code_); if (!HasOemcResult()) return result; - // TODO(sigquit): Consider using a string representation of OEMCryptoResult. result.append(" (oemc_result = "); - result.append(std::to_string(oemc_result_)); + result.append(OemCryptoResultToString(oemc_result_)); if (HasCryptoSessionMethod()) { result.append(", method = "); result.append(crypto_session_method_); @@ -867,7 +866,7 @@ const char* CdmResponseEnumToString(CdmResponseEnum cdm_response_enum) { case STORE_ATSC_LICENSE_ERROR: return "STORE_ATSC_LICENSE_ERROR"; } - return UnknownEnumValueToString(cdm_response_enum); + return UnknownValueRep(cdm_response_enum); } const char* UnknownEnumValueToString(int value) { @@ -884,4 +883,168 @@ const char* IdPtrToString(const std::string* id) { if (id == nullptr) return kNullIdRep; return id->empty() ? kEmptyIdRep : id->c_str(); } + +const char* OemCryptoResultToString(OEMCryptoResult result) { + switch (result) { + /* OEMCrypto return values */ + case OEMCrypto_SUCCESS: + return "SUCCESS"; + case OEMCrypto_ERROR_INIT_FAILED: + return "ERROR_INIT_FAILED"; + case OEMCrypto_ERROR_TERMINATE_FAILED: + return "ERROR_TERMINATE_FAILED"; + case OEMCrypto_ERROR_OPEN_FAILURE: + return "ERROR_OPEN_FAILURE"; + case OEMCrypto_ERROR_CLOSE_FAILURE: + return "ERROR_CLOSE_FAILURE"; + case OEMCrypto_ERROR_ENTER_SECURE_PLAYBACK_FAILED: + return "ERROR_ENTER_SECURE_PLAYBACK_FAILED"; + case OEMCrypto_ERROR_EXIT_SECURE_PLAYBACK_FAILED: + return "ERROR_EXIT_SECURE_PLAYBACK_FAILED"; + case OEMCrypto_ERROR_SHORT_BUFFER: + return "ERROR_SHORT_BUFFER"; + case OEMCrypto_ERROR_NO_DEVICE_KEY: + return "ERROR_NO_DEVICE_KEY"; + case OEMCrypto_ERROR_NO_ASSET_KEY: + return "ERROR_NO_ASSET_KEY"; + case OEMCrypto_ERROR_KEYBOX_INVALID: + return "ERROR_KEYBOX_INVALID"; + case OEMCrypto_ERROR_NO_KEYDATA: + return "ERROR_NO_KEYDATA"; + case OEMCrypto_ERROR_NO_CW: + return "ERROR_NO_CW"; + case OEMCrypto_ERROR_DECRYPT_FAILED: + return "ERROR_DECRYPT_FAILED"; + case OEMCrypto_ERROR_WRITE_KEYBOX: + return "ERROR_WRITE_KEYBOX"; + case OEMCrypto_ERROR_WRAP_KEYBOX: + return "ERROR_WRAP_KEYBOX"; + case OEMCrypto_ERROR_BAD_MAGIC: + return "ERROR_BAD_MAGIC"; + case OEMCrypto_ERROR_BAD_CRC: + return "ERROR_BAD_CRC"; + case OEMCrypto_ERROR_NO_DEVICEID: + return "ERROR_NO_DEVICEID"; + case OEMCrypto_ERROR_RNG_FAILED: + return "ERROR_RNG_FAILED"; + case OEMCrypto_ERROR_RNG_NOT_SUPPORTED: + return "ERROR_RNG_NOT_SUPPORTED"; + case OEMCrypto_ERROR_SETUP: + return "ERROR_SETUP"; + case OEMCrypto_ERROR_OPEN_SESSION_FAILED: + return "ERROR_OPEN_SESSION_FAILED"; + case OEMCrypto_ERROR_CLOSE_SESSION_FAILED: + return "ERROR_CLOSE_SESSION_FAILED"; + case OEMCrypto_ERROR_INVALID_SESSION: + return "ERROR_INVALID_SESSION"; + case OEMCrypto_ERROR_NOT_IMPLEMENTED: + return "ERROR_NOT_IMPLEMENTED"; + case OEMCrypto_ERROR_NO_CONTENT_KEY: + return "ERROR_NO_CONTENT_KEY"; + case OEMCrypto_ERROR_CONTROL_INVALID: + return "ERROR_CONTROL_INVALID"; + case OEMCrypto_ERROR_UNKNOWN_FAILURE: + return "ERROR_UNKNOWN_FAILURE"; + case OEMCrypto_ERROR_INVALID_CONTEXT: + return "ERROR_INVALID_CONTEXT"; + case OEMCrypto_ERROR_SIGNATURE_FAILURE: + return "ERROR_SIGNATURE_FAILURE"; + case OEMCrypto_ERROR_TOO_MANY_SESSIONS: + return "ERROR_TOO_MANY_SESSIONS"; + case OEMCrypto_ERROR_INVALID_NONCE: + return "ERROR_INVALID_NONCE"; + case OEMCrypto_ERROR_TOO_MANY_KEYS: + return "ERROR_TOO_MANY_KEYS"; + case OEMCrypto_ERROR_DEVICE_NOT_RSA_PROVISIONED: + return "ERROR_DEVICE_NOT_RSA_PROVISIONED"; + case OEMCrypto_ERROR_INVALID_RSA_KEY: + return "ERROR_INVALID_RSA_KEY"; + case OEMCrypto_ERROR_KEY_EXPIRED: + return "ERROR_KEY_EXPIRED"; + case OEMCrypto_ERROR_INSUFFICIENT_RESOURCES: + return "ERROR_INSUFFICIENT_RESOURCES"; + case OEMCrypto_ERROR_INSUFFICIENT_HDCP: + return "ERROR_INSUFFICIENT_HDCP"; + case OEMCrypto_ERROR_BUFFER_TOO_LARGE: + return "ERROR_BUFFER_TOO_LARGE"; + case OEMCrypto_WARNING_GENERATION_SKEW: + return "WARNING_GENERATION_SKEW"; + case OEMCrypto_ERROR_GENERATION_SKEW: + return "ERROR_GENERATION_SKEW"; + case OEMCrypto_LOCAL_DISPLAY_ONLY: + return "LOCAL_DISPLAY_ONLY"; + case OEMCrypto_ERROR_ANALOG_OUTPUT: + return "ERROR_ANALOG_OUTPUT"; + case OEMCrypto_ERROR_WRONG_PST: + return "ERROR_WRONG_PST"; + case OEMCrypto_ERROR_WRONG_KEYS: + return "ERROR_WRONG_KEYS"; + case OEMCrypto_ERROR_MISSING_MASTER: + return "ERROR_MISSING_MASTER"; + case OEMCrypto_ERROR_LICENSE_INACTIVE: + return "ERROR_LICENSE_INACTIVE"; + case OEMCrypto_ERROR_ENTRY_NEEDS_UPDATE: + return "ERROR_ENTRY_NEEDS_UPDATE"; + case OEMCrypto_ERROR_ENTRY_IN_USE: + return "ERROR_ENTRY_IN_USE"; + case OEMCrypto_ERROR_USAGE_TABLE_UNRECOVERABLE: + return "ERROR_USAGE_TABLE_UNRECOVERABLE"; + case OEMCrypto_KEY_NOT_LOADED: + return "KEY_NOT_LOADED"; + case OEMCrypto_KEY_NOT_ENTITLED: + return "KEY_NOT_ENTITLED"; + case OEMCrypto_ERROR_BAD_HASH: + return "ERROR_BAD_HASH"; + case OEMCrypto_ERROR_OUTPUT_TOO_LARGE: + return "ERROR_OUTPUT_TOO_LARGE"; + case OEMCrypto_ERROR_SESSION_LOST_STATE: + return "ERROR_SESSION_LOST_STATE"; + case OEMCrypto_ERROR_SYSTEM_INVALIDATED: + return "ERROR_SYSTEM_INVALIDATED"; + case OEMCrypto_ERROR_LICENSE_RELOAD: + return "ERROR_LICENSE_RELOAD"; + case OEMCrypto_ERROR_MULTIPLE_USAGE_ENTRIES: + return "ERROR_MULTIPLE_USAGE_ENTRIES"; + case OEMCrypto_WARNING_MIXED_OUTPUT_PROTECTION: + return "WARNING_MIXED_OUTPUT_PROTECTION"; + case OEMCrypto_ERROR_INVALID_ENTITLED_KEY_SESSION: + return "ERROR_INVALID_ENTITLED_KEY_SESSION"; + case OEMCrypto_ERROR_NEEDS_KEYBOX_PROVISIONING: + return "ERROR_NEEDS_KEYBOX_PROVISIONING"; + case OEMCrypto_ERROR_UNSUPPORTED_CIPHER: + return "ERROR_UNSUPPORTED_CIPHER"; + case OEMCrypto_ERROR_DVR_FORBIDDEN: + return "ERROR_DVR_FORBIDDEN"; + case OEMCrypto_ERROR_INSUFFICIENT_PRIVILEGE: + return "ERROR_INSUFFICIENT_PRIVILEGE"; + case OEMCrypto_ERROR_INVALID_KEY: + return "ERROR_INVALID_KEY"; + /* ODK return values */ + case ODK_ERROR_CORE_MESSAGE: + return "ERROR_CORE_MESSAGE"; + case ODK_SET_TIMER: + return "SET_TIMER"; + case ODK_DISABLE_TIMER: + return "DISABLE_TIMER"; + case ODK_TIMER_EXPIRED: + return "TIMER_EXPIRED"; + case ODK_UNSUPPORTED_API: + return "UNSUPPORTED_API"; + case ODK_STALE_RENEWAL: + return "STALE_RENEWAL"; + /* OPK return values */ + case OPK_ERROR_REMOTE_CALL: + return "ERROR_REMOTE_CALL"; + case OPK_ERROR_INCOMPATIBLE_VERSION: + return "ERROR_INCOMPATIBLE_VERSION"; + case OPK_ERROR_NO_PERSISTENT_DATA: + return "ERROR_NO_PERSISTENT_DATA"; + case OPK_ERROR_PREHOOK_FAILURE: + return "ERROR_PREHOOK_FAILURE"; + case OPK_ERROR_POSTHOOK_FAILURE: + return "ERROR_POSTHOOK_FAILURE"; + } + return UnknownValueRep(result); +} + } // namespace wvcdm diff --git a/libwvdrmengine/cdm/core/test/test_printers.cpp b/libwvdrmengine/cdm/core/test/test_printers.cpp index 4df1454d..b39b4bc4 100644 --- a/libwvdrmengine/cdm/core/test/test_printers.cpp +++ b/libwvdrmengine/cdm/core/test/test_printers.cpp @@ -6,8 +6,6 @@ #include "test_printers.h" -#include "error_string_util.h" - namespace wvcdm { void PrintTo(CdmResponseEnum value, ::std::ostream* os) { *os << CdmResponseEnumToString(value); @@ -72,7 +70,7 @@ void PrintTo(const enum CdmCertificateType& value, ::std::ostream* os) { } void PrintTo(const enum OEMCryptoResult& value, ::std::ostream* os) { - *os << wvutil::OEMCryptoResultToString(value); + *os << OemCryptoResultToString(value); } namespace okp { diff --git a/libwvdrmengine/cdm/util/include/error_string_util.h b/libwvdrmengine/cdm/util/include/error_string_util.h deleted file mode 100644 index 8be4eaa9..00000000 --- a/libwvdrmengine/cdm/util/include/error_string_util.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef ERROR_STRING_UTIL_H_ -#define ERROR_STRING_UTIL_H_ - -#include - -namespace wvutil { - -const std::string OEMCryptoResultToString(int oemcrypto_result); - -} // namespace wvutil -#endif // ERROR_STRING_UTIL_H_ diff --git a/libwvdrmengine/cdm/util/src/error_string_util.cpp b/libwvdrmengine/cdm/util/src/error_string_util.cpp deleted file mode 100644 index d70a6a8e..00000000 --- a/libwvdrmengine/cdm/util/src/error_string_util.cpp +++ /dev/null @@ -1,171 +0,0 @@ -// Copyright 2022 Google LLC. All Rights Reserved. This file and proprietary -// source code may only be used and distributed under the Widevine License -// Agreement. -// - -#include "error_string_util.h" - -#include "OEMCryptoCENC.h" -#include "wv_cdm_types.h" - -namespace wvutil { -const std::string OEMCryptoResultToString(int oemcrypto_result) { - switch (oemcrypto_result) { - case OEMCrypto_SUCCESS: - return "SUCCESS"; - case OEMCrypto_ERROR_INIT_FAILED: - return "INIT_FAILED"; - case OEMCrypto_ERROR_TERMINATE_FAILED: - return "TERMINATE_FAILED"; - case OEMCrypto_ERROR_OPEN_FAILURE: - return "OPEN_FAILURE"; - case OEMCrypto_ERROR_CLOSE_FAILURE: - return "CLOSE_FAILURE"; - case OEMCrypto_ERROR_ENTER_SECURE_PLAYBACK_FAILED: - return "ENTER_SECURE_PLAYBACK_FAILED"; - case OEMCrypto_ERROR_EXIT_SECURE_PLAYBACK_FAILED: - return "EXIT_SECURE_PLAYBACK_FAILED"; - case OEMCrypto_ERROR_SHORT_BUFFER: - return "SHORT_BUFFER"; - case OEMCrypto_ERROR_NO_DEVICE_KEY: - return "NO_DEVICE_KEY"; - case OEMCrypto_ERROR_NO_ASSET_KEY: - return "NO_ASSET_KEY"; - case OEMCrypto_ERROR_KEYBOX_INVALID: - return "KEYBOX_INVALID"; - case OEMCrypto_ERROR_NO_KEYDATA: - return "NO_KEYDATA"; - case OEMCrypto_ERROR_NO_CW: - return "NO_CW"; - case OEMCrypto_ERROR_DECRYPT_FAILED: - return "DECRYPT_FAILED"; - case OEMCrypto_ERROR_WRITE_KEYBOX: - return "WRITE_KEYBOX"; - case OEMCrypto_ERROR_WRAP_KEYBOX: - return "WRAP_KEYBOX"; - case OEMCrypto_ERROR_BAD_MAGIC: - return "BAD_MAGIC"; - case OEMCrypto_ERROR_BAD_CRC: - return "BAD_CRC"; - case OEMCrypto_ERROR_NO_DEVICEID: - return "NO_DEVICEID"; - case OEMCrypto_ERROR_RNG_FAILED: - return "RNG_FAILED"; - case OEMCrypto_ERROR_RNG_NOT_SUPPORTED: - return "RNG_NOT_SUPPORTED"; - case OEMCrypto_ERROR_SETUP: - return "SETUP"; - case OEMCrypto_ERROR_OPEN_SESSION_FAILED: - return "OPEN_SESSION_FAILED"; - case OEMCrypto_ERROR_CLOSE_SESSION_FAILED: - return "CLOSE_SESSION_FAILED"; - case OEMCrypto_ERROR_INVALID_SESSION: - return "INVALID_SESSION"; - case OEMCrypto_ERROR_NOT_IMPLEMENTED: - return "NOT_IMPLEMENTED"; - case OEMCrypto_ERROR_NO_CONTENT_KEY: - return "NO_CONTENT_KEY"; - case OEMCrypto_ERROR_CONTROL_INVALID: - return "CONTROL_INVALID"; - case OEMCrypto_ERROR_UNKNOWN_FAILURE: - return "UNKNOWN_FAILURE"; - case OEMCrypto_ERROR_INVALID_CONTEXT: - return "INVALID_CONTEXT"; - case OEMCrypto_ERROR_SIGNATURE_FAILURE: - return "SIGNATURE_FAILURE"; - case OEMCrypto_ERROR_TOO_MANY_SESSIONS: - return "TOO_MANY_SESSIONS"; - case OEMCrypto_ERROR_INVALID_NONCE: - return "INVALID_NONCE"; - case OEMCrypto_ERROR_TOO_MANY_KEYS: - return "TOO_MANY_KEYS"; - case OEMCrypto_ERROR_DEVICE_NOT_RSA_PROVISIONED: - return "DEVICE_NOT_RSA_PROVISIONED"; - case OEMCrypto_ERROR_INVALID_RSA_KEY: - return "INVALID_RSA_KEY"; - case OEMCrypto_ERROR_KEY_EXPIRED: - return "KEY_EXPIRED"; - case OEMCrypto_ERROR_INSUFFICIENT_RESOURCES: - return "INSUFFICIENT_RESOURCES"; - case OEMCrypto_ERROR_INSUFFICIENT_HDCP: - return "INSUFFICIENT_HDCP"; - case OEMCrypto_ERROR_BUFFER_TOO_LARGE: - return "BUFFER_TOO_LARGE"; - case OEMCrypto_WARNING_GENERATION_SKEW: - return "OEMCrypto_WARNING_GENERATION_SKEW"; - case OEMCrypto_ERROR_GENERATION_SKEW: - return "GENERATION_SKEW"; - case OEMCrypto_LOCAL_DISPLAY_ONLY: - return "OEMCrypto_LOCAL_DISPLAY_ONLY"; - case OEMCrypto_ERROR_ANALOG_OUTPUT: - return "ANALOG_OUTPUT"; - case OEMCrypto_ERROR_WRONG_PST: - return "WRONG_PST"; - case OEMCrypto_ERROR_WRONG_KEYS: - return "WRONG_KEYS"; - case OEMCrypto_ERROR_MISSING_MASTER: - return "MISSING_MASTER"; - case OEMCrypto_ERROR_LICENSE_INACTIVE: - return "LICENSE_INACTIVE"; - case OEMCrypto_ERROR_ENTRY_NEEDS_UPDATE: - return "ENTRY_NEEDS_UPDATE"; - case OEMCrypto_ERROR_ENTRY_IN_USE: - return "ENTRY_IN_USE"; - case OEMCrypto_ERROR_USAGE_TABLE_UNRECOVERABLE: - return "USAGE_TABLE_UNRECOVERABLE"; - case OEMCrypto_KEY_NOT_LOADED: - return "OEMCrypto_KEY_NOT_LOADED"; - case OEMCrypto_KEY_NOT_ENTITLED: - return "OEMCrypto_KEY_NOT_ENTITLED"; - case OEMCrypto_ERROR_BAD_HASH: - return "BAD_HASH"; - case OEMCrypto_ERROR_OUTPUT_TOO_LARGE: - return "OUTPUT_TOO_LARGE"; - case OEMCrypto_ERROR_SESSION_LOST_STATE: - return "SESSION_LOST_STATE"; - case OEMCrypto_ERROR_SYSTEM_INVALIDATED: - return "SYSTEM_INVALIDATED"; - case OEMCrypto_ERROR_LICENSE_RELOAD: - return "LICENSE_RELOAD"; - case OEMCrypto_ERROR_MULTIPLE_USAGE_ENTRIES: - return "MULTIPLE_USAGE_ENTRIES"; - case OEMCrypto_WARNING_MIXED_OUTPUT_PROTECTION: - return "MIXED_OUTPUT_PROTECTION"; - case OEMCrypto_ERROR_INVALID_ENTITLED_KEY_SESSION: - return "INVALID_ENTITLED_KEY_SESSION"; - case OEMCrypto_ERROR_NEEDS_KEYBOX_PROVISIONING: - return "NEEDS_KEYBOX_PROVISIONING"; - case OEMCrypto_ERROR_UNSUPPORTED_CIPHER: - return "OEMCrypto_ERROR_UNSUPPORTED_CIPHER"; - case OEMCrypto_ERROR_DVR_FORBIDDEN: - return "OEMCrypto_ERROR_DVR_FORBIDDEN"; - case OEMCrypto_ERROR_INSUFFICIENT_PRIVILEGE: - return "OEMCrypto_ERROR_INSUFFICIENT_PRIVILEGE"; - case OEMCrypto_ERROR_INVALID_KEY: - return "INVALID_KEY"; - // ODK Values. - case ODK_ERROR_CORE_MESSAGE: - return "CORE_MESSAGE"; - case ODK_SET_TIMER: - return "SET_TIMER"; - case ODK_DISABLE_TIMER: - return "DISABLE_TIMER"; - case ODK_TIMER_EXPIRED: - return "TIMER_EXPIRED"; - case ODK_UNSUPPORTED_API: - return "UNSUPPORTED_API"; - case ODK_STALE_RENEWAL: - return "STALE_RENEWAL"; - // OPK Values. - case OPK_ERROR_INCOMPATIBLE_VERSION: - return "INCOMPATIBLE_VERSION"; - case OPK_ERROR_REMOTE_CALL: - return "REMOTE_CALL"; - case OPK_ERROR_NO_PERSISTENT_DATA: - return "NO_PERSISTENT_DATA"; - default: - return "Invalid OEMCrypto error."; - } -} - -} // namespace wvutil diff --git a/libwvdrmengine/src/WVDrmFactory.cpp b/libwvdrmengine/src/WVDrmFactory.cpp index 87ad8483..f33be24a 100644 --- a/libwvdrmengine/src/WVDrmFactory.cpp +++ b/libwvdrmengine/src/WVDrmFactory.cpp @@ -23,7 +23,6 @@ #include "WVUUID.h" #include "android-base/properties.h" #include "cutils/properties.h" -#include "error_string_util.h" #include "wv_cdm_constants.h" #include "wv_content_decryption_module.h" #include "wv_metrics.h" diff --git a/libwvdrmengine/src/wv_metrics.cpp b/libwvdrmengine/src/wv_metrics.cpp index 08e03cc9..8f0aca10 100644 --- a/libwvdrmengine/src/wv_metrics.cpp +++ b/libwvdrmengine/src/wv_metrics.cpp @@ -14,7 +14,6 @@ #include #include "OEMCryptoCENC.h" -#include "error_string_util.h" #include "wv_cdm_types.h" using namespace drm_metrics; @@ -202,7 +201,8 @@ string FormatAttributes(const string& indent, const Attributes& attributes) { result.append("oemcrypto_result:\n"); string next_indent = indent + kIndentSpaces; result.append(next_indent + "name: "); - result.append(::wvutil::OEMCryptoResultToString(attributes.oem_crypto_result())); + result.append(::wvcdm::OemCryptoResultToString( + static_cast(attributes.oem_crypto_result()))); result.append("\n" + next_indent + "value: "); result.append(to_string(attributes.oem_crypto_result())); }