diff --git a/libwvdrmengine/cdm/core/src/crypto_session.cpp b/libwvdrmengine/cdm/core/src/crypto_session.cpp index dee93007..65c6cbb3 100644 --- a/libwvdrmengine/cdm/core/src/crypto_session.cpp +++ b/libwvdrmengine/cdm/core/src/crypto_session.cpp @@ -748,12 +748,13 @@ CdmResponseType CryptoSession::Open(SecurityLevel requested_security_level) { open_ = true; // Get System ID and save it. - if (GetSystemIdInternal(&system_id_) == NO_ERROR) { + result = GetSystemIdInternal(&system_id_); + if (result == NO_ERROR) { metrics_->crypto_session_system_id_.Record(system_id_); } else { LOGE("Failed to fetch system ID"); - metrics_->crypto_session_system_id_.SetError(LOAD_SYSTEM_ID_ERROR); - return LOAD_SYSTEM_ID_ERROR; + metrics_->crypto_session_system_id_.SetError(result); + return result; } // Set up request ID @@ -2693,6 +2694,7 @@ OEMCryptoResult CryptoSession::DecryptSample( if (sts == OEMCrypto_ERROR_BUFFER_TOO_LARGE) { // Fall back to sending each subsample region individually + sts = OEMCrypto_SUCCESS; OEMCrypto_SampleDescription fake_sample = sample; for (size_t i = 0; i < sample.subsamples_length; ++i) { const OEMCrypto_SubSampleDescription& original_subsample =