aboutsummaryrefslogtreecommitdiff
path: root/video/bink_decoder.h
diff options
context:
space:
mode:
authorBastien Bouclet2017-10-08 08:54:40 +0200
committerBastien Bouclet2017-10-08 08:54:40 +0200
commit6e6fab5b837af2ee9cf7b96d43f6b1ed353405f4 (patch)
tree2db18807a5b52a3bf3a12361dfacbe1ec8dc5a82 /video/bink_decoder.h
parent51275ea7a91880a19c86ac079ab4462c489a5f19 (diff)
downloadscummvm-rg350-6e6fab5b837af2ee9cf7b96d43f6b1ed353405f4.tar.gz
scummvm-rg350-6e6fab5b837af2ee9cf7b96d43f6b1ed353405f4.tar.bz2
scummvm-rg350-6e6fab5b837af2ee9cf7b96d43f6b1ed353405f4.zip
VIDEO: BINK: Fix plane data clobbering caused by incorrect pitch value
When decoding blocks, the YUV planes' pitches were computed using the target video surface size instead of the block based size, resulting in decoded plane data being overwritten for some video sizes. Affected videos are LEOS-11102.bik and LEOS-11152.bik from Myst III.
Diffstat (limited to 'video/bink_decoder.h')
-rw-r--r--video/bink_decoder.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/video/bink_decoder.h b/video/bink_decoder.h
index 8a67913a03..68dd994115 100644
--- a/video/bink_decoder.h
+++ b/video/bink_decoder.h
@@ -254,6 +254,11 @@ private:
/** Value of the last decoded high nibble in color data types. */
int _colLastVal;
+ uint32 _yBlockWidth; ///< Width of the Y plane in blocks
+ uint32 _yBlockHeight; ///< Height of the Y plane in blocks
+ uint32 _uvBlockWidth; ///< Width of the U and V planes in blocks
+ uint32 _uvBlockHeight; ///< Height of the U and V planes in blocks
+
byte *_curPlanes[4]; ///< The 4 color planes, YUVA, current frame.
byte *_oldPlanes[4]; ///< The 4 color planes, YUVA, last frame.