From 6f9a540a61c2d0b438369e621bceac7936cc0ae7 Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 25 Sep 2023 12:35:45 +0400 Subject: [PATCH] Fix crash when libvpx decoder is absent. Fixes #26849. --- Telegram/SourceFiles/ffmpeg/ffmpeg_frame_generator.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/ffmpeg/ffmpeg_frame_generator.cpp b/Telegram/SourceFiles/ffmpeg/ffmpeg_frame_generator.cpp index 54c4cece8..116d998a2 100644 --- a/Telegram/SourceFiles/ffmpeg/ffmpeg_frame_generator.cpp +++ b/Telegram/SourceFiles/ffmpeg/ffmpeg_frame_generator.cpp @@ -254,7 +254,9 @@ FrameGenerator::Frame FrameGenerator::Impl::renderNext( QImage storage, QSize size, Qt::AspectRatioMode mode) { - if (!_current.frame) { + if (!_codec) { + return {}; + } else if (!_current.frame) { readNextFrame(); } std::swap(_current, _next); @@ -266,6 +268,9 @@ FrameGenerator::Frame FrameGenerator::Impl::renderNext( } void FrameGenerator::Impl::jumpToStart() { + if (!_codec) { + return; + } auto result = 0; if ((result = avformat_seek_file(_format.get(), _streamId, std::numeric_limits::min(), 0, std::numeric_limits::max(), 0)) < 0) { if ((result = av_seek_frame(_format.get(), _streamId, 0, AVSEEK_FLAG_BYTE)) < 0) {