[Scummvm-git-logs] scummvm master -> 06dd647f137472c157df8a83c823b63d58470379
bluegr
noreply at scummvm.org
Mon Nov 3 17:32:51 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
06dd647f13 VIDEO: Make sure QT decoder palette is dirty when starting
Commit: 06dd647f137472c157df8a83c823b63d58470379
https://github.com/scummvm/scummvm/commit/06dd647f137472c157df8a83c823b63d58470379
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2025-11-03T19:32:48+02:00
Commit Message:
VIDEO: Make sure QT decoder palette is dirty when starting
When a video is stopped and restarted, the palette of the video track
was kept while it was reset in the outer VideoDecoder.
When setting the reverse flag or seeking, force a palette reset.
Fix Trac#16319.
The commit b8f52246a8d050008da0c91fd690e674887973d5 correctly fixed the
hasDirtyPalette function which returned true as soon as a palette was
present but this made the palette update in the outer VideoDecoder not
happening at restart.
Changed paths:
video/qt_decoder.cpp
diff --git a/video/qt_decoder.cpp b/video/qt_decoder.cpp
index 5cee66a7df0..ecdacc36301 100644
--- a/video/qt_decoder.cpp
+++ b/video/qt_decoder.cpp
@@ -341,7 +341,7 @@ QuickTimeDecoder::VideoTrackHandler::VideoTrackHandler(QuickTimeDecoder *decoder
_durationOverride = -1;
_scaledSurface = 0;
- _curPalette = 0;
+ _curPalette = nullptr;
_dirtyPalette = false;
_reversed = false;
}
@@ -400,6 +400,7 @@ bool QuickTimeDecoder::VideoTrackHandler::endOfTrack() const {
bool QuickTimeDecoder::VideoTrackHandler::seek(const Audio::Timestamp &requestedTime) {
_delayedFrameToBufferTo = -1; // abort any delayed buffering
+ _curPalette = nullptr; // invalidate any palette
uint32 convertedFrames = requestedTime.convertToFramerate(_decoder->_timeScale).totalNumberOfFrames();
for (_curEdit = 0; !atLastEdit(); _curEdit++)
@@ -628,6 +629,7 @@ const byte *QuickTimeDecoder::VideoTrackHandler::getPalette() const {
bool QuickTimeDecoder::VideoTrackHandler::setReverse(bool reverse) {
_delayedFrameToBufferTo = -1; // abort any delayed buffering
+ _curPalette = nullptr; // invalidate any palette
_reversed = reverse;
@@ -882,8 +884,8 @@ const Graphics::Surface *QuickTimeDecoder::VideoTrackHandler::bufferNextFrame()
// The codec palette takes priority over the container one
if (entry->_videoCodec->containsPalette()) {
- _curPalette = entry->_videoCodec->getPalette();
_dirtyPalette = entry->_videoCodec->hasDirtyPalette();
+ _curPalette = entry->_videoCodec->getPalette();
}
return frame;
More information about the Scummvm-git-logs
mailing list