Revert "Core CDM: Do not store/retrieve USAGE_INFO entries."
This reverts commit 982ddb042d.
Reason for revert: Feature rejected by Android
Bug: 242289743
Change-Id: I06fd9a79c2013a7dc523ffd06180c3ff36ab7d34
This commit is contained in:
committed by
Android (Google) Code Review
parent
982ddb042d
commit
5ebe8eddeb
@@ -32,6 +32,17 @@ using video_widevine_client::sdk::License_LicenseState_ACTIVE;
|
||||
using video_widevine_client::sdk::License_LicenseState_RELEASING;
|
||||
using video_widevine_client::sdk::NameValue;
|
||||
using video_widevine_client::sdk::OemCertificate;
|
||||
using video_widevine_client::sdk::UsageInfo;
|
||||
using video_widevine_client::sdk::UsageInfo_DrmUsageCertificate;
|
||||
using video_widevine_client::sdk::UsageInfo_ProviderSession;
|
||||
using video_widevine_client::sdk::UsageTableInfo;
|
||||
using video_widevine_client::sdk::UsageTableInfo_UsageEntryInfo;
|
||||
using video_widevine_client::sdk::
|
||||
UsageTableInfo_UsageEntryInfo_UsageEntryStorage_LICENSE;
|
||||
using video_widevine_client::sdk::
|
||||
UsageTableInfo_UsageEntryInfo_UsageEntryStorage_UNKNOWN;
|
||||
using video_widevine_client::sdk::
|
||||
UsageTableInfo_UsageEntryInfo_UsageEntryStorage_USAGE_INFO;
|
||||
|
||||
// Stringify turns macro arguments into static C strings.
|
||||
// Example: STRINGIFY(this_argument) -> "this_argument"
|
||||
@@ -1016,8 +1027,6 @@ bool DeviceFiles::StoreUsageTableInfo(
|
||||
const CdmUsageTableHeader& usage_table_header,
|
||||
const std::vector<CdmUsageEntryInfo>& usage_entry_info) {
|
||||
RETURN_FALSE_IF_UNINITIALIZED();
|
||||
using video_widevine_client::sdk::UsageTableInfo;
|
||||
using UsageEntryInfo = UsageTableInfo::UsageEntryInfo;
|
||||
|
||||
// Fill in file information
|
||||
video_widevine_client::sdk::File file;
|
||||
@@ -1025,22 +1034,35 @@ bool DeviceFiles::StoreUsageTableInfo(
|
||||
file.set_type(video_widevine_client::sdk::File::USAGE_TABLE_INFO);
|
||||
file.set_version(video_widevine_client::sdk::File::VERSION_1);
|
||||
|
||||
UsageTableInfo* stored_table_info = file.mutable_usage_table_info();
|
||||
stored_table_info->set_usage_table_header(usage_table_header);
|
||||
|
||||
for (const auto& entry_info : usage_entry_info) {
|
||||
UsageEntryInfo* stored_info = stored_table_info->add_usage_entry_info();
|
||||
if (entry_info.storage_type == kStorageLicense) {
|
||||
stored_info->set_storage(UsageEntryInfo::LICENSE);
|
||||
stored_info->set_key_set_id(entry_info.key_set_id);
|
||||
stored_info->set_last_use_time(entry_info.last_use_time);
|
||||
stored_info->set_offline_license_expiry_time(
|
||||
entry_info.offline_license_expiry_time);
|
||||
} else {
|
||||
stored_info->set_storage(UsageEntryInfo::UNKNOWN);
|
||||
UsageTableInfo* usage_table_info = file.mutable_usage_table_info();
|
||||
usage_table_info->set_usage_table_header(usage_table_header);
|
||||
for (size_t i = 0; i < usage_entry_info.size(); ++i) {
|
||||
UsageTableInfo_UsageEntryInfo* info =
|
||||
usage_table_info->add_usage_entry_info();
|
||||
info->set_key_set_id(usage_entry_info[i].key_set_id);
|
||||
switch (usage_entry_info[i].storage_type) {
|
||||
case kStorageLicense:
|
||||
info->set_storage(
|
||||
UsageTableInfo_UsageEntryInfo_UsageEntryStorage_LICENSE);
|
||||
info->set_last_use_time(usage_entry_info[i].last_use_time);
|
||||
info->set_offline_license_expiry_time(
|
||||
usage_entry_info[i].offline_license_expiry_time);
|
||||
break;
|
||||
case kStorageUsageInfo:
|
||||
info->set_storage(
|
||||
UsageTableInfo_UsageEntryInfo_UsageEntryStorage_USAGE_INFO);
|
||||
info->set_usage_info_file_name(
|
||||
usage_entry_info[i].usage_info_file_name);
|
||||
info->set_last_use_time(usage_entry_info[i].last_use_time);
|
||||
break;
|
||||
case kStorageTypeUnknown:
|
||||
default:
|
||||
info->set_storage(
|
||||
UsageTableInfo_UsageEntryInfo_UsageEntryStorage_UNKNOWN);
|
||||
break;
|
||||
}
|
||||
}
|
||||
stored_table_info->set_use_lru(true);
|
||||
usage_table_info->set_use_lru(true);
|
||||
|
||||
std::string serialized_file;
|
||||
file.SerializeToString(&serialized_file);
|
||||
@@ -1058,8 +1080,6 @@ bool DeviceFiles::RetrieveUsageTableInfo(
|
||||
RETURN_FALSE_IF_NULL(usage_entry_info);
|
||||
RETURN_FALSE_IF_NULL(lru_upgrade);
|
||||
RETURN_FALSE_IF_NULL(has_usage_info_entries);
|
||||
using video_widevine_client::sdk::UsageTableInfo;
|
||||
using UsageEntryInfo = UsageTableInfo::UsageEntryInfo;
|
||||
|
||||
video_widevine_client::sdk::File file;
|
||||
if (RetrieveHashedFile(GetUsageTableFileName(), &file) != kNoError) {
|
||||
@@ -1086,28 +1106,35 @@ bool DeviceFiles::RetrieveUsageTableInfo(
|
||||
return false;
|
||||
}
|
||||
|
||||
const UsageTableInfo& stored_table_info = file.usage_table_info();
|
||||
const UsageTableInfo& usage_table_info = file.usage_table_info();
|
||||
|
||||
*lru_upgrade = !stored_table_info.use_lru();
|
||||
*lru_upgrade = !usage_table_info.use_lru();
|
||||
*has_usage_info_entries = false;
|
||||
*usage_table_header = stored_table_info.usage_table_header();
|
||||
usage_entry_info->reserve(stored_table_info.usage_entry_info_size());
|
||||
|
||||
for (const auto& stored_entry_info : stored_table_info.usage_entry_info()) {
|
||||
CdmUsageEntryInfo entry_info;
|
||||
entry_info.Clear();
|
||||
if (stored_entry_info.storage() == UsageEntryInfo::LICENSE) {
|
||||
entry_info.storage_type = kStorageLicense;
|
||||
entry_info.key_set_id = stored_entry_info.key_set_id();
|
||||
entry_info.last_use_time = stored_entry_info.last_use_time();
|
||||
entry_info.offline_license_expiry_time =
|
||||
stored_entry_info.offline_license_expiry_time();
|
||||
} else if (stored_entry_info.storage() == UsageEntryInfo::USAGE_INFO) {
|
||||
// USAGE_INFO are deprecated, do not retrieve this entries.
|
||||
*has_usage_info_entries = true;
|
||||
*usage_table_header = usage_table_info.usage_table_header();
|
||||
usage_entry_info->resize(usage_table_info.usage_entry_info_size());
|
||||
for (int i = 0; i < usage_table_info.usage_entry_info_size(); ++i) {
|
||||
const UsageTableInfo_UsageEntryInfo& info =
|
||||
usage_table_info.usage_entry_info(i);
|
||||
(*usage_entry_info)[i].key_set_id = info.key_set_id();
|
||||
switch (info.storage()) {
|
||||
case UsageTableInfo_UsageEntryInfo_UsageEntryStorage_LICENSE:
|
||||
(*usage_entry_info)[i].storage_type = kStorageLicense;
|
||||
(*usage_entry_info)[i].last_use_time = info.last_use_time();
|
||||
(*usage_entry_info)[i].offline_license_expiry_time =
|
||||
info.offline_license_expiry_time();
|
||||
break;
|
||||
case UsageTableInfo_UsageEntryInfo_UsageEntryStorage_USAGE_INFO:
|
||||
(*usage_entry_info)[i].storage_type = kStorageTypeUnknown;
|
||||
*has_usage_info_entries = true;
|
||||
break;
|
||||
case UsageTableInfo_UsageEntryInfo_UsageEntryStorage_UNKNOWN:
|
||||
default:
|
||||
(*usage_entry_info)[i].storage_type = kStorageTypeUnknown;
|
||||
break;
|
||||
}
|
||||
usage_entry_info->emplace_back(std::move(entry_info));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user