theonlineoasis

VideoCodec/Modules/StreamCoding/HuffmanEntropyDecoder.h

#ifndef HUFFMANENTROPYDECODER_H_ #define HUFFMANENTROPYDECODER_H_ #include "../../Data/Constants.h" #include "../../Data/FrameHeader.h" #include "../../Data/MPEGVLCTables.h" #include "../../Data/StreamHeader.h" #include "../../Data/PictureInfo.h" #include "../../Decoder/BinaryStreamReader.h" #include "../Module.h" namespace VideoCodec {    class HuffmanEntropyDecoder : public VideoCodec::Module    {    public:       HuffmanEntropyDecoder();       virtual ~HuffmanEntropyDecoder();       ConfigurationStatus Configure(ConfigurationElement* configuration);       void DecodeFrame(BinaryStreamReader* reader, StreamHeader* streamHeader, FrameHeader* frameHeader, PictureInfo* picture);    private:       void decodeInterFrame(BinaryStreamReader* reader, StreamHeader* streamHeader, FrameHeader* frameHeader, PictureInfo* picture);       UnsignedByte decodeMBType(BinaryStreamReader* reader, bool pPicture);       void zigZagScan(short int* blockData, short int* output);       SignedByte decodeMVComponent(BinaryStreamReader* reader);    }; } #endif /*HUFFMANENTROPYDECODER_H_*/