aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Luis Marti <joseluis.marti@gmail.com>2023-01-02 00:06:25 +0100
committerJose Luis Marti <joseluis.marti@gmail.com>2023-01-02 00:06:25 +0100
commit98a9ac74694e5443c73f716a2f2868f6b8cb8b0f (patch)
treebd4ac3f122b0a474c2d79b0cd1b1cd89adc2eb38
parent2968130023ea6ee4327119dc969758840c4a5941 (diff)
downloadxbmc-98a9ac74694e5443c73f716a2f2868f6b8cb8b0f.tar.xz
[backport][Android] MediaDrm: catch restoreKeys exceptions
-rw-r--r--xbmc/platform/android/media/drm/MediaDrmCryptoSession.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/xbmc/platform/android/media/drm/MediaDrmCryptoSession.cpp b/xbmc/platform/android/media/drm/MediaDrmCryptoSession.cpp
index e74dc7e748..59a17a6c07 100644
--- a/xbmc/platform/android/media/drm/MediaDrmCryptoSession.cpp
+++ b/xbmc/platform/android/media/drm/MediaDrmCryptoSession.cpp
@@ -170,8 +170,17 @@ void CMediaDrmCryptoSession::RestoreKeys(const std::string& keySetId)
if (m_mediaDrm && keySetId != m_keySetId)
{
m_mediaDrm->restoreKeys(*m_sessionId, std::vector<char>(keySetId.begin(), keySetId.end()));
- m_hasKeys = true;
- m_keySetId = keySetId;
+ if (xbmc_jnienv()->ExceptionCheck())
+ {
+ CLog::Log(LOGERROR, "MediaDrm: restoreKeys exception");
+ xbmc_jnienv()->ExceptionDescribe();
+ xbmc_jnienv()->ExceptionClear();
+ }
+ else
+ {
+ m_hasKeys = true;
+ m_keySetId = keySetId;
+ }
}
}