Transcoder: Name transcoder threads for easier trace identification.
Bug: 183751395
Test: build_and_run_all_unit_tests.sh
Change-Id: I7b210d876584e3864540ba9991ed0e2a2de048e6
diff --git a/media/libmediatranscoding/transcoder/MediaSampleWriter.cpp b/media/libmediatranscoding/transcoder/MediaSampleWriter.cpp
index 10b2e80..d6ae0f3 100644
--- a/media/libmediatranscoding/transcoder/MediaSampleWriter.cpp
+++ b/media/libmediatranscoding/transcoder/MediaSampleWriter.cpp
@@ -20,6 +20,7 @@
#include <android-base/logging.h>
#include <media/MediaSampleWriter.h>
#include <media/NdkMediaMuxer.h>
+#include <sys/prctl.h>
namespace android {
@@ -173,6 +174,8 @@
mState = STARTED;
std::thread([this] {
+ prctl(PR_SET_NAME, (unsigned long)"SampleWriterTrd", 0, 0, 0);
+
bool wasStopped = false;
media_status_t status = writeSamples(&wasStopped);
if (auto callbacks = mCallbacks.lock()) {
diff --git a/media/libmediatranscoding/transcoder/MediaTranscoder.cpp b/media/libmediatranscoding/transcoder/MediaTranscoder.cpp
index 879241e..e20f7ab 100644
--- a/media/libmediatranscoding/transcoder/MediaTranscoder.cpp
+++ b/media/libmediatranscoding/transcoder/MediaTranscoder.cpp
@@ -25,6 +25,7 @@
#include <media/NdkCommon.h>
#include <media/PassthroughTrackTranscoder.h>
#include <media/VideoTrackTranscoder.h>
+#include <sys/prctl.h>
#include <unistd.h>
namespace android {
@@ -125,6 +126,8 @@
std::thread asyncNotificationThread{[this, self = shared_from_this(),
status = mTranscoderStatus,
stopped = mTranscoderStopped] {
+ prctl(PR_SET_NAME, (unsigned long)"TranscodCallbk", 0, 0, 0);
+
// If the transcoder was stopped that means a caller is waiting in stop or pause
// in which case we don't send a callback.
if (status != AMEDIA_OK) {
diff --git a/media/libmediatranscoding/transcoder/PassthroughTrackTranscoder.cpp b/media/libmediatranscoding/transcoder/PassthroughTrackTranscoder.cpp
index c55e244..3335d6c 100644
--- a/media/libmediatranscoding/transcoder/PassthroughTrackTranscoder.cpp
+++ b/media/libmediatranscoding/transcoder/PassthroughTrackTranscoder.cpp
@@ -19,6 +19,7 @@
#include <android-base/logging.h>
#include <media/PassthroughTrackTranscoder.h>
+#include <sys/prctl.h>
namespace android {
@@ -94,6 +95,8 @@
}
media_status_t PassthroughTrackTranscoder::runTranscodeLoop(bool* stopped) {
+ prctl(PR_SET_NAME, (unsigned long)"PassthruThread", 0, 0, 0);
+
MediaSampleInfo info;
std::shared_ptr<MediaSample> sample;
bool eosReached = false;
diff --git a/media/libmediatranscoding/transcoder/VideoTrackTranscoder.cpp b/media/libmediatranscoding/transcoder/VideoTrackTranscoder.cpp
index 383bedd..6ed45ed 100644
--- a/media/libmediatranscoding/transcoder/VideoTrackTranscoder.cpp
+++ b/media/libmediatranscoding/transcoder/VideoTrackTranscoder.cpp
@@ -21,6 +21,7 @@
#include <android-base/properties.h>
#include <media/NdkCommon.h>
#include <media/VideoTrackTranscoder.h>
+#include <sys/prctl.h>
using namespace AMediaFormatUtils;
@@ -588,6 +589,8 @@
}
media_status_t VideoTrackTranscoder::runTranscodeLoop(bool* stopped) {
+ prctl(PR_SET_NAME, (unsigned long)"VideTranscodTrd", 0, 0, 0);
+
// Push start decoder and encoder as two messages, so that these are subject to the
// stop request as well. If the session is cancelled (or paused) immediately after start,
// we don't need to waste time start then stop the codecs.