diff options
Diffstat (limited to 'video/smk_decoder.cpp')
-rw-r--r-- | video/smk_decoder.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/video/smk_decoder.cpp b/video/smk_decoder.cpp index d913707119..d8057ac068 100644 --- a/video/smk_decoder.cpp +++ b/video/smk_decoder.cpp @@ -54,9 +54,9 @@ enum SmkBlockTypes { class SmallHuffmanTree { public: - SmallHuffmanTree(Common::BitStream &bs); + SmallHuffmanTree(Common::BitStream8LSB &bs); - uint16 getCode(Common::BitStream &bs); + uint16 getCode(Common::BitStream8LSB &bs); private: enum { SMK_NODE = 0x8000 @@ -70,10 +70,10 @@ private: uint16 _prefixtree[256]; byte _prefixlength[256]; - Common::BitStream &_bs; + Common::BitStream8LSB &_bs; }; -SmallHuffmanTree::SmallHuffmanTree(Common::BitStream &bs) +SmallHuffmanTree::SmallHuffmanTree(Common::BitStream8LSB &bs) : _treeSize(0), _bs(bs) { uint32 bit = _bs.getBit(); assert(bit); @@ -118,7 +118,7 @@ uint16 SmallHuffmanTree::decodeTree(uint32 prefix, int length) { return r1+r2+1; } -uint16 SmallHuffmanTree::getCode(Common::BitStream &bs) { +uint16 SmallHuffmanTree::getCode(Common::BitStream8LSB &bs) { byte peek = bs.peekBits(MIN<uint32>(bs.size() - bs.pos(), 8)); uint16 *p = &_tree[_prefixtree[peek]]; bs.skip(_prefixlength[peek]); @@ -139,11 +139,11 @@ uint16 SmallHuffmanTree::getCode(Common::BitStream &bs) { class BigHuffmanTree { public: - BigHuffmanTree(Common::BitStream &bs, int allocSize); + BigHuffmanTree(Common::BitStream8LSB &bs, int allocSize); ~BigHuffmanTree(); void reset(); - uint32 getCode(Common::BitStream &bs); + uint32 getCode(Common::BitStream8LSB &bs); private: enum { SMK_NODE = 0x80000000 @@ -159,13 +159,13 @@ private: byte _prefixlength[256]; /* Used during construction */ - Common::BitStream &_bs; + Common::BitStream8LSB &_bs; uint32 _markers[3]; SmallHuffmanTree *_loBytes; SmallHuffmanTree *_hiBytes; }; -BigHuffmanTree::BigHuffmanTree(Common::BitStream &bs, int allocSize) +BigHuffmanTree::BigHuffmanTree(Common::BitStream8LSB &bs, int allocSize) : _bs(bs) { uint32 bit = _bs.getBit(); if (!bit) { @@ -256,7 +256,7 @@ uint32 BigHuffmanTree::decodeTree(uint32 prefix, int length) { return r1+r2+1; } -uint32 BigHuffmanTree::getCode(Common::BitStream &bs) { +uint32 BigHuffmanTree::getCode(Common::BitStream8LSB &bs) { byte peek = bs.peekBits(MIN<uint32>(bs.size() - bs.pos(), 8)); uint32 *p = &_tree[_prefixtree[peek]]; bs.skip(_prefixlength[peek]); @@ -553,14 +553,14 @@ Graphics::PixelFormat SmackerDecoder::SmackerVideoTrack::getPixelFormat() const return _surface->format; } -void SmackerDecoder::SmackerVideoTrack::readTrees(Common::BitStream &bs, uint32 mMapSize, uint32 mClrSize, uint32 fullSize, uint32 typeSize) { +void SmackerDecoder::SmackerVideoTrack::readTrees(Common::BitStream8LSB &bs, uint32 mMapSize, uint32 mClrSize, uint32 fullSize, uint32 typeSize) { _MMapTree = new BigHuffmanTree(bs, mMapSize); _MClrTree = new BigHuffmanTree(bs, mClrSize); _FullTree = new BigHuffmanTree(bs, fullSize); _TypeTree = new BigHuffmanTree(bs, typeSize); } -void SmackerDecoder::SmackerVideoTrack::decodeFrame(Common::BitStream &bs) { +void SmackerDecoder::SmackerVideoTrack::decodeFrame(Common::BitStream8LSB &bs) { _MMapTree->reset(); _MClrTree->reset(); _FullTree->reset(); |