[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