transcoder: Add startThreadPool to benchmark

Adding ProcessState startThreadPool fixes a
hang, related to Extractor, seen for running
benchmark for many assets or multiple
iterations.

Bug: 175889103
Test: ./MediaTranscoderBenchmark
--benchmark_filter=BM_TranscodeVideoPassthrough
--benchmark_min_time=60

Change-Id: Ib4f1bbf131b4e97b0cf3391747dc5541f5f8fcd9
diff --git a/media/libmediatranscoding/transcoder/benchmark/Android.bp b/media/libmediatranscoding/transcoder/benchmark/Android.bp
index 6c87233..74f65b9 100644
--- a/media/libmediatranscoding/transcoder/benchmark/Android.bp
+++ b/media/libmediatranscoding/transcoder/benchmark/Android.bp
@@ -1,6 +1,13 @@
 cc_defaults {
     name: "benchmarkdefaults",
-    shared_libs: ["libmediandk", "libbase", "libbinder_ndk", "libutils", "libnativewindow"],
+    shared_libs: [
+        "libmediandk",
+        "libbase",
+        "libbinder_ndk",
+        "libbinder",
+        "libutils",
+        "libnativewindow",
+    ],
     static_libs: ["libmediatranscoder", "libgoogle-benchmark"],
     test_config_template: "AndroidTestTemplate.xml",
     test_suites: ["device-tests", "TranscoderBenchmarks"],
diff --git a/media/libmediatranscoding/transcoder/benchmark/MediaTranscoderBenchmark.cpp b/media/libmediatranscoding/transcoder/benchmark/MediaTranscoderBenchmark.cpp
index b270ed5..d47a30c 100644
--- a/media/libmediatranscoding/transcoder/benchmark/MediaTranscoderBenchmark.cpp
+++ b/media/libmediatranscoding/transcoder/benchmark/MediaTranscoderBenchmark.cpp
@@ -30,6 +30,7 @@
  */
 
 #include <benchmark/benchmark.h>
+#include <binder/ProcessState.h>
 #include <fcntl.h>
 #include <media/MediaTranscoder.h>
 #include <iostream>
@@ -390,6 +391,7 @@
 }
 
 int main(int argc, char** argv) {
+    android::ProcessState::self()->startThreadPool();
     std::unique_ptr<benchmark::BenchmarkReporter> fileReporter;
     for (int i = 1; i < argc; ++i) {
         if (std::string(argv[i]).find("--benchmark_out") != std::string::npos) {