#ifndef _AVIFILE_COMPRESSOR_HPP_ #define _AVIFILE_COMPRESSOR_HPP_ #ifndef _AVIFILE_FOURCC_HPP_ #include #endif #ifndef _AVIFILE_AVIBITMAP_HPP_ #include #endif #ifndef _AVIFILE_MOVIEDATA_HPP_ #include #endif #ifndef _AVIFILE_ICINFO_HPP_ #include #endif class Compressor { public: Compressor(); Compressor(const FOURCC &fccHandler); virtual ~Compressor(); bool open(const FOURCC &fccHandler); void close(void); bool compress(AVIBitmap &aviBitmap,MovieData &srcMovieData,AVIBitmap &dstBitmap,MovieData &dstMovieData,DWORD dwFrameNumber); void setQuality(DWORD quality); bool getFormat(AVIBitmap &srcBitmap,AVIBitmap &dstBitmap); bool compressQuery(AVIBitmap &srcBitmap,AVIBitmap &dstBitmap); bool compressQuery(AVIBitmap &srcBitmap); void compressEnd(void); bool compressBegin(AVIBitmap &srcBitmap,AVIBitmap &dstBitmap); bool isOkay(void)const; bool isInCompress(void)const; const CompressorInfo &compressorInfo(void)const; private: Compressor(const Compressor &compressor); Compressor &operator=(Compressor &compressor); HIC mhIC; DWORD mQuality; CompressorInfo mCompressorInfo; bool mIsInCompress; }; inline Compressor::Compressor() : mhIC(0), mQuality(0), mIsInCompress(false) { } inline Compressor::Compressor(const Compressor &/*codec*/) { // private implementation } inline Compressor::Compressor(const FOURCC &fccHandler) { open(fccHandler); } inline Compressor::~Compressor() { close(); } inline Compressor &Compressor::operator=(Compressor &compressor) { // private implementation return *this; } inline void Compressor::setQuality(DWORD quality) { mQuality=quality; } inline bool Compressor::isInCompress(void)const { return mIsInCompress; } inline bool Compressor::isOkay(void)const { return mhIC?true:false; } inline const CompressorInfo &Compressor::compressorInfo(void)const { return mCompressorInfo; } #endif