From e6d4d9cdaaf0087a968d095c9df157c04a7de9ea Mon Sep 17 00:00:00 2001 From: dp0000 <53818367+dp0000@users.noreply.github.com> Date: Wed, 8 Jul 2026 12:46:24 +0530 Subject: [PATCH 1/8] Update DrmSessionManager.h --- middleware/drm/DrmSessionManager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/middleware/drm/DrmSessionManager.h b/middleware/drm/DrmSessionManager.h index 0bd8a71714..e353409f26 100644 --- a/middleware/drm/DrmSessionManager.h +++ b/middleware/drm/DrmSessionManager.h @@ -50,7 +50,7 @@ struct DrmSessionContext { std::vector data; std::mutex sessionMutex; - DrmSession * drmSession; + std::shared_ptr drmSession; DrmSessionContext() : sessionMutex(), drmSession(NULL),data() { From 5aec10304f51214c49ed64d251ad1f37bfb0b9d8 Mon Sep 17 00:00:00 2001 From: dp0000 <53818367+dp0000@users.noreply.github.com> Date: Wed, 8 Jul 2026 12:49:37 +0530 Subject: [PATCH 2/8] Update DrmSessionManager.cpp --- middleware/drm/DrmSessionManager.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/middleware/drm/DrmSessionManager.cpp b/middleware/drm/DrmSessionManager.cpp index 61c8f404be..2f7a1c890c 100755 --- a/middleware/drm/DrmSessionManager.cpp +++ b/middleware/drm/DrmSessionManager.cpp @@ -106,7 +106,8 @@ void DrmSessionManager::clearSessionData() { if (drmSessionContexts != NULL && drmSessionContexts[i].drmSession != NULL) { - MW_SAFE_DELETE(drmSessionContexts[i].drmSession); + + drmSessionContexts[i].drmSession.reset(); drmSessionContexts[i] = DrmSessionContext(); } @@ -198,7 +199,8 @@ void DrmSessionManager::clearDrmSession(bool forceClearSession) if (drmSessionContexts[i].drmSession != NULL) { MW_LOG_WARN("DrmSessionManager:: Clearing failed Session Data Slot : %d", i); - MW_SAFE_DELETE(drmSessionContexts[i].drmSession); + + drmSessionContexts[i].drmSession.reset(); } } } @@ -703,7 +705,8 @@ KeyState DrmSessionManager::getDrmSession(int &err, std::shared_ptr d MW_LOG_WARN("existing DRM session for %s has different key in slot %d", drmSessionContexts[sessionSlot].drmSession->getKeySystem().c_str(), sessionSlot); } MW_LOG_WARN("deleting existing DRM session for %s ", drmSessionContexts[sessionSlot].drmSession->getKeySystem().c_str()); - MW_SAFE_DELETE(drmSessionContexts[sessionSlot].drmSession); + + drmSessionContexts[i].drmSession.reset(); } this->ProfileUpdateCb(); From e55b6b3d788200392005adc9a5002d3b52021418 Mon Sep 17 00:00:00 2001 From: dp0000 <53818367+dp0000@users.noreply.github.com> Date: Wed, 8 Jul 2026 12:59:47 +0530 Subject: [PATCH 3/8] Update DrmSessionFactory.h --- middleware/drm/DrmSessionFactory.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/middleware/drm/DrmSessionFactory.h b/middleware/drm/DrmSessionFactory.h index 483c90001a..29bbf22ffc 100644 --- a/middleware/drm/DrmSessionFactory.h +++ b/middleware/drm/DrmSessionFactory.h @@ -43,6 +43,6 @@ class DrmSessionFactory * @param[in] drmHelper - DrmHelper instance * @return Pointer to DrmSession. */ - static DrmSession* GetDrmSession(DrmHelperPtr drmHelper, DrmCallbacks *drmCallbacks); + static std::shared_ptr GetDrmSession(DrmHelperPtr drmHelper, DrmCallbacks *drmCallbacks); }; #endif From e4b302a0f50554542474dd1318d516e3d0b21690 Mon Sep 17 00:00:00 2001 From: dp0000 <53818367+dp0000@users.noreply.github.com> Date: Wed, 8 Jul 2026 15:33:22 +0530 Subject: [PATCH 4/8] Update DrmSessionFactory.cpp --- middleware/drm/DrmSessionFactory.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/middleware/drm/DrmSessionFactory.cpp b/middleware/drm/DrmSessionFactory.cpp index b5bf0179c0..768212ff1d 100644 --- a/middleware/drm/DrmSessionFactory.cpp +++ b/middleware/drm/DrmSessionFactory.cpp @@ -32,7 +32,7 @@ /** * @brief Creates an appropriate DRM session based on the given DrmHelper */ -DrmSession* DrmSessionFactory::GetDrmSession(DrmHelperPtr drmHelper, DrmCallbacks *drmCallbacks) +std::shared_ptr DrmSessionFactory::GetDrmSession(DrmHelperPtr drmHelper, DrmCallbacks *drmCallbacks) { const std::string systemId = drmHelper->ocdmSystemId(); From 16b1df1bcb5c4f420a632565ffdf452a5ecb6d4a Mon Sep 17 00:00:00 2001 From: dp0000 <53818367+dp0000@users.noreply.github.com> Date: Wed, 8 Jul 2026 15:35:35 +0530 Subject: [PATCH 5/8] Update DrmSessionFactory.cpp --- middleware/drm/DrmSessionFactory.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/middleware/drm/DrmSessionFactory.cpp b/middleware/drm/DrmSessionFactory.cpp index 768212ff1d..1e5c1c69d8 100644 --- a/middleware/drm/DrmSessionFactory.cpp +++ b/middleware/drm/DrmSessionFactory.cpp @@ -42,23 +42,23 @@ std::shared_ptr DrmSessionFactory::GetDrmSession(DrmHelperPtr drmHel #if defined(USE_CLEARKEY) if (systemId == CLEAR_KEY_SYSTEM_STRING) { - return new ClearKeySession(); + return std::make_shared(); } else #endif { - return new OCDMBasicSessionAdapter(drmHelper, drmCallbacks); + return std::make_shared(drmHelper, drmCallbacks); } } else { - return new OCDMGSTSessionAdapter(drmHelper, drmCallbacks); + return std::make_shared(drmHelper, drmCallbacks); } #else // No form of OCDM support. Attempt to fallback to hardcoded session classes if (systemId == CLEAR_KEY_SYSTEM_STRING) { #if defined(USE_CLEARKEY) - return new ClearKeySession(); + return std::make_shared(); #endif // USE_CLEARKEY } #endif // Not USE_OPENCDM_ADAPTER From f69433a1cf7c26f73b99ae66cf1831370b969034 Mon Sep 17 00:00:00 2001 From: dp0000 <53818367+dp0000@users.noreply.github.com> Date: Wed, 8 Jul 2026 15:44:34 +0530 Subject: [PATCH 6/8] Update DrmSessionManager.cpp --- middleware/drm/DrmSessionManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/middleware/drm/DrmSessionManager.cpp b/middleware/drm/DrmSessionManager.cpp index 2f7a1c890c..84d276da5d 100755 --- a/middleware/drm/DrmSessionManager.cpp +++ b/middleware/drm/DrmSessionManager.cpp @@ -706,7 +706,7 @@ KeyState DrmSessionManager::getDrmSession(int &err, std::shared_ptr d } MW_LOG_WARN("deleting existing DRM session for %s ", drmSessionContexts[sessionSlot].drmSession->getKeySystem().c_str()); - drmSessionContexts[i].drmSession.reset(); + drmSessionContexts[sessionSlot].drmSession.reset(); } this->ProfileUpdateCb(); From 089a5e758861c52e5cb68fdf4e6321f0b962d721 Mon Sep 17 00:00:00 2001 From: dp0000 <53818367+dp0000@users.noreply.github.com> Date: Wed, 8 Jul 2026 15:48:58 +0530 Subject: [PATCH 7/8] Update DrmSessionManager.cpp --- middleware/drm/DrmSessionManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/middleware/drm/DrmSessionManager.cpp b/middleware/drm/DrmSessionManager.cpp index 84d276da5d..7d3faade07 100755 --- a/middleware/drm/DrmSessionManager.cpp +++ b/middleware/drm/DrmSessionManager.cpp @@ -361,7 +361,7 @@ int DrmSessionManager::getSlotIdForSession(DrmSession* session) { for (int i = 0; i < mMaxDRMSessions; i++) { - if (drmSessionContexts[i].drmSession == session) + if (drmSessionContexts[i].drmSession.get() == session) { MW_LOG_INFO("DRM Session found at slot:%d", i); slot = i; From 7ce3e4dfaf57bf898171badd3cc98b80aa3f3de5 Mon Sep 17 00:00:00 2001 From: dp0000 <53818367+dp0000@users.noreply.github.com> Date: Wed, 8 Jul 2026 16:01:39 +0530 Subject: [PATCH 8/8] Update DrmSessionManager.cpp --- middleware/drm/DrmSessionManager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/middleware/drm/DrmSessionManager.cpp b/middleware/drm/DrmSessionManager.cpp index 7d3faade07..9c1cc87362 100755 --- a/middleware/drm/DrmSessionManager.cpp +++ b/middleware/drm/DrmSessionManager.cpp @@ -475,7 +475,7 @@ DrmSession* DrmSessionManager::createDrmSession(int &responseCode, int &err, std mCustomData = ContentUpdateCb(drmHelper, streamType, std::move(keyId), isContentProcess); if (code == KEY_READY) { - return drmSessionContexts[selectedSlot].drmSession; + return drmSessionContexts[selectedSlot].drmSession.get(); } if ((code != KEY_INIT) || (selectedSlot == INVALID_SESSION_SLOT)) @@ -525,7 +525,7 @@ DrmSession* DrmSessionManager::createDrmSession(int &responseCode, int &err, std drmSessionContexts[selectedSlot].drmSession->setSecManagerSession(localSession); } - return drmSessionContexts[selectedSlot].drmSession; + return drmSessionContexts[selectedSlot].drmSession.get(); } /**