aboutsummaryrefslogtreecommitdiff
path: root/graphics/video/smk_player.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2009-01-06 17:44:41 +0000
committerFilippos Karapetis2009-01-06 17:44:41 +0000
commita930f402727940bb5778980d031b6cc66263f3a0 (patch)
tree170f30e81c7a6ed69627c7ecd906f9d57a19ff10 /graphics/video/smk_player.cpp
parentfa1d881ad44a515e57b87ba27b325d1eeb4a750b (diff)
downloadscummvm-rg350-a930f402727940bb5778980d031b6cc66263f3a0.tar.gz
scummvm-rg350-a930f402727940bb5778980d031b6cc66263f3a0.tar.bz2
scummvm-rg350-a930f402727940bb5778980d031b6cc66263f3a0.zip
An attempt to unify the different video players (FLIC player is not finished yet) - step 1
svn-id: r35757
Diffstat (limited to 'graphics/video/smk_player.cpp')
-rw-r--r--graphics/video/smk_player.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/graphics/video/smk_player.cpp b/graphics/video/smk_player.cpp
index 5ad7044c5f..548ed70134 100644
--- a/graphics/video/smk_player.cpp
+++ b/graphics/video/smk_player.cpp
@@ -502,8 +502,8 @@ bool SMKPlayer::loadFile(const char *fileName) {
_FullTree = new BigHuffmanTree(bs);
_TypeTree = new BigHuffmanTree(bs);
- _image = (byte *)malloc(2 * _header.width * _header.height);
- memset(_image, 0, 2 * _header.width * _header.height);
+ _videoFrameBuffer = (byte *)malloc(2 * _header.width * _header.height);
+ memset(_videoFrameBuffer, 0, 2 * _header.width * _header.height);
_palette = (byte *)malloc(3 * 256);
memset(_palette, 0, 3 * 256);
@@ -521,6 +521,7 @@ void SMKPlayer::closeFile() {
}
delete _fileStream;
+ _fileStream = 0;
delete _MMapTree;
delete _MClrTree;
@@ -529,17 +530,15 @@ void SMKPlayer::closeFile() {
free(_frameSizes);
free(_frameTypes);
- free(_image);
+ free(_videoFrameBuffer);
free(_palette);
-
- _fileStream = 0;
}
void SMKPlayer::copyFrameToBuffer(byte *dst, uint x, uint y, uint pitch) {
uint h = (_header.flags ? 2 : 1) * _header.height;
uint w = _header.width;
- byte *src = _image;
+ byte *src = _videoFrameBuffer;
dst += y * pitch + x;
do {
@@ -653,7 +652,7 @@ bool SMKPlayer::decodeNextFrame() {
while (run-- && block < blocks) {
clr = _MClrTree->getCode(bs);
map = _MMapTree->getCode(bs);
- out = _image + (block / bw) * (stride * 4 * doubleY) + (block % bw) * 4;
+ out = _videoFrameBuffer + (block / bw) * (stride * 4 * doubleY) + (block % bw) * 4;
hi = clr >> 8;
lo = clr & 0xff;
for (i = 0; i < 4; i++) {
@@ -686,7 +685,7 @@ bool SMKPlayer::decodeNextFrame() {
}
while (run-- && block < blocks) {
- out = _image + (block / bw) * (stride * 4 * doubleY) + (block % bw) * 4;
+ out = _videoFrameBuffer + (block / bw) * (stride * 4 * doubleY) + (block % bw) * 4;
switch (mode) {
case 0:
for (i = 0; i < 4; ++i) {
@@ -752,7 +751,7 @@ bool SMKPlayer::decodeNextFrame() {
uint32 col;
mode = type >> 8;
while (run-- && block < blocks) {
- out = _image + (block / bw) * (stride * 4 * doubleY) + (block % bw) * 4;
+ out = _videoFrameBuffer + (block / bw) * (stride * 4 * doubleY) + (block % bw) * 4;
col = mode * 0x01010101;
for (i = 0; i < 4 * doubleY; ++i) {
out[0] = out[1] = out[2] = out[3] = col;