[Scummvm-git-logs] scummvm master -> c88a027cf6b927557360330c6b57a98b85c120f5

sev- sev at scummvm.org
Mon Aug 10 10:47:25 UTC 2020


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
2999977154 IMAGE: CODECS: Plug QT RAW decoder
c88a027cf6 DIRECTOR: Streamline DV cast member loading


Commit: 2999977154169987d79d02b900898ddcba66222f
    https://github.com/scummvm/scummvm/commit/2999977154169987d79d02b900898ddcba66222f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-10T12:46:38+02:00

Commit Message:
IMAGE: CODECS: Plug QT RAW decoder

Changed paths:
    image/codecs/codec.cpp


diff --git a/image/codecs/codec.cpp b/image/codecs/codec.cpp
index fdd7e98de4..8716a01d4e 100644
--- a/image/codecs/codec.cpp
+++ b/image/codecs/codec.cpp
@@ -273,6 +273,9 @@ Codec *createQuickTimeCodec(uint32 tag, int width, int height, int bitsPerPixel)
 	case MKTAG('Q','k','B','k'):
 		// CDToons: Used by most of the Broderbund games.
 		return new CDToonsDecoder(width, height);
+	case MKTAG('r','a','w',' '):
+		// Used my L-Zone-mac (Director game)
+		return new BitmapRawDecoder(width, height, bitsPerPixel);
 	default:
 		warning("Unsupported QuickTime codec \'%s\'", tag2str(tag));
 	}


Commit: c88a027cf6b927557360330c6b57a98b85c120f5
    https://github.com/scummvm/scummvm/commit/c88a027cf6b927557360330c6b57a98b85c120f5
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-10T12:46:56+02:00

Commit Message:
DIRECTOR: Streamline DV cast member loading

Changed paths:
    engines/director/castmember.cpp
    engines/director/castmember.h


diff --git a/engines/director/castmember.cpp b/engines/director/castmember.cpp
index ae331bea05..35ed2fab77 100644
--- a/engines/director/castmember.cpp
+++ b/engines/director/castmember.cpp
@@ -236,68 +236,34 @@ DigitalVideoCastMember::DigitalVideoCastMember(Cast *cast, uint16 castId, Common
 	_type = kCastDigitalVideo;
 	_video = nullptr;
 
-	if (version < 4) {
-		warning("STUB: DigitalVideoCastMember: unhandled rect data");
-		if (debugChannelSet(5, kDebugLoading))
-			stream.hexdump(stream.size());
-		for (int i = 0; i < 0x4; i++)
-			stream.readByte(); // 0
-
-		for (int i = 0; i < 0x4; i++)
-			stream.readByte(); // looks rect like, but as bytes not uint16.
-
-		for ( int i = 0; i < 0x3; i++)
-			stream.readByte(); // 0
-
-		_frameRate = 12;
-		_frameRateType = kFrameRateDefault;
+	_initialRect = Movie::readRect(stream);
+	_vflags = stream.readUint32();
+	_frameRate = (_vflags >> 24) & 0xff;
 
-		_preload = false;
-		_enableVideo = false;
-		_pausedAtStart = false;
+	_frameRateType = kFrameRateDefault;
+	if (_vflags & 0x0800) {
+		_frameRateType = (FrameRateType)((_vflags & 0x3000) >> 12);
+	}
+	_preload = _vflags & 0x0400;
+	_enableVideo = !(_vflags & 0x0200);
+	_pausedAtStart = _vflags & 0x0100;
+	_showControls = _vflags & 0x40;
+	_directToStage = _vflags & 0x20;
+	_looping = _vflags & 0x10;
+	_enableSound = _vflags & 0x08;
+	_crop = !(_vflags & 0x02);
+	_center = _vflags & 0x01;
 
-		byte flag = stream.readByte();
+	if (debugChannelSet(2, kDebugLoading))
+		_initialRect.debugPrint(2, "DigitalVideoCastMember(): rect:");
 
-		_showControls = flag & 0x40;
-		_looping = flag & 0x10;
-		_enableSound = flag & 0x08;
-		_crop = !(flag & 0x02);
-		_center = flag & 0x01;
-		_directToStage = flag & 0x20;
-	} else {
-		stream.readByte();
-		_initialRect = Movie::readRect(stream);
-		_frameRate = stream.readByte();
-		stream.readByte();
+	debugC(2, kDebugLoading, "DigitalVideoCastMember(): flags: (%d 0x%04x)", _vflags, _vflags);
 
-		byte flags1 = stream.readByte();
-		_frameRateType = kFrameRateDefault;
-		if (flags1 & 0x08) {
-			_frameRateType = (FrameRateType)((flags1 & 0x30) >> 4);
-		}
-		_preload = flags1 & 0x04;
-		_enableVideo = !(flags1 & 0x02);
-		_pausedAtStart = flags1 & 0x01;
-
-		byte flags2 = stream.readByte();
-		_showControls = flags2 & 0x40;
-		_looping = flags2 & 0x10;
-		_enableSound = flags2 & 0x08;
-		_crop = !(flags2 & 0x02);
-		_center = flags2 & 0x01;
-		_directToStage = true;
-		debugC(2, kDebugLoading, "DigitalVideoCastMember(): flags1: (%d 0x%x)", flags1, flags1);
-
-		debugC(2, kDebugLoading, "DigitalVideoCastMember(): flags2: (%d 0x%x)", flags2, flags2);
-	}
-	debugC(2, kDebugLoading, "_frameRate: %d", _frameRateType);
+	debugC(2, kDebugLoading, "_frameRate: %d", _frameRate);
 	debugC(2, kDebugLoading, "_frameRateType: %d, _preload: %d, _enableVideo %d, _pausedAtStart %d",
 			_frameRateType, _preload, _enableVideo, _pausedAtStart);
 	debugC(2, kDebugLoading, "_showControls: %d, _looping: %d, _enableSound: %d, _crop %d, _center: %d, _directToStage: %d",
 			_showControls, _looping, _enableSound, _crop, _center, _directToStage);
-
-	if (debugChannelSet(2, kDebugLoading))
-		_initialRect.debugPrint(2, "DigitalVideoCastMember(): rect:");
 }
 
 DigitalVideoCastMember::~DigitalVideoCastMember() {
diff --git a/engines/director/castmember.h b/engines/director/castmember.h
index 26c2e48205..43f71194aa 100644
--- a/engines/director/castmember.h
+++ b/engines/director/castmember.h
@@ -122,6 +122,7 @@ public:
 	DigitalVideoCastMember(Cast *cast, uint16 castId, Common::SeekableReadStreamEndian &stream, uint16 version);
 	~DigitalVideoCastMember();
 
+	uint32 _vflags;
 	bool _looping;
 	bool _pausedAtStart;
 	bool _enableVideo;




More information about the Scummvm-git-logs mailing list