MediaTranscodingService: Implement service's add/remove client APIs.
Bug: 145233472
Test: Unit test.
Change-Id: Ice22f86942bf3838c80b100c71af46ff6e217744
diff --git a/services/mediatranscoding/MediaTranscodingService.h b/services/mediatranscoding/MediaTranscodingService.h
index d225f9a..4bdb078 100644
--- a/services/mediatranscoding/MediaTranscodingService.h
+++ b/services/mediatranscoding/MediaTranscodingService.h
@@ -19,6 +19,7 @@
#include <aidl/android/media/BnMediaTranscodingService.h>
#include <binder/IServiceManager.h>
+#include <media/TranscodingClientManager.h>
namespace android {
@@ -30,6 +31,9 @@
class MediaTranscodingService : public BnMediaTranscodingService {
public:
+ static constexpr int32_t kInvalidJobId = -1;
+ static constexpr int32_t kInvalidClientId = -1;
+
MediaTranscodingService();
virtual ~MediaTranscodingService();
@@ -43,6 +47,8 @@
Status unregisterClient(int32_t clientId, bool* _aidl_return) override;
+ Status getNumOfClients(int32_t* _aidl_return) override;
+
Status submitRequest(int32_t in_clientId, const TranscodingRequestParcel& in_request,
TranscodingJobParcel* out_job, int32_t* _aidl_return) override;
@@ -54,6 +60,11 @@
virtual inline binder_status_t dump(int /*fd*/, const char** /*args*/, uint32_t /*numArgs*/);
private:
+ friend class MediaTranscodingServiceTest;
+
+ mutable std::mutex mServiceLock;
+
+ sp<TranscodingClientManager> mTranscodingClientManager;
};
} // namespace android