aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Hoops2010-12-10 02:09:48 +0000
committerMatthew Hoops2010-12-10 02:09:48 +0000
commitcf65709c4570d59cf12114c36310923911d7c737 (patch)
treeff9f97cc0196f36879059808e60e7130eb71f37b
parent4393ef1bd5c607df678d78b56dd9c1e515dae84f (diff)
downloadscummvm-rg350-cf65709c4570d59cf12114c36310923911d7c737.tar.gz
scummvm-rg350-cf65709c4570d59cf12114c36310923911d7c737.tar.bz2
scummvm-rg350-cf65709c4570d59cf12114c36310923911d7c737.zip
VIDEO: Fix QuickTimeDecoder::hasDirtyPalette() by allocating the palette only for 8bpp videos
svn-id: r54849
-rw-r--r--graphics/video/qt_decoder.cpp7
-rw-r--r--graphics/video/qt_decoder.h2
2 files changed, 7 insertions, 2 deletions
diff --git a/graphics/video/qt_decoder.cpp b/graphics/video/qt_decoder.cpp
index bb2714c4e5..4c7b95abf5 100644
--- a/graphics/video/qt_decoder.cpp
+++ b/graphics/video/qt_decoder.cpp
@@ -878,6 +878,10 @@ int QuickTimeDecoder::readSTSD(MOVatom atom) {
// if the depth is 2, 4, or 8 bpp, file is palettized
if (colorDepth == 2 || colorDepth == 4 || colorDepth == 8) {
+ // Initialize the palette
+ entry->palette = new byte[256 * 3];
+ memset(entry->palette, 0, 256 * 3);
+
if (colorGreyscale) {
debug(0, "Greyscale palette");
@@ -1326,7 +1330,7 @@ QuickTimeDecoder::STSDEntry::STSDEntry() {
bitsPerSample = 0;
memset(codecName, 0, 32);
colorTableId = 0;
- memset(palette, 0, 256 * 3);
+ palette = 0;
videoCodec = 0;
channels = 0;
sampleRate = 0;
@@ -1335,6 +1339,7 @@ QuickTimeDecoder::STSDEntry::STSDEntry() {
}
QuickTimeDecoder::STSDEntry::~STSDEntry() {
+ delete[] palette;
delete videoCodec;
}
diff --git a/graphics/video/qt_decoder.h b/graphics/video/qt_decoder.h
index f1f9fd98d2..6198c2e24b 100644
--- a/graphics/video/qt_decoder.h
+++ b/graphics/video/qt_decoder.h
@@ -158,7 +158,7 @@ protected:
// Video
char codecName[32];
uint16 colorTableId;
- byte palette[256 * 3];
+ byte *palette;
Codec *videoCodec;
// Audio