aboutsummaryrefslogtreecommitdiff
path: root/image/codecs/indeo
diff options
context:
space:
mode:
authorPaul Gilbert2016-11-21 20:20:23 -0500
committerPaul Gilbert2016-11-21 20:20:23 -0500
commitb3c686195fa01434124079a3c8533d6b2f8b9795 (patch)
tree9d75d4eb7b229bc2df82069adeb8d302ce5ff735 /image/codecs/indeo
parent7e35499c8964f8f5757387a310f9eb61cb227368 (diff)
downloadscummvm-rg350-b3c686195fa01434124079a3c8533d6b2f8b9795.tar.gz
scummvm-rg350-b3c686195fa01434124079a3c8533d6b2f8b9795.tar.bz2
scummvm-rg350-b3c686195fa01434124079a3c8533d6b2f8b9795.zip
IMAGE: Add hack to Indeo 4 decoder to guess transparent areas
Diffstat (limited to 'image/codecs/indeo')
-rw-r--r--image/codecs/indeo/indeo.cpp4
-rw-r--r--image/codecs/indeo/indeo.h5
2 files changed, 9 insertions, 0 deletions
diff --git a/image/codecs/indeo/indeo.cpp b/image/codecs/indeo/indeo.cpp
index f82c4829af..a20a3ec113 100644
--- a/image/codecs/indeo/indeo.cpp
+++ b/image/codecs/indeo/indeo.cpp
@@ -607,6 +607,10 @@ int IndeoDecoderBase::decodeIndeoFrame() {
// Free the now un-needed frame data
frame->freeFrame();
+ // If there's any transparency data, decode it
+ if (_ctx._hasTransp)
+ decodeTransparency();
+
return 0;
}
diff --git a/image/codecs/indeo/indeo.h b/image/codecs/indeo/indeo.h
index 068f8c9f25..dcb7330318 100644
--- a/image/codecs/indeo/indeo.h
+++ b/image/codecs/indeo/indeo.h
@@ -564,6 +564,11 @@ protected:
virtual int decodeMbInfo(IVIBandDesc *band, IVITile *tile) = 0;
/**
+ * Decodes optional transparency data within Indeo frames
+ */
+ virtual void decodeTransparency() {}
+
+ /**
* Decodes the Indeo frame from the bit reader already
* loaded into the context
*/