[FFmpeg-devel] [PATCH] lavc/pthread_frame: set worker thread names

Anton Khirnov anton at khirnov.net
Wed Oct 19 12:06:51 EEST 2022


---
Yes, the space is limited and we could bikeshed until christmas about
the best way to use it.

Here's an attempt with an 'av' prefix, 'ft' (frame thread) changed to
df (decoder - frame thread), and only two characters guranteed for
thread index.
---
 libavcodec/pthread_frame.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c
index f8fddc5e4d..df82a4125f 100644
--- a/libavcodec/pthread_frame.c
+++ b/libavcodec/pthread_frame.c
@@ -179,6 +179,17 @@ static void async_unlock(FrameThreadContext *fctx)
     pthread_mutex_unlock(&fctx->async_mutex);
 }
 
+static void thread_set_name(PerThreadContext *p)
+{
+    AVCodecContext *avctx = p->avctx;
+    int idx = p - p->parent->threads;
+    char name[16];
+
+    snprintf(name, sizeof(name), "av:%.7s:df%d", avctx->codec->name, idx);
+
+    ff_thread_setname(name);
+}
+
 /**
  * Codec worker thread.
  *
@@ -192,6 +203,8 @@ static attribute_align_arg void *frame_worker_thread(void *arg)
     AVCodecContext *avctx = p->avctx;
     const FFCodec *codec = ffcodec(avctx->codec);
 
+    thread_set_name(p);
+
     pthread_mutex_lock(&p->mutex);
     while (1) {
         while (atomic_load(&p->state) == STATE_INPUT_READY && !p->die)
-- 
2.35.1



More information about the ffmpeg-devel mailing list