diff options
author | Paul Gilbert | 2017-09-04 12:03:34 -0400 |
---|---|---|
committer | Paul Gilbert | 2017-09-04 12:03:34 -0400 |
commit | be208264dd2025f0034d0848b21d2652b164f153 (patch) | |
tree | 7f30b6a002692f62f96723d516302a820b5b7fec /video | |
parent | 0b19ebe7b239a8e685832c0a5c316e75cd4c557b (diff) | |
download | scummvm-rg350-be208264dd2025f0034d0848b21d2652b164f153.tar.gz scummvm-rg350-be208264dd2025f0034d0848b21d2652b164f153.tar.bz2 scummvm-rg350-be208264dd2025f0034d0848b21d2652b164f153.zip |
VIDEO: Fix reverse playback right to the very start of the video
Diffstat (limited to 'video')
-rw-r--r-- | video/avi_decoder.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/video/avi_decoder.cpp b/video/avi_decoder.cpp index ea10b95f5a..7d182935c1 100644 --- a/video/avi_decoder.cpp +++ b/video/avi_decoder.cpp @@ -132,7 +132,7 @@ bool AVIDecoder::isSeekable() const { const Graphics::Surface *AVIDecoder::decodeNextFrame() { AVIVideoTrack *track = nullptr; bool isReversed = false; - int frameNum; + int frameNum = 0; // Check whether the video is playing in revese for (int idx = _videoTracks.size() - 1; idx >= 0; --idx) { @@ -155,6 +155,7 @@ const Graphics::Surface *AVIDecoder::decodeNextFrame() { for (int idx = _videoTracks.size() - 1; idx >= 0; --idx) { track = static_cast<AVIVideoTrack *>(_videoTracks[idx].track); track->setCurFrame(frameNum - 1); + findNextVideoTrack(); } } @@ -1020,7 +1021,7 @@ bool AVIDecoder::AVIVideoTrack::setReverse(bool reverse) { bool AVIDecoder::AVIVideoTrack::endOfTrack() const { if (_reversed) - return _curFrame < 0; + return _curFrame < -1; return _curFrame >= (getFrameCount() - 1); } |