Transcoding: Change to use string path instead of fd.

Bug: 145628554
Test: unit test

Change-Id: I321ecf75e770b4500fc3015a5d161e3b48ea5678
diff --git a/media/libmediatranscoding/TranscodingClientManager.cpp b/media/libmediatranscoding/TranscodingClientManager.cpp
index de9dd76..ce3ac13 100644
--- a/media/libmediatranscoding/TranscodingClientManager.cpp
+++ b/media/libmediatranscoding/TranscodingClientManager.cpp
@@ -112,7 +112,7 @@
         return Status::fromServiceSpecificError(IMediaTranscodingService::ERROR_DISCONNECTED);
     }
 
-    if (in_request.fileName.empty()) {
+    if (in_request.sourceFilePath.empty() || in_request.destinationFilePath.empty()) {
         // This is the only error we check for now.
         return Status::ok();
     }
diff --git a/media/libmediatranscoding/aidl/android/media/TranscodingRequestParcel.aidl b/media/libmediatranscoding/aidl/android/media/TranscodingRequestParcel.aidl
index 14e7399..fb0b918 100644
--- a/media/libmediatranscoding/aidl/android/media/TranscodingRequestParcel.aidl
+++ b/media/libmediatranscoding/aidl/android/media/TranscodingRequestParcel.aidl
@@ -28,9 +28,14 @@
 //TODO(hkuang): Implement the parcelable.
 parcelable TranscodingRequestParcel {
     /**
-     * Name of file to be transcoded.
+     * The absolute file path of the source file.
      */
-    @utf8InCpp String fileName;
+    @utf8InCpp String sourceFilePath;
+
+    /**
+     * The absolute file path of the destination file.
+     */
+    @utf8InCpp String destinationFilePath;
 
     /**
      * Type of the transcoding.
@@ -46,16 +51,6 @@
     @nullable TranscodingVideoTrackFormat requestedVideoTrackFormat;
 
     /**
-     * Input source file descriptor.
-     */
-    @nullable ParcelFileDescriptor inFd;
-
-    /**
-     * Output transcoded file descriptor.
-     */
-    @nullable ParcelFileDescriptor outFd;
-
-    /**
      * Priority of this transcoding. Service will schedule the transcoding based on the priority.
      */
     TranscodingJobPriority priority;
diff --git a/media/libmediatranscoding/include/media/TranscodingRequest.h b/media/libmediatranscoding/include/media/TranscodingRequest.h
index 1337af3..25236bd 100644
--- a/media/libmediatranscoding/include/media/TranscodingRequest.h
+++ b/media/libmediatranscoding/include/media/TranscodingRequest.h
@@ -35,11 +35,9 @@
 
 private:
     void setTo(const TranscodingRequestParcel& parcel) {
-        fileName = parcel.fileName;
+        sourceFilePath = parcel.sourceFilePath;
+        destinationFilePath = parcel.destinationFilePath;
         transcodingType = parcel.transcodingType;
-        // TODO: determine if the fds need dup
-        inFd.set(dup(parcel.inFd.get()));
-        outFd.set(dup(parcel.outFd.get()));
         priority = parcel.priority;
         requestUpdate = parcel.requestUpdate;
     }
diff --git a/media/libmediatranscoding/tests/TranscodingClientManager_tests.cpp b/media/libmediatranscoding/tests/TranscodingClientManager_tests.cpp
index d9504ca..0ae8035 100644
--- a/media/libmediatranscoding/tests/TranscodingClientManager_tests.cpp
+++ b/media/libmediatranscoding/tests/TranscodingClientManager_tests.cpp
@@ -133,7 +133,7 @@
 
         // This is the secret name we'll check, to test error propagation from
         // the scheduler back to client.
-        if (request.fileName == "bad_file") {
+        if (request.sourceFilePath == "bad_source_file") {
             return false;
         }
 
@@ -346,33 +346,37 @@
 
     // Test jobId assignment.
     TranscodingRequestParcel request;
-    request.fileName = "test_file_0";
+    request.sourceFilePath = "test_source_file_0";
+    request.destinationFilePath = "test_desintaion_file_0";
     TranscodingJobParcel job;
     bool result;
     EXPECT_TRUE(mClient1->submitRequest(request, &job, &result).isOk());
     EXPECT_TRUE(result);
     EXPECT_EQ(job.jobId, JOB(0));
 
-    request.fileName = "test_file_1";
+    request.sourceFilePath = "test_source_file_1";
+    request.destinationFilePath = "test_desintaion_file_1";
     EXPECT_TRUE(mClient1->submitRequest(request, &job, &result).isOk());
     EXPECT_TRUE(result);
     EXPECT_EQ(job.jobId, JOB(1));
 
-    request.fileName = "test_file_2";
+    request.sourceFilePath = "test_source_file_2";
+    request.destinationFilePath = "test_desintaion_file_2";
     EXPECT_TRUE(mClient1->submitRequest(request, &job, &result).isOk());
     EXPECT_TRUE(result);
     EXPECT_EQ(job.jobId, JOB(2));
 
-    // Test submit bad request (no valid fileName) fails.
+    // Test submit bad request (no valid sourceFilePath) fails.
     TranscodingRequestParcel badRequest;
-    badRequest.fileName = "bad_file";
+    badRequest.sourceFilePath = "bad_source_file";
+    badRequest.destinationFilePath = "bad_destination_file";
     EXPECT_TRUE(mClient1->submitRequest(badRequest, &job, &result).isOk());
     EXPECT_FALSE(result);
 
     // Test get jobs by id.
     EXPECT_TRUE(mClient1->getJobWithId(JOB(2), &job, &result).isOk());
     EXPECT_EQ(job.jobId, JOB(2));
-    EXPECT_EQ(job.request.fileName, "test_file_2");
+    EXPECT_EQ(job.request.sourceFilePath, "test_source_file_2");
     EXPECT_TRUE(result);
 
     // Test get jobs by invalid id fails.
@@ -417,7 +421,8 @@
     addMultipleClients();
 
     TranscodingRequestParcel request;
-    request.fileName = "test_file_name";
+    request.sourceFilePath = "test_source_file_name";
+    request.destinationFilePath = "test_destination_file_name";
     TranscodingJobParcel job;
     bool result;
     EXPECT_TRUE(mClient1->submitRequest(request, &job, &result).isOk());
@@ -461,12 +466,14 @@
     TranscodingJobParcel job;
     bool result;
 
-    request.fileName = "test_file_0";
+    request.sourceFilePath = "test_source_file_0";
+    request.destinationFilePath = "test_destination_file_0";
     request.priority = TranscodingJobPriority::kUnspecified;
     EXPECT_TRUE(client->submitRequest(request, &job, &result).isOk() && result);
     EXPECT_EQ(job.jobId, JOB(0));
 
-    request.fileName = "test_file_1";
+    request.sourceFilePath = "test_source_file_1";
+    request.destinationFilePath = "test_destination_file_1";
     request.priority = TranscodingJobPriority::kNormal;
     EXPECT_TRUE(client->submitRequest(request, &job, &result).isOk() && result);
     EXPECT_EQ(job.jobId, JOB(1));
@@ -476,7 +483,8 @@
     EXPECT_TRUE(status.isOk());
 
     // Test submit new request after unregister, should fail with ERROR_DISCONNECTED.
-    request.fileName = "test_file_2";
+    request.sourceFilePath = "test_source_file_2";
+    request.destinationFilePath = "test_destination_file_2";
     request.priority = TranscodingJobPriority::kNormal;
     status = client->submitRequest(request, &job, &result);
     EXPECT_FALSE(status.isOk());