diff --git a/libwvdrmengine/cdm/core/include/wv_cdm_types.h b/libwvdrmengine/cdm/core/include/wv_cdm_types.h index fdad2308..eba8bfa5 100644 --- a/libwvdrmengine/cdm/core/include/wv_cdm_types.h +++ b/libwvdrmengine/cdm/core/include/wv_cdm_types.h @@ -38,6 +38,8 @@ enum CdmKeyRequestType { kKeyRequestTypeInitial, kKeyRequestTypeRenewal, kKeyRequestTypeRelease, + kKeyRequestTypeNone, // Keys are loaded and no license request is necessary + kKeyRequestTypeUpdate, }; enum CdmOfflineLicenseState { diff --git a/libwvdrmengine/cdm/core/src/cdm_session.cpp b/libwvdrmengine/cdm/core/src/cdm_session.cpp index 819ce07c..5f8a11b2 100644 --- a/libwvdrmengine/cdm/core/src/cdm_session.cpp +++ b/libwvdrmengine/cdm/core/src/cdm_session.cpp @@ -444,10 +444,14 @@ CdmResponseType CdmSession::GenerateKeyRequestInternal( } else if (license_received_) { // A call to GenerateKeyRequest after the initial license has been received // is either a renewal/release request or a key rotation event - if (init_data.contains_entitled_keys()) + if (init_data.contains_entitled_keys()) { + key_request->message.clear(); + key_request->type = kKeyRequestTypeNone; + key_request->url.clear(); return license_parser_->HandleEmbeddedKeyData(init_data); - else + } else { return GenerateRenewalRequest(key_request); + } } else { key_request->type = kKeyRequestTypeInitial; diff --git a/libwvdrmengine/cdm/test/request_license_test.cpp b/libwvdrmengine/cdm/test/request_license_test.cpp index 4e3d7907..5ba7c1b9 100644 --- a/libwvdrmengine/cdm/test/request_license_test.cpp +++ b/libwvdrmengine/cdm/test/request_license_test.cpp @@ -1785,6 +1785,7 @@ class WvCdmRequestLicenseTest : public WvCdmTestBase { &key_request); EXPECT_EQ(wvcdm::KEY_ADDED, status); EXPECT_TRUE(key_request.message.empty()); + EXPECT_EQ(kKeyRequestTypeNone, key_request.type); EXPECT_TRUE(key_request.url.empty()); return wvcdm::KEY_ADDED == status && key_request.message.empty() && key_request.url.empty(); diff --git a/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp b/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp index 32b4e13e..ea004f85 100644 --- a/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp +++ b/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp @@ -83,16 +83,15 @@ KeyRequestType ConvertFromCdmKeyRequestType( KeyRequestType_V1_1 ConvertFromCdmKeyRequestType_1_1( CdmKeyRequestType keyRequestType) { - /* TODO - What happened to these? switch (keyRequestType) { case wvcdm::kKeyRequestTypeNone: return KeyRequestType_V1_1::NONE; case wvcdm::kKeyRequestTypeUpdate: return KeyRequestType_V1_1::UPDATE; default: - */ - return static_cast( - ConvertFromCdmKeyRequestType(keyRequestType)); + return static_cast( + ConvertFromCdmKeyRequestType(keyRequestType)); + } } KeyRequestType toKeyRequestType_V1_0(KeyRequestType_V1_1 keyRequestType) {