From 9beff8b1e8de67e1a8e6d6a30e1d67d858c1c1d9 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 23 Apr 2020 02:23:20 +1000 Subject: [PATCH] ffmpegdecoder: fixed deadlock if decoder instance was closed from main thread --- app/codec/ffmpeg/ffmpegdecoder.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/codec/ffmpeg/ffmpegdecoder.cpp b/app/codec/ffmpeg/ffmpegdecoder.cpp index c00e686a1..e2b80dd1e 100644 --- a/app/codec/ffmpeg/ffmpegdecoder.cpp +++ b/app/codec/ffmpeg/ffmpegdecoder.cpp @@ -32,6 +32,7 @@ extern "C" { #include #include #include +#include #include "codec/waveinput.h" #include "common/define.h" @@ -1322,7 +1323,9 @@ void FFmpegDecoderInstance::ClearResources() ClearFrameCache(); // Stop timer - if (clear_timer_.isActive()) { + if (QThread::currentThread() == clear_timer_.thread()) { + clear_timer_.stop(); + } else { QMetaObject::invokeMethod(&clear_timer_, "stop", Qt::BlockingQueuedConnection); }