New CDM error codes for usage table errors.
[ Merge of http://go/wvgerrit/95404 ] There are three situtations where error codes from a usage table operations were not being mapped to unique CDM response types. These particular errors provide useful information for the CDM during table defragging. Also fixed misspelled error code. Bug: 150890014 Bug: 150891685 Test: Linux unit tests and Android build Change-Id: I683abdd5fc0871317eede960ea36cfafac7e7f49
This commit is contained in:
@@ -2476,18 +2476,19 @@ CdmResponseType CryptoSession::LoadUsageEntry(
|
||||
case OEMCrypto_SUCCESS:
|
||||
case OEMCrypto_WARNING_GENERATION_SKEW:
|
||||
return NO_ERROR;
|
||||
case OEMCrypto_ERROR_INVALID_SESSION:
|
||||
// This case is special, as it could imply that the provided
|
||||
// session ID is invalid (CDM internal bug), or that the entry
|
||||
// being loaded is already in use in a different session.
|
||||
// It is up to the caller to handle this.
|
||||
return LOAD_USAGE_ENTRY_INVALID_SESSION;
|
||||
case OEMCrypto_ERROR_GENERATION_SKEW:
|
||||
return LOAD_USAGE_ENTRY_GENERATION_SKEW;
|
||||
case OEMCrypto_ERROR_SIGNATURE_FAILURE:
|
||||
return LOAD_USAGE_ENTRY_SIGNATURE_FAILURE;
|
||||
case OEMCrypto_ERROR_INSUFFICIENT_RESOURCES:
|
||||
return INSUFFICIENT_CRYPTO_RESOURCES_3;
|
||||
case OEMCrypto_ERROR_SESSION_LOST_STATE:
|
||||
return SESSION_LOST_STATE_ERROR;
|
||||
case OEMCrypto_ERROR_SYSTEM_INVALIDATED:
|
||||
return SYSTEM_INVALIDATED_ERROR;
|
||||
default:
|
||||
return LOAD_USAGE_ENTRY_UNKNOWN_ERROR;
|
||||
return MapOEMCryptoResult(result, LOAD_USAGE_ENTRY_UNKNOWN_ERROR,
|
||||
"LoadUsageEntry");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2561,12 +2562,16 @@ CdmResponseType CryptoSession::ShrinkUsageTableHeader(
|
||||
});
|
||||
}
|
||||
|
||||
if (result == OEMCrypto_SUCCESS) {
|
||||
usage_table_header->resize(usage_table_header_len);
|
||||
switch (result) {
|
||||
case OEMCrypto_SUCCESS:
|
||||
usage_table_header->resize(usage_table_header_len);
|
||||
return NO_ERROR;
|
||||
case OEMCrypto_ERROR_ENTRY_IN_USE:
|
||||
return SHRINK_USAGE_TABLE_HEADER_ENTRY_IN_USE;
|
||||
default:
|
||||
return MapOEMCryptoResult(result, SHRINK_USAGE_TABLE_HEADER_UNKNOWN_ERROR,
|
||||
"ShrinkUsageTableHeader");
|
||||
}
|
||||
|
||||
return MapOEMCryptoResult(result, SHRINK_USAGE_TABLER_HEADER_UNKNOWN_ERROR,
|
||||
"ShrinkUsageTableHeader");
|
||||
}
|
||||
|
||||
CdmResponseType CryptoSession::MoveUsageEntry(uint32_t new_entry_number) {
|
||||
@@ -2578,8 +2583,15 @@ CdmResponseType CryptoSession::MoveUsageEntry(uint32_t new_entry_number) {
|
||||
metrics_->oemcrypto_move_entry_.Increment(result);
|
||||
});
|
||||
|
||||
return MapOEMCryptoResult(result, MOVE_USAGE_ENTRY_UNKNOWN_ERROR,
|
||||
"MoveUsageEntry");
|
||||
switch (result) {
|
||||
case OEMCrypto_ERROR_ENTRY_IN_USE:
|
||||
LOGW("OEMCrypto_MoveEntry failed: Destination index in use: index = %u",
|
||||
new_entry_number);
|
||||
return MOVE_USAGE_ENTRY_DESTINATION_IN_USE;
|
||||
default:
|
||||
return MapOEMCryptoResult(result, MOVE_USAGE_ENTRY_UNKNOWN_ERROR,
|
||||
"MoveUsageEntry");
|
||||
}
|
||||
}
|
||||
|
||||
bool CryptoSession::GetAnalogOutputCapabilities(bool* can_support_output,
|
||||
|
||||
Reference in New Issue
Block a user