[Scummvm-git-logs] scummvm master -> c332251f5930e069f1facb3e968be6bb57317434
dreammaster
dreammaster at scummvm.org
Tue Dec 6 05:17:24 CET 2016
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
c332251f59 TITANIC: In progress code for reverse playback in AVISurface
Commit: c332251f5930e069f1facb3e968be6bb57317434
https://github.com/scummvm/scummvm/commit/c332251f5930e069f1facb3e968be6bb57317434
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2016-12-05T23:17:18-05:00
Commit Message:
TITANIC: In progress code for reverse playback in AVISurface
Changed paths:
engines/titanic/support/avi_surface.cpp
diff --git a/engines/titanic/support/avi_surface.cpp b/engines/titanic/support/avi_surface.cpp
index 9d6ece0..6240de9 100644
--- a/engines/titanic/support/avi_surface.cpp
+++ b/engines/titanic/support/avi_surface.cpp
@@ -132,6 +132,8 @@ bool AVISurface::startAtFrame(int frameNumber) {
if (frameNumber == -1)
// Default to starting frame of first movie range
frameNumber = _movieRangeInfo.front()->_startFrame;
+ if (_isReversed && frameNumber == _decoder->getFrameCount())
+ --frameNumber;
// Get the initial frame
seekToFrame(frameNumber);
@@ -139,11 +141,16 @@ bool AVISurface::startAtFrame(int frameNumber) {
// Start the playback
_decoder->start();
+ if (_isReversed)
+ _decoder->setRate(-1.0);
return true;
}
void AVISurface::seekToFrame(uint frameNumber) {
+ if (_isReversed && frameNumber == _decoder->getFrameCount())
+ --frameNumber;
+
if ((int)frameNumber != getFrame()) {
_decoder->seekToFrame(frameNumber);
_currentFrame = (int)frameNumber;
@@ -378,6 +385,7 @@ bool AVISurface::renderFrame() {
// since the blitting method we're using doesn't support palettes
Graphics::Surface *s = frameSurface.convertTo(g_system->getScreenFormat(),
_decoder->getPalette());
+
_videoSurface->getRawSurface()->blitFrom(*s);
s->free();
delete s;
More information about the Scummvm-git-logs
mailing list