#14855 closed defect (fixed)
PEGASUS: Video crashes near its end - Could not find data for frame 193
Reported by: | antoniou79 | Owned by: | antoniou79 |
---|---|---|---|
Priority: | normal | Component: | Engine: Pegasus |
Version: | Keywords: | crash, quicktime, frame, end, quirk | |
Cc: | Game: | Journeyman Project Pegasus Prime |
Description (last modified by )
This occurs in ScummVM latest 2.8.0 release and 2.9.0git dev build (local build on Windows from master HEAD). It also seems to be on all official releases since 2.5.1; ScummVM 2.5.0 is the last official release without the crash bug.
The issue was brought up by forum member Nozomi in this forum thread: https://forums.scummvm.org/viewtopic.php?t=17024
This is tested on Windows 10, with the English version of GOG's release of Pegasus Prime. That release on GOG is bundled with a special build of ScummVM 1.7.0git (which does not have this crash issue).
Steps to reproduce:
- Start a new game
- Click on the "Environ Scan" button, when all the intro cutscenes finish.
- A small (quicktime) video plays.
What happens:
- Near (or at) the video's end, ScummVM will crash with
ERROR: Could not find data for frame 193!
What should happen:
- The video should end normally, and the button "Environ Scan" should be back again, and clickable.
Workaround: The video can be skipped with the skip video shortcut key (space bar)
A quick git bisect shows that the issue started happening after this commit: https://github.com/scummvm/scummvm/commit/6e3403464b0
VIDEO: Limit QuickTime workaround to Riven
Attachments (2)
Change History (6)
comment:1 by , 10 months ago
Description: | modified (diff) |
---|
by , 10 months ago
Attachment: | pegasus-started.sav added |
---|
by , 10 months ago
Attachment: | potentialPegasusQTpatch.diff added |
---|
comment:2 by , 10 months ago
comment:3 by , 10 months ago
The proposed fix (https://github.com/scummvm/scummvm/pull/5620) was merged in master, so it should be available in daily 2.9.0git builds (starting tomorrow or the day after\)
Thanks to developer sluicebox for the help provided on Discord.
It will be backported to 2.8 for a potential 2.8.1 release.
comment:4 by , 10 months ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
I have attached a save game, after the intro cutscenes have played.
I also have attempted (locally) a minor fix, similar to the one for Riven (git diff attached). That fix works, but it's being applied to every video loaded through Movie::initFromMovieFile() (maybe we want to limit it only on the problematic video(s), as long as we can tell which ones they are). There are also other parts in the pegasus engine code when a Video::QuickTimeDecoder object is created, where I did not apply the fix -- I am not sure, if those places should be patched too.
Better to leave the fix to someone else.