Add more CdmResponseType to help with debugging in the field.
The errors in the range ERROR_DRM_VENDOR_MIN to ERROR_DRM_VENDOR_MAX are reflected in the message that is reported to the app, which is MediaDrmStateException.getDiagnosticInfo(). Many errors map to kErrorCDMGeneric, especially KEY_ERROR is used as a generic error in CDM. This fix defines more specific error codes in the CDM for places where KEY_ERROR is returned. Merge from http://go/wvgerrit/14071 bug: 19244061 Change-Id: I688bf32828f997000fea041dd29567dde18ac677
This commit is contained in:
@@ -29,6 +29,266 @@ static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) {
|
||||
return android::ERROR_DRM_DEVICE_REVOKED;
|
||||
case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES:
|
||||
return android::ERROR_DRM_RESOURCE_BUSY;
|
||||
case wvcdm::ADD_KEY_ERROR:
|
||||
return kAddKeyError;
|
||||
case wvcdm::CERT_PROVISIONING_GET_KEYBOX_ERROR_1:
|
||||
return kCertProvisioningGetKeyboxError1;
|
||||
case wvcdm::CERT_PROVISIONING_GET_KEYBOX_ERROR_2:
|
||||
return kCertProvisioningGetKeyboxError2;
|
||||
case wvcdm::CERT_PROVISIONING_INVALID_CERT_TYPE:
|
||||
return kCertProvisioningInvalidCertType;
|
||||
case wvcdm::CERT_PROVISIONING_REQUEST_ERROR_1:
|
||||
return kCertProvisioningRequestError1;
|
||||
case wvcdm::CERT_PROVISIONING_REQUEST_ERROR_2:
|
||||
return kCertProvisioningRequestError2;
|
||||
case wvcdm::CERT_PROVISIONING_REQUEST_ERROR_3:
|
||||
return kCertProvisioningRequestError3;
|
||||
case wvcdm::CERT_PROVISIONING_REQUEST_ERROR_4:
|
||||
return kCertProvisioningRequestError4;
|
||||
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_1:
|
||||
return kCertProvisioningResponseError1;
|
||||
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_2:
|
||||
return kCertProvisioningResponseError2;
|
||||
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_3:
|
||||
return kCertProvisioningResponseError3;
|
||||
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_4:
|
||||
return kCertProvisioningResponseError4;
|
||||
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_5:
|
||||
return kCertProvisioningResponseError5;
|
||||
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_6:
|
||||
return kCertProvisioningResponseError6;
|
||||
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_7:
|
||||
return kCertProvisioningResponseError7;
|
||||
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_8:
|
||||
return kCertProvisioningResponseError8;
|
||||
case wvcdm::CRYPTO_SESSION_OPEN_ERROR_1:
|
||||
return kCryptoSessionOpenError1;
|
||||
case wvcdm::CRYPTO_SESSION_OPEN_ERROR_2:
|
||||
return kCryptoSessionOpenError2;
|
||||
case wvcdm::CRYPTO_SESSION_OPEN_ERROR_3:
|
||||
return kCryptoSessionOpenError3;
|
||||
case wvcdm::CRYPTO_SESSION_OPEN_ERROR_4:
|
||||
return kCryptoSessionOpenError4;
|
||||
case wvcdm::CRYPTO_SESSION_OPEN_ERROR_5:
|
||||
return kCryptoSessionOpenError5;
|
||||
case wvcdm::DECRYPT_NOT_READY:
|
||||
return kDecyrptNotReady;
|
||||
case wvcdm::DEVICE_CERTIFICATE_ERROR_1:
|
||||
return kDeviceCertificateError1;
|
||||
case wvcdm::DEVICE_CERTIFICATE_ERROR_2:
|
||||
return kDeviceCertificateError2;
|
||||
case wvcdm::DEVICE_CERTIFICATE_ERROR_3:
|
||||
return kDeviceCertificateError3;
|
||||
case wvcdm::DEVICE_CERTIFICATE_ERROR_4:
|
||||
return kDeviceCertificateError4;
|
||||
case wvcdm::EMPTY_KEY_DATA_1:
|
||||
return kEmptyKeyData1;
|
||||
case wvcdm::EMPTY_KEY_DATA_2:
|
||||
return kEmptyKeyData2;
|
||||
case wvcdm::EMPTY_KEYSET_ID:
|
||||
return kEmptyKeySetId;
|
||||
case wvcdm::EMPTY_KEYSET_ID_ENG_1:
|
||||
return kEmptyKeySetIdEng1;
|
||||
case wvcdm::EMPTY_KEYSET_ID_ENG_2:
|
||||
return kEmptyKeySetIdEng2;
|
||||
case wvcdm::EMPTY_KEYSET_ID_ENG_3:
|
||||
return kEmptyKeySetIdEng3;
|
||||
case wvcdm::EMPTY_KEYSET_ID_ENG_4:
|
||||
return kEmptyKeySetIdEng4;
|
||||
case wvcdm::EMPTY_LICENSE_REQUEST:
|
||||
return kEmptyLicenseRequest;
|
||||
case wvcdm::EMPTY_LICENSE_RESPONSE_1:
|
||||
return kEmptyLicenseResponse1;
|
||||
case wvcdm::EMPTY_LICENSE_RESPONSE_2:
|
||||
return kEmptyLicenseResponse2;
|
||||
case wvcdm::EMPTY_PROVISIONING_CERTIFICATE:
|
||||
return kEmptyProvisioningCertificate;
|
||||
case wvcdm::EMPTY_PROVISIONING_RESPONSE:
|
||||
return kEmptyProvisioningResponse;
|
||||
case wvcdm::EMPTY_SESSION_ID:
|
||||
return kEmptySessionId;
|
||||
case wvcdm::GENERATE_DERIVED_KEYS_ERROR:
|
||||
return kGenerateDerivedKeysError;
|
||||
case wvcdm::GENERATE_NONCE_ERROR:
|
||||
return kGenerateNonceError;
|
||||
case wvcdm::GENERATE_USAGE_REPORT_ERROR:
|
||||
return kGenerateUsageReportError;
|
||||
case wvcdm::GET_LICENSE_ERROR:
|
||||
return kGetLicenseError;
|
||||
case wvcdm::GET_RELEASED_LICENSE_ERROR:
|
||||
return kGetReleasedLicenseError;
|
||||
case wvcdm::GET_USAGE_INFO_ERROR_1:
|
||||
return kGetUsageInfoError1;
|
||||
case wvcdm::GET_USAGE_INFO_ERROR_2:
|
||||
return kGetUsageInfoError2;
|
||||
case wvcdm::GET_USAGE_INFO_ERROR_3:
|
||||
return kGetUsageInfoError3;
|
||||
case wvcdm::GET_USAGE_INFO_ERROR_4:
|
||||
return kGetUsageInfoError4;
|
||||
case wvcdm::INIT_DATA_NOT_FOUND:
|
||||
return kInitDataNotFound;
|
||||
case wvcdm::INVALID_CRYPTO_SESSION_1:
|
||||
return kInvalidCryptoSession1;
|
||||
case wvcdm::INVALID_CRYPTO_SESSION_2:
|
||||
return kInvalidCryptoSession2;
|
||||
case wvcdm::INVALID_CRYPTO_SESSION_3:
|
||||
return kInvalidCryptoSession3;
|
||||
case wvcdm::INVALID_CRYPTO_SESSION_4:
|
||||
return kInvalidCryptoSession4;
|
||||
case wvcdm::INVALID_CRYPTO_SESSION_5:
|
||||
return kInvalidCryptoSession5;
|
||||
case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_1:
|
||||
return kInvalidDecryptParametersEng1;
|
||||
case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_2:
|
||||
return kInvalidDecryptParametersEng2;
|
||||
case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_3:
|
||||
return kInvalidDecryptParametersEng3;
|
||||
case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_4:
|
||||
return kInvalidDecryptParametersEng4;
|
||||
case wvcdm::SESSION_NOT_FOUND_FOR_DECRYPT:
|
||||
return kSessionNotFoundForDecrypt;
|
||||
case wvcdm::INVALID_DEVICE_CERTIFICATE_TYPE:
|
||||
return kInvalidDeviceCertificateType;
|
||||
case wvcdm::INVALID_KEY_SYSTEM:
|
||||
return kInvalidKeySystem;
|
||||
case wvcdm::INVALID_LICENSE_RESPONSE:
|
||||
return kInvalidLicenseResponse;
|
||||
case wvcdm::INVALID_LICENSE_TYPE:
|
||||
return kInvalidLicenseType;
|
||||
case wvcdm::INVALID_PARAMETERS_ENG_1:
|
||||
return kInvalidParametersEng1;
|
||||
case wvcdm::INVALID_PARAMETERS_ENG_2:
|
||||
return kInvalidParametersEng2;
|
||||
case wvcdm::INVALID_PARAMETERS_ENG_3:
|
||||
return kInvalidParametersEng3;
|
||||
case wvcdm::INVALID_PARAMETERS_ENG_4:
|
||||
return kInvalidParametersEng4;
|
||||
case wvcdm::INVALID_PARAMETERS_LIC_1:
|
||||
return kInvalidParametersLic1;
|
||||
case wvcdm::INVALID_PARAMETERS_LIC_2:
|
||||
return kInvalidParametersLic2;
|
||||
case wvcdm::INVALID_PROVISIONING_PARAMETERS_1:
|
||||
return kInvalidProvisioningParam1;
|
||||
case wvcdm::INVALID_PROVISIONING_PARAMETERS_2:
|
||||
return kInvalidProvisioningParam2;
|
||||
case wvcdm::INVALID_PROVISIONING_REQUEST_PARAM_1:
|
||||
return kInvalidProvisioningReqParam1;
|
||||
case wvcdm::INVALID_PROVISIONING_REQUEST_PARAM_2:
|
||||
return kInvalidProvisioningReqParam2;
|
||||
case wvcdm::INVALID_QUERY_KEY:
|
||||
return kInvalidQueryKey;
|
||||
case wvcdm::INVALID_SESSION_ID:
|
||||
return kInvalidSessionId;
|
||||
case wvcdm::KEY_REQUEST_ERROR_1:
|
||||
return kKeyRequestError1;
|
||||
case wvcdm::KEY_REQUEST_ERROR_2:
|
||||
return kKeyRequestError2;
|
||||
case wvcdm::KEY_SIZE_ERROR:
|
||||
return kKeySizeError;
|
||||
case wvcdm::KEYSET_ID_NOT_FOUND_1:
|
||||
return kKeySetIdNotFound1;
|
||||
case wvcdm::KEYSET_ID_NOT_FOUND_2:
|
||||
return kKeySetIdNotFound2;
|
||||
case wvcdm::KEYSET_ID_NOT_FOUND_3:
|
||||
return kKeySetIdNotFound3;
|
||||
case wvcdm::LICENSE_ID_NOT_FOUND:
|
||||
return kLicenseIdNotFound;
|
||||
case wvcdm::LICENSE_PARSER_INIT_ERROR:
|
||||
return kLicenseParserInitError;
|
||||
case wvcdm::LICENSE_PARSER_NOT_INITIALIZED_1:
|
||||
return kLicenseParserNotInitialized1;
|
||||
case wvcdm::LICENSE_PARSER_NOT_INITIALIZED_2:
|
||||
return kLicenseParserNotInitialized2;
|
||||
case wvcdm::LICENSE_PARSER_NOT_INITIALIZED_3:
|
||||
return kLicenseParserNotInitialized3;
|
||||
case wvcdm::LICENSE_RESPONSE_NOT_SIGNED:
|
||||
return kLicenseResponseNotSigned;
|
||||
case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_1:
|
||||
return kLicenseResponseParseError1;
|
||||
case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_2:
|
||||
return kLicenseResponseParseError2;
|
||||
case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_3:
|
||||
return kLicenseResponseParseError3;
|
||||
case wvcdm::LOAD_KEY_ERROR:
|
||||
return kLoadKeyError;
|
||||
case wvcdm::NO_CONTENT_KEY:
|
||||
return kNoContentKey;
|
||||
case wvcdm::REFRESH_KEYS_ERROR:
|
||||
return kRefreshKeysError;
|
||||
case wvcdm::RELEASE_ALL_USAGE_INFO_ERROR_1:
|
||||
return kReleaseAllUsageInfoError1;
|
||||
case wvcdm::RELEASE_ALL_USAGE_INFO_ERROR_2:
|
||||
return kReleaseAllUsageInfoError2;
|
||||
case wvcdm::RELEASE_KEY_ERROR:
|
||||
return kReleaseKeyError;
|
||||
case wvcdm::RELEASE_KEY_REQUEST_ERROR:
|
||||
return kReleaseKeyRequestError;
|
||||
case wvcdm::RELEASE_LICENSE_ERROR_1:
|
||||
return kReleaseLicenseError1;
|
||||
case wvcdm::RELEASE_LICENSE_ERROR_2:
|
||||
return kReleaseLicenseError2;
|
||||
case wvcdm::RELEASE_USAGE_INFO_ERROR:
|
||||
return kReleaseUsageInfoError;
|
||||
case wvcdm::RENEW_KEY_ERROR_1:
|
||||
return kRenewKeyError1;
|
||||
case wvcdm::RENEW_KEY_ERROR_2:
|
||||
return kRenewKeyError2;
|
||||
case wvcdm::RENEWAL_REQUEST_ERROR:
|
||||
return kRenewalRequestError;
|
||||
case wvcdm::RESTORE_OFFLINE_LICENSE_ERROR_1:
|
||||
return kRestoreOfflineLicenseError1;
|
||||
case wvcdm::RESTORE_OFFLINE_LICENSE_ERROR_2:
|
||||
return kRestoreOfflineLicenseError2;
|
||||
case wvcdm::SESSION_INIT_ERROR_1:
|
||||
return kSessionInitError1;
|
||||
case wvcdm::SESSION_INIT_ERROR_2:
|
||||
return kSessionInitError2;
|
||||
case wvcdm::SESSION_INIT_GET_KEYBOX_ERROR:
|
||||
return kSessionInitGetKeyboxError;
|
||||
case wvcdm::SESSION_NOT_FOUND_1:
|
||||
return kSessionNotFound1;
|
||||
case wvcdm::SESSION_NOT_FOUND_2:
|
||||
return kSessionNotFound2;
|
||||
case wvcdm::SESSION_NOT_FOUND_3:
|
||||
return kSessionNotFound3;
|
||||
case wvcdm::SESSION_NOT_FOUND_4:
|
||||
return kSessionNotFound4;
|
||||
case wvcdm::SESSION_NOT_FOUND_5:
|
||||
return kSessionNotFound5;
|
||||
case wvcdm::SESSION_NOT_FOUND_6:
|
||||
return kSessionNotFound6;
|
||||
case wvcdm::SESSION_NOT_FOUND_7:
|
||||
return kSessionNotFound7;
|
||||
case wvcdm::SESSION_NOT_FOUND_8:
|
||||
return kSessionNotFound8;
|
||||
case wvcdm::SESSION_NOT_FOUND_9:
|
||||
return kSessionNotFound9;
|
||||
case wvcdm::SESSION_NOT_FOUND_10:
|
||||
return kSessionNotFound10;
|
||||
case wvcdm::SESSION_KEYS_NOT_FOUND:
|
||||
return kSessionKeysNotFound;
|
||||
case wvcdm::SIGNATURE_NOT_FOUND:
|
||||
return kSignatureNotFound;
|
||||
case wvcdm::STORE_LICENSE_ERROR_1:
|
||||
return kStoreLicenseError1;
|
||||
case wvcdm::STORE_LICENSE_ERROR_2:
|
||||
return kStoreLicenseError2;
|
||||
case wvcdm::STORE_LICENSE_ERROR_3:
|
||||
return kStoreLicenseError3;
|
||||
case wvcdm::STORE_USAGE_INFO_ERROR:
|
||||
return kStoreUsageInfoError;
|
||||
case wvcdm::UNPROVISION_ERROR_1:
|
||||
return kUnprovisioningError1;
|
||||
case wvcdm::UNPROVISION_ERROR_2:
|
||||
return kUnprovisioningError2;
|
||||
case wvcdm::UNPROVISION_ERROR_3:
|
||||
return kUnprovisioningError3;
|
||||
case wvcdm::UNPROVISION_ERROR_4:
|
||||
return kUnprovisioningError4;
|
||||
case wvcdm::UNSUPPORTED_INIT_DATA:
|
||||
return kUnsupportedInitData;
|
||||
case wvcdm::USAGE_INFO_NOT_FOUND:
|
||||
return kUsageInfoNotFound;
|
||||
case wvcdm::KEY_ERROR:
|
||||
// KEY_ERROR is used by the CDM to mean just about any kind of error, not
|
||||
// just license errors, so it is mapped to the generic response.
|
||||
|
||||
Reference in New Issue
Block a user