diff --git a/video/video_decoder.cpp b/video/video_decoder.cpp index 841e6637be6..28ed9e1ef88 100644 --- a/video/video_decoder.cpp +++ b/video/video_decoder.cpp @@ -96,7 +96,26 @@ bool VideoDecoder::loadFile(const Common::Path &filename) { } bool VideoDecoder::needsUpdate() const { - return hasFramesLeft() && getTimeToNextFrame() == 0; + bool hasVideo = false; + bool hasAudio = false; + for (auto &it : _tracks) { + switch (it->getTrackType()) { + case Track::kTrackTypeAudio: + hasAudio = true; + break; + case Track::kTrackTypeVideo: + hasVideo = true; + break; + default: + break; + } + } + if (hasVideo) { + return hasFramesLeft() && getTimeToNextFrame() == 0; + } else if (hasAudio) { + return !endOfVideo(); + } + return false; } void VideoDecoder::pauseVideo(bool pause) {