Remove DRM IResourceManagerClient on session close
Bug: 145889838
Test: DrmSessionManagerTest
Test: Youtube/Play Movies & `adb shell dumpsys media.resource_manager`
Change-Id: I48a8001dbab25a0f4cc1afb15e071f22f1c6d7de
diff --git a/drm/libmediadrm/DrmSessionManager.cpp b/drm/libmediadrm/DrmSessionManager.cpp
index 7a4e1ae..5292705 100644
--- a/drm/libmediadrm/DrmSessionManager.cpp
+++ b/drm/libmediadrm/DrmSessionManager.cpp
@@ -89,7 +89,7 @@
}
sp<DrmSessionManager> DrmSessionManager::Instance() {
- auto drmSessionManager = new DrmSessionManager();
+ static sp<DrmSessionManager> drmSessionManager = new DrmSessionManager();
drmSessionManager->init();
return drmSessionManager;
}
@@ -163,7 +163,8 @@
}
auto info = it->second;
- mService->removeResource(info.pid, info.clientId, toResourceVec(sessionId, INT64_MAX));
+ // removeClient instead of removeSession because each client has only one session
+ mService->removeClient(info.pid, info.clientId);
mSessionMap.erase(it);
}