97 lines
1.9 KiB
C++
97 lines
1.9 KiB
C++
#ifndef _AVIFILE_COMPRESSOR_HPP_
|
|
#define _AVIFILE_COMPRESSOR_HPP_
|
|
#ifndef _AVIFILE_FOURCC_HPP_
|
|
#include <avifile/fourcc.hpp>
|
|
#endif
|
|
#ifndef _AVIFILE_AVIBITMAP_HPP_
|
|
#include <avifile/avibmp.hpp>
|
|
#endif
|
|
#ifndef _AVIFILE_MOVIEDATA_HPP_
|
|
#include <avifile/movidata.hpp>
|
|
#endif
|
|
#ifndef _AVIFILE_ICINFO_HPP_
|
|
#include <avifile/icinfo.hpp>
|
|
#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
|