Loading include/media/IResourceManagerClient.h +2 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ #define ANDROID_IRESOURCEMANAGERCLIENT_H #include <utils/RefBase.h> #include <utils/String8.h> #include <binder/IInterface.h> #include <binder/Parcel.h> Loading @@ -29,6 +30,7 @@ public: DECLARE_META_INTERFACE(ResourceManagerClient); virtual bool reclaimResource() = 0; virtual String8 getName() = 0; }; // ---------------------------------------------------------------------------- Loading media/libmedia/IResourceManagerClient.cpp +20 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ namespace android { enum { RECLAIM_RESOURCE = IBinder::FIRST_CALL_TRANSACTION, GET_NAME, }; class BpResourceManagerClient: public BpInterface<IResourceManagerClient> Loading @@ -46,6 +47,19 @@ public: } return ret; } virtual String8 getName() { Parcel data, reply; data.writeInterfaceToken(IResourceManagerClient::getInterfaceDescriptor()); String8 ret; status_t status = remote()->transact(GET_NAME, data, &reply); if (status == NO_ERROR) { ret = reply.readString8(); } return ret; } }; IMPLEMENT_META_INTERFACE(ResourceManagerClient, "android.media.IResourceManagerClient"); Loading @@ -62,6 +76,12 @@ status_t BnResourceManagerClient::onTransact( reply->writeInt32(ret); return NO_ERROR; } break; case GET_NAME: { CHECK_INTERFACE(IResourceManagerClient, data, reply); String8 ret = getName(); reply->writeString8(ret); return NO_ERROR; } break; default: return BBinder::onTransact(code, data, reply, flags); } Loading media/libstagefright/MediaCodec.cpp +15 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,21 @@ struct ResourceManagerClient : public BnResourceManagerClient { return (err == OK); } virtual String8 getName() { String8 ret; sp<MediaCodec> codec = mMediaCodec.promote(); if (codec == NULL) { // codec is already gone. return ret; } AString name; if (codec->getName(&name) == OK) { ret.setTo(name.c_str()); } return ret; } protected: virtual ~ResourceManagerClient() {} Loading services/mediaresourcemanager/ResourceManagerService.cpp +45 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,51 @@ static ResourceInfo& getResourceInfoForEdit( return infos.editItemAt(infos.size() - 1); } status_t ResourceManagerService::dump(int fd, const Vector<String16>& args) { Mutex::Autolock lock(mLock); String8 result; const size_t SIZE = 256; char buffer[SIZE]; snprintf(buffer, SIZE, "ResourceManagerService: %p\n", this); result.append(buffer); result.append(" Policies:\n"); snprintf(buffer, SIZE, " SupportsMultipleSecureCodecs: %d\n", mSupportsMultipleSecureCodecs); result.append(buffer); snprintf(buffer, SIZE, " SupportsSecureWithNonSecureCodec: %d\n", mSupportsSecureWithNonSecureCodec); result.append(buffer); snprintf(buffer, SIZE, " Processes:\n"); result.append(buffer); for (size_t i = 0; i < mMap.size(); ++i) { snprintf(buffer, SIZE, " Pid: %d\n", mMap.keyAt(i)); result.append(buffer); const ResourceInfos &infos = mMap.valueAt(i); for (size_t j = 0; j < infos.size(); ++j) { snprintf(buffer, SIZE, " Client:\n"); result.append(buffer); snprintf(buffer, SIZE, " Id: %lld\n", (long long)infos[j].clientId); result.append(buffer); snprintf(buffer, SIZE, " Name: %s\n", infos[j].client->getName().string()); result.append(buffer); Vector<MediaResource> resources = infos[j].resources; snprintf(buffer, SIZE, " Resources:\n"); result.append(buffer); for (size_t k = 0; k < resources.size(); ++k) { snprintf(buffer, SIZE, " %s\n", resources[k].toString().string()); result.append(buffer); } } } write(fd, result.string(), result.size()); return OK; } ResourceManagerService::ResourceManagerService() : mProcessInfo(new ProcessInfo()), mSupportsMultipleSecureCodecs(true), Loading services/mediaresourcemanager/ResourceManagerService.h +2 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,8 @@ class ResourceManagerService public: static char const *getServiceName() { return "media.resource_manager"; } virtual status_t dump(int fd, const Vector<String16>& args); ResourceManagerService(); ResourceManagerService(sp<ProcessInfoInterface> processInfo); Loading Loading
include/media/IResourceManagerClient.h +2 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ #define ANDROID_IRESOURCEMANAGERCLIENT_H #include <utils/RefBase.h> #include <utils/String8.h> #include <binder/IInterface.h> #include <binder/Parcel.h> Loading @@ -29,6 +30,7 @@ public: DECLARE_META_INTERFACE(ResourceManagerClient); virtual bool reclaimResource() = 0; virtual String8 getName() = 0; }; // ---------------------------------------------------------------------------- Loading
media/libmedia/IResourceManagerClient.cpp +20 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ namespace android { enum { RECLAIM_RESOURCE = IBinder::FIRST_CALL_TRANSACTION, GET_NAME, }; class BpResourceManagerClient: public BpInterface<IResourceManagerClient> Loading @@ -46,6 +47,19 @@ public: } return ret; } virtual String8 getName() { Parcel data, reply; data.writeInterfaceToken(IResourceManagerClient::getInterfaceDescriptor()); String8 ret; status_t status = remote()->transact(GET_NAME, data, &reply); if (status == NO_ERROR) { ret = reply.readString8(); } return ret; } }; IMPLEMENT_META_INTERFACE(ResourceManagerClient, "android.media.IResourceManagerClient"); Loading @@ -62,6 +76,12 @@ status_t BnResourceManagerClient::onTransact( reply->writeInt32(ret); return NO_ERROR; } break; case GET_NAME: { CHECK_INTERFACE(IResourceManagerClient, data, reply); String8 ret = getName(); reply->writeString8(ret); return NO_ERROR; } break; default: return BBinder::onTransact(code, data, reply, flags); } Loading
media/libstagefright/MediaCodec.cpp +15 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,21 @@ struct ResourceManagerClient : public BnResourceManagerClient { return (err == OK); } virtual String8 getName() { String8 ret; sp<MediaCodec> codec = mMediaCodec.promote(); if (codec == NULL) { // codec is already gone. return ret; } AString name; if (codec->getName(&name) == OK) { ret.setTo(name.c_str()); } return ret; } protected: virtual ~ResourceManagerClient() {} Loading
services/mediaresourcemanager/ResourceManagerService.cpp +45 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,51 @@ static ResourceInfo& getResourceInfoForEdit( return infos.editItemAt(infos.size() - 1); } status_t ResourceManagerService::dump(int fd, const Vector<String16>& args) { Mutex::Autolock lock(mLock); String8 result; const size_t SIZE = 256; char buffer[SIZE]; snprintf(buffer, SIZE, "ResourceManagerService: %p\n", this); result.append(buffer); result.append(" Policies:\n"); snprintf(buffer, SIZE, " SupportsMultipleSecureCodecs: %d\n", mSupportsMultipleSecureCodecs); result.append(buffer); snprintf(buffer, SIZE, " SupportsSecureWithNonSecureCodec: %d\n", mSupportsSecureWithNonSecureCodec); result.append(buffer); snprintf(buffer, SIZE, " Processes:\n"); result.append(buffer); for (size_t i = 0; i < mMap.size(); ++i) { snprintf(buffer, SIZE, " Pid: %d\n", mMap.keyAt(i)); result.append(buffer); const ResourceInfos &infos = mMap.valueAt(i); for (size_t j = 0; j < infos.size(); ++j) { snprintf(buffer, SIZE, " Client:\n"); result.append(buffer); snprintf(buffer, SIZE, " Id: %lld\n", (long long)infos[j].clientId); result.append(buffer); snprintf(buffer, SIZE, " Name: %s\n", infos[j].client->getName().string()); result.append(buffer); Vector<MediaResource> resources = infos[j].resources; snprintf(buffer, SIZE, " Resources:\n"); result.append(buffer); for (size_t k = 0; k < resources.size(); ++k) { snprintf(buffer, SIZE, " %s\n", resources[k].toString().string()); result.append(buffer); } } } write(fd, result.string(), result.size()); return OK; } ResourceManagerService::ResourceManagerService() : mProcessInfo(new ProcessInfo()), mSupportsMultipleSecureCodecs(true), Loading
services/mediaresourcemanager/ResourceManagerService.h +2 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,8 @@ class ResourceManagerService public: static char const *getServiceName() { return "media.resource_manager"; } virtual status_t dump(int fd, const Vector<String16>& args); ResourceManagerService(); ResourceManagerService(sp<ProcessInfoInterface> processInfo); Loading