[FFmpeg-devel] [PATCH 203/217] avcodec/movtextenc, srtenc, webvttenc: Mark encoders as init-threadsafe

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Wed Dec 2 06:22:30 EET 2020


They all rely on ff_ass_split(), which does not have any static state.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
---
 libavcodec/movtextenc.c | 2 +-
 libavcodec/srtenc.c     | 4 ++++
 libavcodec/webvttenc.c  | 2 ++
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/libavcodec/movtextenc.c b/libavcodec/movtextenc.c
index 1bef21e0b9..8da98d61e1 100644
--- a/libavcodec/movtextenc.c
+++ b/libavcodec/movtextenc.c
@@ -731,5 +731,5 @@ AVCodec ff_movtext_encoder = {
     .init           = mov_text_encode_init,
     .encode_sub     = mov_text_encode_frame,
     .close          = mov_text_encode_close,
-    .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
+    .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP,
 };
diff --git a/libavcodec/srtenc.c b/libavcodec/srtenc.c
index 655b65679e..1ec5e693ef 100644
--- a/libavcodec/srtenc.c
+++ b/libavcodec/srtenc.c
@@ -25,6 +25,7 @@
 #include "libavutil/bprint.h"
 #include "ass_split.h"
 #include "ass.h"
+#include "internal.h"
 
 
 #define SRT_STACK_SIZE 64
@@ -314,6 +315,7 @@ AVCodec ff_srt_encoder = {
     .init           = srt_encode_init,
     .encode_sub     = srt_encode_frame,
     .close          = srt_encode_close,
+    .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE,
 };
 #endif
 
@@ -327,6 +329,7 @@ AVCodec ff_subrip_encoder = {
     .init           = srt_encode_init,
     .encode_sub     = srt_encode_frame,
     .close          = srt_encode_close,
+    .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE,
 };
 #endif
 
@@ -340,5 +343,6 @@ AVCodec ff_text_encoder = {
     .init           = srt_encode_init,
     .encode_sub     = text_encode_frame,
     .close          = srt_encode_close,
+    .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE,
 };
 #endif
diff --git a/libavcodec/webvttenc.c b/libavcodec/webvttenc.c
index febf6ee370..ed762f77e8 100644
--- a/libavcodec/webvttenc.c
+++ b/libavcodec/webvttenc.c
@@ -26,6 +26,7 @@
 #include "libavutil/bprint.h"
 #include "ass_split.h"
 #include "ass.h"
+#include "internal.h"
 
 #define WEBVTT_STACK_SIZE 64
 typedef struct {
@@ -233,4 +234,5 @@ AVCodec ff_webvtt_encoder = {
     .init           = webvtt_encode_init,
     .encode_sub     = webvtt_encode_frame,
     .close          = webvtt_encode_close,
+    .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE,
 };
-- 
2.25.1



More information about the ffmpeg-devel mailing list