diff options
author | Bastien Bouclet | 2017-10-08 08:54:40 +0200 |
---|---|---|
committer | Bastien Bouclet | 2017-10-08 08:54:40 +0200 |
commit | 6e6fab5b837af2ee9cf7b96d43f6b1ed353405f4 (patch) | |
tree | 2db18807a5b52a3bf3a12361dfacbe1ec8dc5a82 /video/bink_decoder.h | |
parent | 51275ea7a91880a19c86ac079ab4462c489a5f19 (diff) | |
download | scummvm-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.h | 5 |
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. |