[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