Merge "transcoding: Add start/pause/resume event update to interface."
diff --git a/media/libmediatranscoding/aidl/android/media/ITranscodingClientCallback.aidl b/media/libmediatranscoding/aidl/android/media/ITranscodingClientCallback.aidl
index 1a42809..73edb95 100644
--- a/media/libmediatranscoding/aidl/android/media/ITranscodingClientCallback.aidl
+++ b/media/libmediatranscoding/aidl/android/media/ITranscodingClientCallback.aidl
@@ -41,6 +41,30 @@
/**
* Called when the transcoding associated with the jobId finished.
+ * This will only be called if client request to get all the status of the job.
+ *
+ * @param jobId jobId assigned by the MediaTranscodingService upon receiving request.
+ */
+ oneway void onTranscodingStarted(in int jobId);
+
+ /**
+ * Called when the transcoding associated with the jobId is paused.
+ * This will only be called if client request to get all the status of the job.
+ *
+ * @param jobId jobId assigned by the MediaTranscodingService upon receiving request.
+ */
+ oneway void onTranscodingPaused(in int jobId);
+
+ /**
+ * Called when the transcoding associated with the jobId is resumed.
+ * This will only be called if client request to get all the status of the job.
+ *
+ * @param jobId jobId assigned by the MediaTranscodingService upon receiving request.
+ */
+ oneway void onTranscodingResumed(in int jobId);
+
+ /**
+ * Called when the transcoding associated with the jobId finished.
*
* @param jobId jobId assigned by the MediaTranscodingService upon receiving request.
* @param result contains the transcoded file stats and other transcoding metrics if requested.
diff --git a/media/libmediatranscoding/aidl/android/media/TranscodingRequestParcel.aidl b/media/libmediatranscoding/aidl/android/media/TranscodingRequestParcel.aidl
index 3ed9f0d..b130a88 100644
--- a/media/libmediatranscoding/aidl/android/media/TranscodingRequestParcel.aidl
+++ b/media/libmediatranscoding/aidl/android/media/TranscodingRequestParcel.aidl
@@ -58,8 +58,15 @@
/**
* Whether to receive update on progress and change of awaitNumJobs.
+ * Default to false.
*/
- boolean requestUpdate;
+ boolean requestProgressUpdate = false;
+
+ /**
+ * Whether to receive update on job's start/stop/pause/resume.
+ * Default to false.
+ */
+ boolean requestJobEventUpdate = false;
/**
* Whether this request is for testing.
@@ -69,6 +76,5 @@
/**
* Test configuration. This is only valid when isForTesting is set to true.
*/
-
TranscodingTestConfig testConfig;
}
diff --git a/media/libmediatranscoding/include/media/TranscodingRequest.h b/media/libmediatranscoding/include/media/TranscodingRequest.h
index 7471cb7..6bc9db6 100644
--- a/media/libmediatranscoding/include/media/TranscodingRequest.h
+++ b/media/libmediatranscoding/include/media/TranscodingRequest.h
@@ -39,7 +39,8 @@
destinationFilePath = parcel.destinationFilePath;
transcodingType = parcel.transcodingType;
priority = parcel.priority;
- requestUpdate = parcel.requestUpdate;
+ requestProgressUpdate = parcel.requestProgressUpdate;
+ requestJobEventUpdate = parcel.requestJobEventUpdate;
isForTesting = parcel.isForTesting;
testConfig = parcel.testConfig;
}
diff --git a/media/libmediatranscoding/tests/TranscodingClientManager_tests.cpp b/media/libmediatranscoding/tests/TranscodingClientManager_tests.cpp
index db171ce..82983bd 100644
--- a/media/libmediatranscoding/tests/TranscodingClientManager_tests.cpp
+++ b/media/libmediatranscoding/tests/TranscodingClientManager_tests.cpp
@@ -64,6 +64,12 @@
return Status::ok();
}
+ Status onTranscodingStarted(int32_t /*in_jobId*/) override { return Status::ok(); }
+
+ Status onTranscodingPaused(int32_t /*in_jobId*/) override { return Status::ok(); }
+
+ Status onTranscodingResumed(int32_t /*in_jobId*/) override { return Status::ok(); }
+
Status onTranscodingFinished(int32_t in_jobId,
const TranscodingResultParcel& in_result) override {
EXPECT_EQ(in_jobId, in_result.jobId);
diff --git a/media/libmediatranscoding/tests/TranscodingJobScheduler_tests.cpp b/media/libmediatranscoding/tests/TranscodingJobScheduler_tests.cpp
index d4fd483..b9bebac 100644
--- a/media/libmediatranscoding/tests/TranscodingJobScheduler_tests.cpp
+++ b/media/libmediatranscoding/tests/TranscodingJobScheduler_tests.cpp
@@ -167,6 +167,12 @@
return Status::ok();
}
+ Status onTranscodingStarted(int32_t /*in_jobId*/) override { return Status::ok(); }
+
+ Status onTranscodingPaused(int32_t /*in_jobId*/) override { return Status::ok(); }
+
+ Status onTranscodingResumed(int32_t /*in_jobId*/) override { return Status::ok(); }
+
Status onTranscodingFinished(int32_t in_jobId,
const TranscodingResultParcel& in_result) override {
EXPECT_EQ(in_jobId, in_result.jobId);
diff --git a/services/mediatranscoding/tests/mediatranscodingservice_tests.cpp b/services/mediatranscoding/tests/mediatranscodingservice_tests.cpp
index 09a2150..47625cf 100644
--- a/services/mediatranscoding/tests/mediatranscodingservice_tests.cpp
+++ b/services/mediatranscoding/tests/mediatranscodingservice_tests.cpp
@@ -216,6 +216,12 @@
return Status::ok();
}
+ Status onTranscodingStarted(int32_t /*in_jobId*/) override { return Status::ok(); }
+
+ Status onTranscodingPaused(int32_t /*in_jobId*/) override { return Status::ok(); }
+
+ Status onTranscodingResumed(int32_t /*in_jobId*/) override { return Status::ok(); }
+
Status onTranscodingFinished(
int32_t in_jobId,
const ::aidl::android::media::TranscodingResultParcel& /* in_result */) override {