From f3dfe7b1257ab4e19e2ed17aef3e932dbc7fcf9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Cerveau?= Date: Mon, 13 Feb 2023 12:05:27 +0100 Subject: [PATCH] openjpegdec: allow multithread decoding only in subframe mode To avoid mis-ordered frames, allow multithread decoding only in subframe mode. Fixes #1786 Part-of: --- .../gst-plugins-bad/ext/openjpeg/gstopenjpegdec.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/subprojects/gst-plugins-bad/ext/openjpeg/gstopenjpegdec.c b/subprojects/gst-plugins-bad/ext/openjpeg/gstopenjpegdec.c index e121100c88..aa7efa4031 100644 --- a/subprojects/gst-plugins-bad/ext/openjpeg/gstopenjpegdec.c +++ b/subprojects/gst-plugins-bad/ext/openjpeg/gstopenjpegdec.c @@ -217,10 +217,14 @@ gst_openjpeg_dec_start (GstVideoDecoder * decoder) GST_DEBUG_OBJECT (self, "Starting"); self->available_threads = self->max_slice_threads; - if (self->available_threads) - self->decode_frame = gst_openjpeg_dec_decode_frame_multiple; - else - self->decode_frame = gst_openjpeg_dec_decode_frame_single; + self->decode_frame = gst_openjpeg_dec_decode_frame_single; + if (self->available_threads) { + if (gst_video_decoder_get_subframe_mode (decoder)) + self->decode_frame = gst_openjpeg_dec_decode_frame_multiple; + else + GST_INFO_OBJECT (self, + "Multiple threads decoding only available in subframe mode."); + } return TRUE; }