transcoding: pass package name from client to service
bug: 159172726
Change-Id: I9c35c23f3d6eb5b03092813c891f9cc98a4c6fc8
diff --git a/media/libmediatranscoding/TranscodingSessionController.cpp b/media/libmediatranscoding/TranscodingSessionController.cpp
index 2306395..1c3ee7e 100644
--- a/media/libmediatranscoding/TranscodingSessionController.cpp
+++ b/media/libmediatranscoding/TranscodingSessionController.cpp
@@ -66,6 +66,7 @@
mUidSortedList.push_back(OFFLINE_UID);
mOfflineUidIterator = mUidSortedList.begin();
mSessionQueues.emplace(OFFLINE_UID, SessionQueueType());
+ mUidPackageNames[OFFLINE_UID] = "(offline)";
}
TranscodingSessionController::~TranscodingSessionController() {}
@@ -83,13 +84,6 @@
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];
@@ -98,7 +92,7 @@
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);
@@ -120,6 +114,12 @@
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);
+ }
}
}
@@ -274,6 +274,11 @@
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) {