aboutsummaryrefslogtreecommitdiff
path: root/image
diff options
context:
space:
mode:
Diffstat (limited to 'image')
-rw-r--r--image/codecs/svq1.cpp12
-rw-r--r--image/codecs/svq1.h15
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);