gstreamer/gst/monkeyaudio/libmonkeyaudio/APECompressCore.h
Jeremy Simon c1a4db611b Add monkeyaudio plugin
Original commit message from CVS:
Add monkeyaudio plugin
2003-03-11 19:33:32 +00:00

46 lines
1.4 KiB
C++

#ifndef APE_APECOMPRESSCORE_H
#define APE_APECOMPRESSCORE_H
#include "APECompress.h"
#include "BitArray.h"
class CPrepare;
class IPredictorCompress;
/*************************************************************************************************
CAPECompressCore - manages the core of compression and bitstream output
*************************************************************************************************/
class CAPECompressCore
{
public:
CAPECompressCore(CIO * pIO, const WAVEFORMATEX * pwfeInput, int nMaxFrameBlocks, int nCompressionLevel);
~CAPECompressCore();
int EncodeFrame(unsigned char * pInputData, int nInputBytes);
CBitArray * GetBitArray() { return m_spBitArray.GetPtr(); }
int GetPeakLevel() { return m_nPeakLevel; }
private:
CSmartPtr<CBitArray> m_spBitArray;
CSmartPtr<IPredictorCompress> m_spPredictorX;
CSmartPtr<IPredictorCompress> m_spPredictorY;
BIT_ARRAY_STATE m_BitArrayStateX;
BIT_ARRAY_STATE m_BitArrayStateY;
CSmartPtr<int> m_spDataX;
CSmartPtr<int> m_spDataY;
CSmartPtr<int> m_spTempData;
CSmartPtr<CPrepare> m_spPrepare;
WAVEFORMATEX m_wfeInput;
int m_nPeakLevel;
int Prepare(unsigned char * pInputData, int nInputBytes, int * pSpecialCodes);
};
#endif /* APE_APECOMPRESSCORE_H */