From c7baa057a65450cf1e3c41f5d4db558ccdff1085 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Novomesk=C3=BD?= Date: Mon, 10 Aug 2026 20:10:46 +0200 Subject: [PATCH] avif: Do not rewind in jumpToNextImage() --- src/imageformats/avif.cpp | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/imageformats/avif.cpp b/src/imageformats/avif.cpp index 2af1071..5017bf9 100644 --- a/src/imageformats/avif.cpp +++ b/src/imageformats/avif.cpp @@ -1160,25 +1160,19 @@ bool QAVIFHandler::jumpToNextImage() return false; } - avifResult decodeResult; - if (m_decoder->imageIndex >= 0) { if (m_decoder->imageCount < 2) { - m_parseState = ParseAvifSuccess; + // single image, there is no next image return false; } - if (m_decoder->imageIndex >= m_decoder->imageCount - 1) { // start from beginning - decodeResult = avifDecoderReset(m_decoder); - if (decodeResult != AVIF_RESULT_OK) { - qCWarning(LOG_AVIFPLUGIN, "ERROR in avifDecoderReset: %s", avifResultToString(decodeResult)); - m_parseState = ParseAvifError; - return false; - } + if (m_decoder->imageIndex >= m_decoder->imageCount - 1) { + // do not start from beginning when at the end already + return false; } } - decodeResult = avifDecoderNextImage(m_decoder); + avifResult decodeResult = avifDecoderNextImage(m_decoder); if (decodeResult != AVIF_RESULT_OK) { qCWarning(LOG_AVIFPLUGIN, "ERROR: Failed to decode Next image in sequence: %s", avifResultToString(decodeResult));