transcoding: Add more information to dumpsys.
Showing all the jobs in queue.
Bug: 154733526
Test: Use snapchat to simuluate multiple transcoding jobs and dumpsys.
Change-Id: I37aa9d15fe9243598d068eb3aac7ecc2e80d6ccf
diff --git a/media/libmediatranscoding/TranscodingJobScheduler.cpp b/media/libmediatranscoding/TranscodingJobScheduler.cpp
index 24ac682..8045043 100644
--- a/media/libmediatranscoding/TranscodingJobScheduler.cpp
+++ b/media/libmediatranscoding/TranscodingJobScheduler.cpp
@@ -53,6 +53,38 @@
TranscodingJobScheduler::~TranscodingJobScheduler() {}
+void TranscodingJobScheduler::dumpAllJobs(int fd, const Vector<String16>& args __unused) {
+ String8 result;
+
+ const size_t SIZE = 256;
+ char buffer[SIZE];
+ std::scoped_lock lock{mLock};
+
+ snprintf(buffer, SIZE, " \n\n Total num of Jobs: %zu\n", mJobMap.size());
+ result.append(buffer);
+
+ if (mJobMap.size() > 0) {
+ snprintf(buffer, SIZE, "========== Dumping all jobs =========\n");
+ result.append(buffer);
+ }
+
+ for (auto uidIt = mUidSortedList.begin(); uidIt != mUidSortedList.end(); uidIt++) {
+ for (auto jobIt = mJobQueues[*uidIt].begin(); jobIt != mJobQueues[*uidIt].end(); jobIt++) {
+ if (mJobMap.count(*jobIt) != 0) {
+ TranscodingRequestParcel& request = mJobMap[*jobIt].request;
+ snprintf(buffer, SIZE, "Job: %s Client: %d\n", request.sourceFilePath.c_str(),
+ request.clientUid);
+
+ } else {
+ snprintf(buffer, SIZE, "Failed to look up Job %s \n", jobToString(*jobIt).c_str());
+ }
+ result.append(buffer);
+ }
+ }
+
+ write(fd, result.string(), result.size());
+}
+
TranscodingJobScheduler::Job* TranscodingJobScheduler::getTopJob_l() {
if (mJobMap.empty()) {
return nullptr;
diff --git a/media/libmediatranscoding/include/media/TranscodingJobScheduler.h b/media/libmediatranscoding/include/media/TranscodingJobScheduler.h
index 8f5e2aa..b6efa59 100644
--- a/media/libmediatranscoding/include/media/TranscodingJobScheduler.h
+++ b/media/libmediatranscoding/include/media/TranscodingJobScheduler.h
@@ -24,6 +24,7 @@
#include <media/TranscodingRequest.h>
#include <media/UidPolicyInterface.h>
#include <utils/String8.h>
+#include <utils/Vector.h>
#include <list>
#include <map>
@@ -66,6 +67,11 @@
void onResourceAvailable() override;
// ~ResourcePolicyCallbackInterface
+ /**
+ * Dump all the job information to the fd.
+ */
+ void dumpAllJobs(int fd, const Vector<String16>& args);
+
private:
friend class MediaTranscodingService;
friend class TranscodingJobSchedulerTest;
diff --git a/services/mediatranscoding/MediaTranscodingService.cpp b/services/mediatranscoding/MediaTranscodingService.cpp
index eb3a873..9639c55 100644
--- a/services/mediatranscoding/MediaTranscodingService.cpp
+++ b/services/mediatranscoding/MediaTranscodingService.cpp
@@ -78,6 +78,7 @@
Vector<String16> args;
mClientManager->dumpAllClients(fd, args);
+ mJobScheduler->dumpAllJobs(fd, args);
return OK;
}