diff options
Diffstat (limited to 'image/codecs')
-rw-r--r-- | image/codecs/svq1.cpp | 12 | ||||
-rw-r--r-- | image/codecs/svq1.h | 15 |
2 files changed, 15 insertions, 12 deletions
diff --git a/image/codecs/svq1.cpp b/image/codecs/svq1.cpp index 2d86070801..eba5fb872a 100644 --- a/image/codecs/svq1.cpp +++ b/image/codecs/svq1.cpp @@ -56,16 +56,16 @@ SVQ1Decoder::SVQ1Decoder(uint16 width, uint16 height) { _last[2] = 0; // Setup Variable Length Code Tables - _blockType = new Common::Huffman(0, 4, s_svq1BlockTypeCodes, s_svq1BlockTypeLengths); + _blockType = new HuffmanDecoder(0, 4, s_svq1BlockTypeCodes, s_svq1BlockTypeLengths); for (int i = 0; i < 6; i++) { - _intraMultistage[i] = new Common::Huffman(0, 8, s_svq1IntraMultistageCodes[i], s_svq1IntraMultistageLengths[i]); - _interMultistage[i] = new Common::Huffman(0, 8, s_svq1InterMultistageCodes[i], s_svq1InterMultistageLengths[i]); + _intraMultistage[i] = new HuffmanDecoder(0, 8, s_svq1IntraMultistageCodes[i], s_svq1IntraMultistageLengths[i]); + _interMultistage[i] = new HuffmanDecoder(0, 8, s_svq1InterMultistageCodes[i], s_svq1InterMultistageLengths[i]); } - _intraMean = new Common::Huffman(0, 256, s_svq1IntraMeanCodes, s_svq1IntraMeanLengths); - _interMean = new Common::Huffman(0, 512, s_svq1InterMeanCodes, s_svq1InterMeanLengths); - _motionComponent = new Common::Huffman(0, 33, s_svq1MotionComponentCodes, s_svq1MotionComponentLengths); + _intraMean = new HuffmanDecoder(0, 256, s_svq1IntraMeanCodes, s_svq1IntraMeanLengths); + _interMean = new HuffmanDecoder(0, 512, s_svq1InterMeanCodes, s_svq1InterMeanLengths); + _motionComponent = new HuffmanDecoder(0, 33, s_svq1MotionComponentCodes, s_svq1MotionComponentLengths); } SVQ1Decoder::~SVQ1Decoder() { diff --git a/image/codecs/svq1.h b/image/codecs/svq1.h index 148501d17f..4a005761a5 100644 --- a/image/codecs/svq1.h +++ b/image/codecs/svq1.h @@ -27,6 +27,7 @@ #include "image/codecs/codec.h" namespace Common { +template <class BITSTREAM> class Huffman; struct Point; } @@ -53,12 +54,14 @@ private: byte *_last[3]; - Common::Huffman *_blockType; - Common::Huffman *_intraMultistage[6]; - Common::Huffman *_interMultistage[6]; - Common::Huffman *_intraMean; - Common::Huffman *_interMean; - Common::Huffman *_motionComponent; + typedef Common::Huffman<Common::BitStream32BEMSB> HuffmanDecoder; + + HuffmanDecoder *_blockType; + HuffmanDecoder *_intraMultistage[6]; + HuffmanDecoder *_interMultistage[6]; + HuffmanDecoder *_intraMean; + HuffmanDecoder *_interMean; + HuffmanDecoder *_motionComponent; bool svq1DecodeBlockIntra(Common::BitStream32BEMSB *s, byte *pixels, int pitch); bool svq1DecodeBlockNonIntra(Common::BitStream32BEMSB *s, byte *pixels, int pitch); |