[Scummvm-cvs-logs] scummvm master -> b88293914106fc3b9e503412ab72b030ea0960de

clone2727 clone2727 at gmail.com
Tue Sep 17 02:57:48 CEST 2013


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:
b882939141 GROOVIE: Fix ROQ JPEG decoding


Commit: b88293914106fc3b9e503412ab72b030ea0960de
    https://github.com/scummvm/scummvm/commit/b88293914106fc3b9e503412ab72b030ea0960de
Author: Matthew Hoops (clone2727 at gmail.com)
Date: 2013-09-16T17:56:59-07:00

Commit Message:
GROOVIE: Fix ROQ JPEG decoding

Changed paths:
    engines/groovie/roq.cpp



diff --git a/engines/groovie/roq.cpp b/engines/groovie/roq.cpp
index 5592d84..e1ca7fb 100644
--- a/engines/groovie/roq.cpp
+++ b/engines/groovie/roq.cpp
@@ -28,6 +28,7 @@
 #include "groovie/groovie.h"
 
 #include "common/debug.h"
+#include "common/substream.h"
 #include "common/textconsole.h"
 
 #include "graphics/palette.h"
@@ -436,14 +437,19 @@ bool ROQPlayer::processBlockStill(ROQBlockHeader &blockHeader) {
 
 	Graphics::JPEGDecoder *jpg = new Graphics::JPEGDecoder();
 	jpg->setOutputColorSpace(Graphics::JPEGDecoder::kColorSpaceYUV);
-	jpg->loadStream(*_file);
+
+	uint32 startPos = _file->pos();
+	Common::SeekableSubReadStream subStream(_file, startPos, startPos + blockHeader.size, DisposeAfterUse::NO);
+	jpg->loadStream(subStream);
 
 	const Graphics::Surface *srcSurf = jpg->getSurface();
 	const byte *src = (const byte *)srcSurf->getPixels();
 	byte *ptr = (byte *)_currBuf->getPixels();
-	memcpy(ptr, src, _currBuf->w * _currBuf->h);
+	memcpy(ptr, src, _currBuf->w * _currBuf->h * srcSurf->format.bytesPerPixel);
 
 	delete jpg;
+
+	_file->seek(startPos + blockHeader.size);
 	return true;
 }
 






More information about the Scummvm-git-logs mailing list