From a40aeec7bf149049d5138b478b75029e3b0fbb16 Mon Sep 17 00:00:00 2001 From: Rahul Frias Date: Fri, 8 Sep 2017 11:21:12 -0700 Subject: [PATCH] Correct when usage entry information is updated [ Merge of http://go/wvgerrit/33340 ] Update usage entry information only when usage entries are supported. Bug: 65483034 Test: wv unit/integration tests on angler Test: GTS tests Test: playback using play movies and netflix Change-Id: If5a33900a30ce88f97ef46a800817cd4c71d195e --- libwvdrmengine/cdm/core/src/cdm_session.cpp | 7 +++++-- libwvdrmengine/cdm/core/src/license.cpp | 6 ++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/libwvdrmengine/cdm/core/src/cdm_session.cpp b/libwvdrmengine/cdm/core/src/cdm_session.cpp index f207b1e1..18020498 100644 --- a/libwvdrmengine/cdm/core/src/cdm_session.cpp +++ b/libwvdrmengine/cdm/core/src/cdm_session.cpp @@ -887,8 +887,11 @@ CdmResponseType CdmSession::UpdateUsageEntryInformation() { if (usage_support_type_ != kUsageEntrySupport || !has_provider_session_token() || usage_table_header_ == nullptr) { - LOGE("CdmSession::UpdateUsageEntryInformation: Unexpected usage type " - "supported: %d", usage_support_type_); + LOGE("CdmSession::UpdateUsageEntryInformation: Unexpected state, " + "usage support type: %d, PST present: %s, usage table header available" + ": %s", usage_support_type_, + has_provider_session_token() ? "yes" : "no", + usage_table_header_ == nullptr ? "no" : "yes"); return INCORRECT_USAGE_SUPPORT_TYPE_2; } diff --git a/libwvdrmengine/cdm/core/src/license.cpp b/libwvdrmengine/cdm/core/src/license.cpp index 07c20a52..ec18da19 100644 --- a/libwvdrmengine/cdm/core/src/license.cpp +++ b/libwvdrmengine/cdm/core/src/license.cpp @@ -349,7 +349,8 @@ CdmResponseType CdmLicense::PrepareKeyUpdateRequest( } // TODO(rfrias): Refactor to avoid needing to call CdmSession - if (cdm_session) { + if (cdm_session && + cdm_session->get_usage_support_type() == kUsageEntrySupport) { CdmResponseType status = cdm_session->UpdateUsageEntryInformation(); if (NO_ERROR != status) return status; } @@ -671,7 +672,8 @@ bool CdmLicense::RestoreOfflineLicense( } if (!provider_session_token_.empty()) { - if (cdm_session) { + if (cdm_session && + cdm_session->get_usage_support_type() == kUsageEntrySupport) { CdmResponseType status = cdm_session->UpdateUsageEntryInformation(); if (NO_ERROR != status) return false; }