35 lines
718 B
C
35 lines
718 B
C
|
#pragma once
|
||
|
|
||
|
#include "AbstractEncoder.h"
|
||
|
|
||
|
#include <memory>
|
||
|
#include <vector>
|
||
|
|
||
|
class ZlibEncoder : public AbstractEncoder
|
||
|
{
|
||
|
|
||
|
public:
|
||
|
ZlibEncoder(BitStream* inputStream, BitStream* outputStream);
|
||
|
~ZlibEncoder();
|
||
|
|
||
|
void setCompressionMethod(unsigned char method);
|
||
|
|
||
|
void setExtraFlags(unsigned char extraFlags);
|
||
|
|
||
|
bool encode() override;
|
||
|
|
||
|
bool decode() override;
|
||
|
|
||
|
private:
|
||
|
unsigned char mCmf{0};
|
||
|
unsigned char mFlg{0};
|
||
|
unsigned char mCompressionMethod{8};
|
||
|
unsigned char mCompressionInfo{0};
|
||
|
unsigned char mFlagCheck{0};
|
||
|
unsigned char mFlagDict{0};
|
||
|
unsigned char mFlagLevel{0};
|
||
|
unsigned char mCheckValue{0};
|
||
|
|
||
|
std::unique_ptr<AbstractEncoder> mWorkingEncoder;
|
||
|
};
|