summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/MediaCodecList.cpp
diff options
context:
space:
mode:
authorRonghua Wu <ronghuawu@google.com>2015-04-21 14:23:06 -0700
committerRonghua Wu <ronghuawu@google.com>2015-05-08 09:51:26 -0700
commit9ba21b9418d10ddcc39f08901e24fbf43d82b2bc (patch)
tree363f0598085516cf16ddd4ee5df2d1043e2955da /media/libstagefright/MediaCodecList.cpp
parentba21a9ac7b6b76f85681cfb5e756e947c0ae3b53 (diff)
downloadframeworks_av-9ba21b9418d10ddcc39f08901e24fbf43d82b2bc.zip
frameworks_av-9ba21b9418d10ddcc39f08901e24fbf43d82b2bc.tar.gz
frameworks_av-9ba21b9418d10ddcc39f08901e24fbf43d82b2bc.tar.bz2
libstagefright: config resource manager with secure codec co-existing policy.
Bug: 19620911 Change-Id: I0d729782c1622f23e9c37b7a9231e58e3f807470
Diffstat (limited to 'media/libstagefright/MediaCodecList.cpp')
-rw-r--r--media/libstagefright/MediaCodecList.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/media/libstagefright/MediaCodecList.cpp b/media/libstagefright/MediaCodecList.cpp
index e212fb8..d2352bc 100644
--- a/media/libstagefright/MediaCodecList.cpp
+++ b/media/libstagefright/MediaCodecList.cpp
@@ -24,7 +24,9 @@
#include <media/IMediaCodecList.h>
#include <media/IMediaPlayerService.h>
+#include <media/IResourceManagerService.h>
#include <media/MediaCodecInfo.h>
+#include <media/MediaResourcePolicy.h>
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/foundation/AMessage.h>
@@ -171,6 +173,25 @@ void MediaCodecList::parseTopLevelXMLFile(const char *codecs_xml, bool ignore_er
return;
}
+ Vector<MediaResourcePolicy> policies;
+ AString value;
+ if (mGlobalSettings->findString(kPolicySupportsMultipleSecureCodecs, &value)) {
+ policies.push_back(
+ MediaResourcePolicy(
+ String8(kPolicySupportsMultipleSecureCodecs),
+ String8(value.c_str())));
+ }
+ if (policies.size() > 0) {
+ sp<IServiceManager> sm = defaultServiceManager();
+ sp<IBinder> binder = sm->getService(String16("media.resource_manager"));
+ sp<IResourceManagerService> service = interface_cast<IResourceManagerService>(binder);
+ if (service == NULL) {
+ ALOGE("MediaCodecList: failed to get ResourceManagerService");
+ } else {
+ service->config(policies);
+ }
+ }
+
for (size_t i = mCodecInfos.size(); i-- > 0;) {
const MediaCodecInfo &info = *mCodecInfos.itemAt(i).get();
if (info.mCaps.size() == 0) {