libstagefright: add ProcessInfo to get process priority.

Bug: 19620911
Change-Id: I240b814b8925b1d6266e6f998a7debd654a2145a
diff --git a/media/libmediaplayerservice/DrmSessionManager.cpp b/media/libmediaplayerservice/DrmSessionManager.cpp
index 6e17eb1..641f881 100644
--- a/media/libmediaplayerservice/DrmSessionManager.cpp
+++ b/media/libmediaplayerservice/DrmSessionManager.cpp
@@ -21,10 +21,10 @@
 #include "DrmSessionManager.h"
 
 #include "DrmSessionClientInterface.h"
-#include "ProcessInfoInterface.h"
 #include <binder/IPCThreadState.h>
 #include <binder/IProcessInfoService.h>
 #include <binder/IServiceManager.h>
+#include <media/stagefright/ProcessInfo.h>
 #include <unistd.h>
 #include <utils/String8.h>
 
@@ -38,37 +38,6 @@
     return sessionIdStr;
 }
 
-struct ProcessInfo : public ProcessInfoInterface {
-    ProcessInfo() {}
-
-    virtual bool getPriority(int pid, int* priority) {
-        sp<IBinder> binder = defaultServiceManager()->getService(String16("processinfo"));
-        sp<IProcessInfoService> service = interface_cast<IProcessInfoService>(binder);
-
-        size_t length = 1;
-        int32_t states;
-        status_t err = service->getProcessStatesFromPids(length, &pid, &states);
-        if (err != OK) {
-            ALOGE("getProcessStatesFromPids failed");
-            return false;
-        }
-        ALOGV("pid %d states %d", pid, states);
-        if (states < 0) {
-            return false;
-        }
-
-        // Use process state as the priority. Lower the value, higher the priority.
-        *priority = states;
-        return true;
-    }
-
-protected:
-    virtual ~ProcessInfo() {}
-
-private:
-    DISALLOW_EVIL_CONSTRUCTORS(ProcessInfo);
-};
-
 bool isEqualSessionId(const Vector<uint8_t> &sessionId1, const Vector<uint8_t> &sessionId2) {
     if (sessionId1.size() != sessionId2.size()) {
         return false;