transcoding: add uid state based scheduling policy
bug: 145233472
bug: 154734285
test: unit tests
Change-Id: I9e8038252c2be834eb4e2fb2945396572d37b036
diff --git a/services/mediatranscoding/MediaTranscodingService.cpp b/services/mediatranscoding/MediaTranscodingService.cpp
index a13bec0..6c10e3e 100644
--- a/services/mediatranscoding/MediaTranscodingService.cpp
+++ b/services/mediatranscoding/MediaTranscodingService.cpp
@@ -22,6 +22,7 @@
#include <android/binder_process.h>
#include <media/TranscodingClientManager.h>
#include <media/TranscodingJobScheduler.h>
+#include <media/TranscodingUidPolicy.h>
#include <private/android_filesystem_config.h>
#include <utils/Log.h>
#include <utils/Vector.h>
@@ -48,10 +49,9 @@
}
}
-// DummyTranscoder and DummyUidPolicy are currently used to instantiate
-// MediaTranscodingService on service side for testing, so that we could
-// actually test the IPC calls of MediaTranscodingService to expose some
-// issues that's observable only over IPC.
+// DummyTranscoder is currently used to instantiate MediaTranscodingService on
+// service side for testing, so that we could actually test the IPC calls of
+// MediaTranscodingService to expose some issues that's observable only over IPC.
class DummyTranscoder : public TranscoderInterface {
void start(int64_t clientId, int32_t jobId) override {
(void)clientId;
@@ -67,16 +67,9 @@
}
};
-class DummyUidPolicy : public UidPolicyInterface {
- bool isUidOnTop(uid_t uid) override {
- (void)uid;
- return true;
- }
-};
-
MediaTranscodingService::MediaTranscodingService()
: MediaTranscodingService(std::make_shared<DummyTranscoder>(),
- std::make_shared<DummyUidPolicy>()) {}
+ std::make_shared<TranscodingUidPolicy>()) {}
MediaTranscodingService::MediaTranscodingService(
const std::shared_ptr<TranscoderInterface>& transcoder,
@@ -84,6 +77,7 @@
: mJobScheduler(new TranscodingJobScheduler(transcoder, uidPolicy)),
mClientManager(new TranscodingClientManager(mJobScheduler)) {
ALOGV("MediaTranscodingService is created");
+ uidPolicy->setCallback(mJobScheduler);
}
MediaTranscodingService::~MediaTranscodingService() {