summaryrefslogtreecommitdiffstats
path: root/drm
diff options
context:
space:
mode:
authorEdwin Wong <edwinwong@google.com>2011-09-21 19:18:30 -0700
committerEdwin Wong <edwinwong@google.com>2011-09-21 21:50:31 -0700
commit5f6f4e4e89bc9b234d89276aea3eae7f677e2ff7 (patch)
tree5e622df3a534d6023470490592a5ebb79b116310 /drm
parentfb6f03425a791dcc4188462c860becf6ca6be4ea (diff)
downloadframeworks_av-5f6f4e4e89bc9b234d89276aea3eae7f677e2ff7.zip
frameworks_av-5f6f4e4e89bc9b234d89276aea3eae7f677e2ff7.tar.gz
frameworks_av-5f6f4e4e89bc9b234d89276aea3eae7f677e2ff7.tar.bz2
Modified loadPlugIns to load from /vendor and /system; skip libraries that are already loaded.
BUG: 5284436 Change-Id: I99267c81a488860c3c7edb747100d44f3083bfc2
Diffstat (limited to 'drm')
-rw-r--r--drm/drmserver/DrmManager.cpp24
1 files changed, 15 insertions, 9 deletions
diff --git a/drm/drmserver/DrmManager.cpp b/drm/drmserver/DrmManager.cpp
index 3e4fe8c..b2fa053 100644
--- a/drm/drmserver/DrmManager.cpp
+++ b/drm/drmserver/DrmManager.cpp
@@ -98,21 +98,27 @@ void DrmManager::removeUniqueId(int uniqueId) {
}
status_t DrmManager::loadPlugIns() {
+
+ String8 vendorPluginDirPath("/vendor/lib/drm");
+ loadPlugIns(vendorPluginDirPath);
+
String8 pluginDirPath("/system/lib/drm");
- return loadPlugIns(pluginDirPath);
+ loadPlugIns(pluginDirPath);
+ return DRM_NO_ERROR;
+
}
status_t DrmManager::loadPlugIns(const String8& plugInDirPath) {
- if (mSupportInfoToPlugInIdMap.isEmpty()) {
- mPlugInManager.loadPlugIns(plugInDirPath);
- Vector<String8> plugInPathList = mPlugInManager.getPlugInIdList();
- for (unsigned int i = 0; i < plugInPathList.size(); ++i) {
- String8 plugInPath = plugInPathList[i];
- DrmSupportInfo* info = mPlugInManager.getPlugIn(plugInPath).getSupportInfo(0);
- if (NULL != info) {
+ mPlugInManager.loadPlugIns(plugInDirPath);
+ Vector<String8> plugInPathList = mPlugInManager.getPlugInIdList();
+ for (unsigned int i = 0; i < plugInPathList.size(); ++i) {
+ String8 plugInPath = plugInPathList[i];
+ DrmSupportInfo* info = mPlugInManager.getPlugIn(plugInPath).getSupportInfo(0);
+ if (NULL != info) {
+ if (mSupportInfoToPlugInIdMap.indexOfKey(*info) < 0) {
mSupportInfoToPlugInIdMap.add(*info, plugInPath);
- delete info;
}
+ delete info;
}
}
return DRM_NO_ERROR;