[Scummvm-cvs-logs] SF.net SVN: scummvm:[51871] scummvm/trunk
drmccoy at users.sourceforge.net
drmccoy at users.sourceforge.net
Sun Aug 8 02:44:34 CEST 2010
Revision: 51871
http://scummvm.svn.sourceforge.net/scummvm/?rev=51871&view=rev
Author: drmccoy
Date: 2010-08-08 00:44:33 +0000 (Sun, 08 Aug 2010)
Log Message:
-----------
VIDEO/GOB: Fix IMD playing
Fix IMD playing for some fringe cases, especially when seeking
beforehand.
Modified Paths:
--------------
scummvm/trunk/engines/gob/mult_v2.cpp
scummvm/trunk/engines/gob/videoplayer.h
scummvm/trunk/graphics/video/coktel_decoder.cpp
Modified: scummvm/trunk/engines/gob/mult_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/mult_v2.cpp 2010-08-08 00:44:05 UTC (rev 51870)
+++ scummvm/trunk/engines/gob/mult_v2.cpp 2010-08-08 00:44:33 UTC (rev 51871)
@@ -1129,6 +1129,8 @@
return;
}
+ _vm->_vidPlayer->evaluateFlags(props);
+
int slot;
if ((slot = _vm->_vidPlayer->openVideo(true, imdFile, props)) < 0)
return;
@@ -1141,13 +1143,16 @@
uint32 baseFrame = startFrame % (props.lastFrame - props.palFrame + 1);
+ props.endFrame = props.lastFrame;
props.startFrame = baseFrame + props.palFrame;
props.lastFrame = baseFrame + props.palFrame;
+ props.flags &= 0x7F;
+
debugC(2, kDebugVideo, "Playing mult video \"%s\" @ %d+%d, frame %d, "
- "paletteCmd %d (%d - %d), flags %X", imdFile,
+ "paletteCmd %d (%d - %d; %d), flags %X", imdFile,
props.x, props.y, props.startFrame,
- props.palCmd, props.palStart, props.palEnd, props.flags);
+ props.palCmd, props.palStart, props.palEnd, props.endFrame, props.flags);
_vm->_vidPlayer->play(slot, props);
}
Modified: scummvm/trunk/engines/gob/videoplayer.h
===================================================================
--- scummvm/trunk/engines/gob/videoplayer.h 2010-08-08 00:44:05 UTC (rev 51870)
+++ scummvm/trunk/engines/gob/videoplayer.h 2010-08-08 00:44:33 UTC (rev 51871)
@@ -79,8 +79,8 @@
int16 breakKey; ///< Keycode of the break/abort key.
uint16 palCmd; ///< Palette command.
- uint16 palStart; ///< Palette entry to start with.
- uint16 palEnd; ///< Palette entry to end at.
+ int16 palStart; ///< Palette entry to start with.
+ int16 palEnd; ///< Palette entry to end at.
int32 palFrame; ///< Frame to apply the palette command at.
bool fade; ///< Fade in?
Modified: scummvm/trunk/graphics/video/coktel_decoder.cpp
===================================================================
--- scummvm/trunk/graphics/video/coktel_decoder.cpp 2010-08-08 00:44:05 UTC (rev 51870)
+++ scummvm/trunk/graphics/video/coktel_decoder.cpp 2010-08-08 00:44:33 UTC (rev 51871)
@@ -679,7 +679,7 @@
else
return false;
- if ((frame < -1) || (((uint32) frame) >= _frameCount))
+ if ((frame < -1) || (frame >= ((int32) _frameCount)))
// Out of range
return false;
@@ -708,8 +708,6 @@
for (int i = ((frame > _curFrame) ? _curFrame : 0); i <= frame; i++)
processFrame();
- return true;
-
} else {
warning("IMDDecoder::seek(): Frame %d is not directly accessible", frame + 1);
return false;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list