#ifndef _AVIFILE_AVIGENERATOR_HPP_ #define _AVIFILE_AVIGENERATOR_HPP_ #ifndef _COMMON_BITMAP_HPP_ #include #endif #ifndef _COMMON_BLOCK_HPP_ #include #endif #ifndef _AVIFILE_FOURCC_HPP_ #include #endif #ifndef _AVIFILE_AVIBITMAP_HPP_ #include #endif #ifndef _AVIFILE_MOVIEDATA_HPP_ #include #endif #ifndef _JPGIMG_JPGIMAGE_HPP_ #include #endif #ifndef _AVIFILE_COMPRESSOR_HPP_ #include #endif #ifndef _AVIFILE_FILEINFO_HPP_ #include #endif class AVIGenerator { public: AVIGenerator(); virtual ~AVIGenerator(); bool createAVIFile(const String &pathAVIFile,const FOURCC &fccHandler,Block &pathImageNames); bool createAVIFile(const String &pathAVIFile,Block &pathImageNames); void setResample(const Point &resample); void setRate(DWORD rate); void setScale(DWORD scale); void setQuality(DWORD quality); private: void getImageData(JPGImage &jpgImage,MovieData &movieData); void copyRow(RGB888 *pDstArray,RGB888 *pSrcArray,int length); bool getImage(const String &strPathImage,AVIBitmap &aviBitmap,MovieData &movieData); bool getBestFormat(Compressor &compressor,AVIBitmap &aviBitmap,AVIBitmap &dstBitmap); Point mResamplePoint; bool mResample; DWORD mRate; DWORD mScale; DWORD mQuality; }; inline AVIGenerator::AVIGenerator() : mResample(false), mRate(1), mScale(1), mQuality(0) { } inline AVIGenerator::~AVIGenerator() { } inline void AVIGenerator::setResample(const Point &resamplePoint) { mResamplePoint=resamplePoint; mResample=true; } inline void AVIGenerator::setRate(DWORD rate) { mRate=rate; } inline void AVIGenerator::setScale(DWORD scale) { mScale=scale; } inline void AVIGenerator::setQuality(DWORD quality) { mQuality=quality; } #endif