transcoding: fixes for binder died handling

Change client id type to uintptr_t counter, instead of
casting binder to int64_t.

Save all shared_ptrs of clients in global registry.

bug: 154734285
bug: 145233472

test: transcoding unit tests; manually plant crash
in test client and check binderDied handling in log.
Change-Id: If6523a1c6b7ce797a2201462399174e9cf0a3c71

Change-Id: I6b312c0f28a345285e27b738c37baee2bccae755
diff --git a/media/libmediatranscoding/tests/TranscodingClientManager_tests.cpp b/media/libmediatranscoding/tests/TranscodingClientManager_tests.cpp
index 7e5ae61..6204f47 100644
--- a/media/libmediatranscoding/tests/TranscodingClientManager_tests.cpp
+++ b/media/libmediatranscoding/tests/TranscodingClientManager_tests.cpp
@@ -83,12 +83,12 @@
             Finished,
             Failed,
         } type;
-        int32_t jobId;
+        JobIdType jobId;
     };
 
     static constexpr Event NoEvent = {Event::NoEvent, 0};
 #define DECLARE_EVENT(action) \
-    static Event action(int32_t jobId) { return {Event::action, jobId}; }
+    static Event action(JobIdType jobId) { return {Event::action, jobId}; }
 
     DECLARE_EVENT(Finished);
     DECLARE_EVENT(Failed);
@@ -120,7 +120,7 @@
 
     virtual ~TestScheduler() { ALOGI("TestScheduler Destroyed"); }
 
-    bool submit(int64_t clientId, int32_t jobId, uid_t /*uid*/,
+    bool submit(ClientIdType clientId, JobIdType jobId, uid_t /*uid*/,
                 const TranscodingRequestParcel& request,
                 const std::weak_ptr<ITranscodingClientCallback>& clientCallback) override {
         JobKeyType jobKey = std::make_pair(clientId, jobId);
@@ -141,7 +141,7 @@
         return true;
     }
 
-    bool cancel(int64_t clientId, int32_t jobId) override {
+    bool cancel(ClientIdType clientId, JobIdType jobId) override {
         JobKeyType jobKey = std::make_pair(clientId, jobId);
 
         if (mJobs.count(jobKey) == 0) {
@@ -151,7 +151,8 @@
         return true;
     }
 
-    bool getJob(int64_t clientId, int32_t jobId, TranscodingRequestParcel* request) override {
+    bool getJob(ClientIdType clientId, JobIdType jobId,
+                TranscodingRequestParcel* request) override {
         JobKeyType jobKey = std::make_pair(clientId, jobId);
         if (mJobs.count(jobKey) == 0) {
             return false;
@@ -196,7 +197,7 @@
         std::weak_ptr<ITranscodingClientCallback> callback;
     };
 
-    typedef std::pair<int64_t, int32_t> JobKeyType;
+    typedef std::pair<ClientIdType, JobIdType> JobKeyType;
     std::map<JobKeyType, Job> mJobs;
     JobKeyType mLastJob;
 };
diff --git a/media/libmediatranscoding/tests/TranscodingJobScheduler_tests.cpp b/media/libmediatranscoding/tests/TranscodingJobScheduler_tests.cpp
index adb16a2..6931490 100644
--- a/media/libmediatranscoding/tests/TranscodingJobScheduler_tests.cpp
+++ b/media/libmediatranscoding/tests/TranscodingJobScheduler_tests.cpp
@@ -40,8 +40,8 @@
 using aidl::android::media::IMediaTranscodingService;
 using aidl::android::media::ITranscodingClient;
 
-constexpr int64_t kClientId = 1000;
-constexpr int32_t kClientJobId = 0;
+constexpr ClientIdType kClientId = 1000;
+constexpr JobIdType kClientJobId = 0;
 constexpr uid_t kClientUid = 5000;
 constexpr uid_t kInvalidUid = (uid_t)-1;
 
@@ -86,21 +86,21 @@
     // TranscoderInterface
     void setCallback(const std::shared_ptr<TranscoderCallbackInterface>& /*cb*/) override {}
 
-    void start(int64_t clientId, int32_t jobId) override {
+    void start(ClientIdType clientId, JobIdType jobId) override {
         mEventQueue.push_back(Start(clientId, jobId));
     }
-    void pause(int64_t clientId, int32_t jobId) override {
+    void pause(ClientIdType clientId, JobIdType jobId) override {
         mEventQueue.push_back(Pause(clientId, jobId));
     }
-    void resume(int64_t clientId, int32_t jobId) override {
+    void resume(ClientIdType clientId, JobIdType jobId) override {
         mEventQueue.push_back(Resume(clientId, jobId));
     }
 
-    void onFinished(int64_t clientId, int32_t jobId) {
+    void onFinished(ClientIdType clientId, JobIdType jobId) {
         mEventQueue.push_back(Finished(clientId, jobId));
     }
 
-    void onFailed(int64_t clientId, int32_t jobId, TranscodingErrorCode err) {
+    void onFailed(ClientIdType clientId, JobIdType jobId, TranscodingErrorCode err) {
         mLastError = err;
         mEventQueue.push_back(Failed(clientId, jobId));
     }
@@ -113,15 +113,15 @@
 
     struct Event {
         enum { NoEvent, Start, Pause, Resume, Finished, Failed } type;
-        int64_t clientId;
-        int32_t jobId;
+        ClientIdType clientId;
+        JobIdType jobId;
     };
 
     static constexpr Event NoEvent = {Event::NoEvent, 0, 0};
 
-#define DECLARE_EVENT(action)                              \
-    static Event action(int64_t clientId, int32_t jobId) { \
-        return {Event::action, clientId, jobId};           \
+#define DECLARE_EVENT(action)                                     \
+    static Event action(ClientIdType clientId, JobIdType jobId) { \
+        return {Event::action, clientId, jobId};                  \
     }
 
     DECLARE_EVENT(Start);