From cee4e8ff24662269cc96774681f2460cfe39ecba Mon Sep 17 00:00:00 2001 From: Martin Pulec Date: Mon, 17 Jan 2022 11:23:36 +0100 Subject: [PATCH] swscale: set thread count to auto This enables multithreaded swscale conversion newly added to FFmpeg 5. --- src/libavcodec_common.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libavcodec_common.c b/src/libavcodec_common.c index 934d95e8a..11ff3503b 100644 --- a/src/libavcodec_common.c +++ b/src/libavcodec_common.c @@ -2939,6 +2939,7 @@ struct SwsContext *getSwsContext(unsigned int SrcW, unsigned int SrcH, enum AVPi int SrcRange = SrcFormatDesc != NULL && (SrcFormatDesc->flags & AV_PIX_FMT_FLAG_RGB) != 0 ? 1 : 0; int DstRange = DstFormatDesc != NULL && (DstFormatDesc->flags & AV_PIX_FMT_FLAG_RGB) != 0 ? 1 : 0; + int rc = 0; av_opt_set_int(Context, "sws_flags", Flags, 0); av_opt_set_int(Context, "srcw", SrcW, 0); av_opt_set_int(Context, "srch", SrcH, 0); @@ -2948,6 +2949,9 @@ struct SwsContext *getSwsContext(unsigned int SrcW, unsigned int SrcH, enum AVPi av_opt_set_int(Context, "dst_range", DstRange, 0); av_opt_set_int(Context, "src_format", SrcFormat, 0); av_opt_set_int(Context, "dst_format", DstFormat, 0); + if ((rc = av_opt_set(Context, "thread", "auto", 0)) != 0) { + print_libav_error(LOG_LEVEL_VERBOSE, "Swscale - cannot set thread mode", rc); + } if (sws_init_context(Context, 0, 0) < 0) { sws_freeContext(Context);