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) {