Loading media/libmediatranscoding/TranscodingSessionController.cpp +13 −8 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ TranscodingSessionController::TranscodingSessionController( mUidSortedList.push_back(OFFLINE_UID); mOfflineUidIterator = mUidSortedList.begin(); mSessionQueues.emplace(OFFLINE_UID, SessionQueueType()); mUidPackageNames[OFFLINE_UID] = "(offline)"; } TranscodingSessionController::~TranscodingSessionController() {} Loading @@ -83,13 +84,6 @@ void TranscodingSessionController::dumpAllSessions(int fd, const Vector<String16 result.append(buffer); std::vector<int32_t> uids(mUidSortedList.begin(), mUidSortedList.end()); // Exclude last uid, which is for offline queue uids.pop_back(); std::vector<std::string> packageNames; if (TranscodingUidPolicy::getNamesForUids(uids, &packageNames)) { uids.push_back(OFFLINE_UID); packageNames.push_back("(offline)"); } for (int32_t i = 0; i < uids.size(); i++) { const uid_t uid = uids[i]; Loading @@ -98,7 +92,7 @@ void TranscodingSessionController::dumpAllSessions(int fd, const Vector<String16 continue; } snprintf(buffer, SIZE, " Uid: %d, pkg: %s\n", uid, packageNames.empty() ? "(unknown)" : packageNames[i].c_str()); mUidPackageNames.count(uid) > 0 ? mUidPackageNames[uid].c_str() : "(unknown)"); result.append(buffer); snprintf(buffer, SIZE, " Num of sessions: %zu\n", mSessionQueues[uid].size()); result.append(buffer); Loading @@ -120,6 +114,12 @@ void TranscodingSessionController::dumpAllSessions(int fd, const Vector<String16 result.append(buffer); snprintf(buffer, SIZE, " Dst: %s\n", request.destinationFilePath.c_str()); result.append(buffer); // For the offline queue, print out the original client. if (uid == OFFLINE_UID) { snprintf(buffer, SIZE, " Original Client: %s\n", request.clientPackageName.c_str()); result.append(buffer); } } } Loading Loading @@ -274,6 +274,11 @@ bool TranscodingSessionController::submit( return false; } // Add the uid package name to the store of package names we already know. if (mUidPackageNames.count(uid) == 0) { mUidPackageNames.emplace(uid, request.clientPackageName); } // TODO(chz): only support offline vs real-time for now. All kUnspecified sessions // go to offline queue. if (request.priority == TranscodingSessionPriority::kUnspecified) { Loading media/libmediatranscoding/TranscodingUidPolicy.cpp +0 −22 Original line number Diff line number Diff line Loading @@ -113,28 +113,6 @@ void TranscodingUidPolicy::UidObserver::binderDied(const wp<IBinder>& /*who*/) { //////////////////////////////////////////////////////////////////////////// //static bool TranscodingUidPolicy::getNamesForUids(const std::vector<int32_t>& uids, std::vector<std::string>* names) { names->clear(); sp<IServiceManager> sm(defaultServiceManager()); sp<IBinder> binder(sm->getService(String16("package_native"))); if (binder == nullptr) { ALOGE("getService package_native failed"); return false; } sp<content::pm::IPackageManagerNative> packageMgr = interface_cast<content::pm::IPackageManagerNative>(binder); binder::Status status = packageMgr->getNamesForUids(uids, names); if (!status.isOk() || names->size() != uids.size()) { names->clear(); return false; } return true; } //static status_t TranscodingUidPolicy::getUidForPackage(String16 packageName, /*inout*/ uid_t& uid) { PermissionController pc; Loading media/libmediatranscoding/aidl/android/media/TranscodingRequestParcel.aidl +5 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,11 @@ parcelable TranscodingRequestParcel { */ int clientPid = -1; /** * The package name of the client whom this transcoding request is for. */ @utf8InCpp String clientPackageName; /** * Type of the transcoding. */ Loading media/libmediatranscoding/include/media/TranscodingRequest.h +1 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ private: destinationFilePath = parcel.destinationFilePath; clientUid = parcel.clientUid; clientPid = parcel.clientPid; clientPackageName = parcel.clientPackageName; transcodingType = parcel.transcodingType; requestedVideoTrackFormat = parcel.requestedVideoTrackFormat; priority = parcel.priority; Loading media/libmediatranscoding/include/media/TranscodingSessionController.h +1 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,7 @@ private: // previous top app, etc. std::list<uid_t> mUidSortedList; std::list<uid_t>::iterator mOfflineUidIterator; std::map<uid_t, std::string> mUidPackageNames; std::shared_ptr<TranscoderInterface> mTranscoder; std::shared_ptr<UidPolicyInterface> mUidPolicy; Loading Loading
media/libmediatranscoding/TranscodingSessionController.cpp +13 −8 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ TranscodingSessionController::TranscodingSessionController( mUidSortedList.push_back(OFFLINE_UID); mOfflineUidIterator = mUidSortedList.begin(); mSessionQueues.emplace(OFFLINE_UID, SessionQueueType()); mUidPackageNames[OFFLINE_UID] = "(offline)"; } TranscodingSessionController::~TranscodingSessionController() {} Loading @@ -83,13 +84,6 @@ void TranscodingSessionController::dumpAllSessions(int fd, const Vector<String16 result.append(buffer); std::vector<int32_t> uids(mUidSortedList.begin(), mUidSortedList.end()); // Exclude last uid, which is for offline queue uids.pop_back(); std::vector<std::string> packageNames; if (TranscodingUidPolicy::getNamesForUids(uids, &packageNames)) { uids.push_back(OFFLINE_UID); packageNames.push_back("(offline)"); } for (int32_t i = 0; i < uids.size(); i++) { const uid_t uid = uids[i]; Loading @@ -98,7 +92,7 @@ void TranscodingSessionController::dumpAllSessions(int fd, const Vector<String16 continue; } snprintf(buffer, SIZE, " Uid: %d, pkg: %s\n", uid, packageNames.empty() ? "(unknown)" : packageNames[i].c_str()); mUidPackageNames.count(uid) > 0 ? mUidPackageNames[uid].c_str() : "(unknown)"); result.append(buffer); snprintf(buffer, SIZE, " Num of sessions: %zu\n", mSessionQueues[uid].size()); result.append(buffer); Loading @@ -120,6 +114,12 @@ void TranscodingSessionController::dumpAllSessions(int fd, const Vector<String16 result.append(buffer); snprintf(buffer, SIZE, " Dst: %s\n", request.destinationFilePath.c_str()); result.append(buffer); // For the offline queue, print out the original client. if (uid == OFFLINE_UID) { snprintf(buffer, SIZE, " Original Client: %s\n", request.clientPackageName.c_str()); result.append(buffer); } } } Loading Loading @@ -274,6 +274,11 @@ bool TranscodingSessionController::submit( return false; } // Add the uid package name to the store of package names we already know. if (mUidPackageNames.count(uid) == 0) { mUidPackageNames.emplace(uid, request.clientPackageName); } // TODO(chz): only support offline vs real-time for now. All kUnspecified sessions // go to offline queue. if (request.priority == TranscodingSessionPriority::kUnspecified) { Loading
media/libmediatranscoding/TranscodingUidPolicy.cpp +0 −22 Original line number Diff line number Diff line Loading @@ -113,28 +113,6 @@ void TranscodingUidPolicy::UidObserver::binderDied(const wp<IBinder>& /*who*/) { //////////////////////////////////////////////////////////////////////////// //static bool TranscodingUidPolicy::getNamesForUids(const std::vector<int32_t>& uids, std::vector<std::string>* names) { names->clear(); sp<IServiceManager> sm(defaultServiceManager()); sp<IBinder> binder(sm->getService(String16("package_native"))); if (binder == nullptr) { ALOGE("getService package_native failed"); return false; } sp<content::pm::IPackageManagerNative> packageMgr = interface_cast<content::pm::IPackageManagerNative>(binder); binder::Status status = packageMgr->getNamesForUids(uids, names); if (!status.isOk() || names->size() != uids.size()) { names->clear(); return false; } return true; } //static status_t TranscodingUidPolicy::getUidForPackage(String16 packageName, /*inout*/ uid_t& uid) { PermissionController pc; Loading
media/libmediatranscoding/aidl/android/media/TranscodingRequestParcel.aidl +5 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,11 @@ parcelable TranscodingRequestParcel { */ int clientPid = -1; /** * The package name of the client whom this transcoding request is for. */ @utf8InCpp String clientPackageName; /** * Type of the transcoding. */ Loading
media/libmediatranscoding/include/media/TranscodingRequest.h +1 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ private: destinationFilePath = parcel.destinationFilePath; clientUid = parcel.clientUid; clientPid = parcel.clientPid; clientPackageName = parcel.clientPackageName; transcodingType = parcel.transcodingType; requestedVideoTrackFormat = parcel.requestedVideoTrackFormat; priority = parcel.priority; Loading
media/libmediatranscoding/include/media/TranscodingSessionController.h +1 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,7 @@ private: // previous top app, etc. std::list<uid_t> mUidSortedList; std::list<uid_t>::iterator mOfflineUidIterator; std::map<uid_t, std::string> mUidPackageNames; std::shared_ptr<TranscoderInterface> mTranscoder; std::shared_ptr<UidPolicyInterface> mUidPolicy; Loading