From 230f9e23072d971f184b90a8f108517fc866461f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tomas=20H=C3=A4rdin?= <git@haerdin.se>
Date: Tue, 31 May 2022 10:54:08 +0200
Subject: [PATCH] lavc/libopenjpegdec: Enable slice threading
---
libavcodec/libopenjpegdec.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
@@ -369,6 +369,10 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx, AVFrame *picture,
// Tie decoder with decoding parameters
opj_setup_decoder(dec, &ctx->dec_params);
+ if (avctx->active_thread_type == FF_THREAD_SLICE) {
+ opj_codec_set_threads(dec, avctx->thread_count);
+ }
+
stream = opj_stream_default_create(OPJ_STREAM_READ);
if (!stream) {
@@ -505,7 +509,7 @@ const FFCodec ff_libopenjpeg_decoder = {
.p.long_name = NULL_IF_CONFIG_SMALL("OpenJPEG JPEG 2000"),
.p.type = AVMEDIA_TYPE_VIDEO,
.p.id = AV_CODEC_ID_JPEG2000,
- .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS,
+ .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_SLICE_THREADS,
.p.max_lowres = 31,
.p.priv_class = &openjpeg_class,
.p.wrapper_name = "libopenjpeg",
--
2.30.2