diff options
author | Ronghua Wu <ronghuawu@google.com> | 2015-04-21 14:23:06 -0700 |
---|---|---|
committer | Ronghua Wu <ronghuawu@google.com> | 2015-05-08 09:51:26 -0700 |
commit | 9ba21b9418d10ddcc39f08901e24fbf43d82b2bc (patch) | |
tree | 363f0598085516cf16ddd4ee5df2d1043e2955da /media/libstagefright/MediaCodecList.cpp | |
parent | ba21a9ac7b6b76f85681cfb5e756e947c0ae3b53 (diff) | |
download | frameworks_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.cpp | 21 |
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) { |