From 162c91ec5201d186810d2cb2e2f8aeb65fc07c87 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 20 Feb 2020 23:54:40 +1100 Subject: [PATCH] ffmpegdecoder: allow probe duration pickup to be cancelled --- app/codec/ffmpeg/ffmpegdecoder.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/codec/ffmpeg/ffmpegdecoder.cpp b/app/codec/ffmpeg/ffmpegdecoder.cpp index 452fa5f69..4118f5a44 100644 --- a/app/codec/ffmpeg/ffmpegdecoder.cpp +++ b/app/codec/ffmpeg/ffmpegdecoder.cpp @@ -615,6 +615,10 @@ bool FFmpegDecoder::Probe(Footage *f, const QAtomicInt* cancelled) durations.fill(0); while (true) { + if (cancelled && *cancelled) { + break; + } + // Ensure previous buffers are cleared av_packet_unref(pkt); @@ -639,8 +643,10 @@ bool FFmpegDecoder::Probe(Footage *f, const QAtomicInt* cancelled) av_packet_free(&pkt); - for (int i=0;iset_duration(durations.at(i)); + if (!cancelled || !*cancelled) { + for (int i=0;iset_duration(durations.at(i)); + } } }