PEGASUS: Use quicktime workaround for movies

This is a proposed solution for bug report #14855

The workaround, enableEditListBoundsCheckQuirk(true), is applied to movies
loaded with Movie::initFromMovieFile(), which is where the problematic video file
is loaded from.
The problematic video file is under path "Images/AI/Caldoria/XAE1"

Not all files loaded from Movie::initFromMovieFile() need the workaround, but for the few I tested, it didn't seem to have side-effects on them.
This change, as of yet, does not apply the workaround to video files loaded elsewhere in the engine (ie. outside Movie::initFromMovieFile())
This commit is contained in:
antoniou79 2024-01-14 18:25:51 +02:00 committed by sluicebox
parent 6d7187ed3c
commit 75165fc91b
2 changed files with 3 additions and 1 deletions

View File

@ -58,6 +58,7 @@ void Movie::initFromMovieFile(const Common::Path &fileName, bool transparent) {
releaseMovie();
_video = new Video::QuickTimeDecoder();
_video->enableEditListBoundsCheckQuirk(true);
if (!_video->loadFile(fileName)) {
// Replace any colon with an underscore, since only macOS
// supports that. See PegasusEngine::detectOpeningClosingDirectory()

View File

@ -29,6 +29,7 @@
#include "pegasus/elements.h"
#include "pegasus/surface.h"
#include "video/qt_decoder.h"
namespace Video {
class VideoDecoder;
@ -72,7 +73,7 @@ public:
protected:
void updateTime() override;
Video::VideoDecoder *_video;
Video::QuickTimeDecoder *_video;
Common::Rect _movieBox;
};