88 lines
1.8 KiB
C++
88 lines
1.8 KiB
C++
#ifndef _AVIFILE_AVIGENERATOR_HPP_
|
|
#define _AVIFILE_AVIGENERATOR_HPP_
|
|
#ifndef _COMMON_BITMAP_HPP_
|
|
#include <common/bitmap.hpp>
|
|
#endif
|
|
#ifndef _COMMON_BLOCK_HPP_
|
|
#include <common/block.hpp>
|
|
#endif
|
|
#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 _JPGIMG_JPGIMAGE_HPP_
|
|
#include <jpgimg/jpgimg.hpp>
|
|
#endif
|
|
#ifndef _AVIFILE_COMPRESSOR_HPP_
|
|
#include <avifile/Compressor.hpp>
|
|
#endif
|
|
#ifndef _AVIFILE_FILEINFO_HPP_
|
|
#include <avifile/fileinfo.hpp>
|
|
#endif
|
|
|
|
class AVIGenerator
|
|
{
|
|
public:
|
|
AVIGenerator();
|
|
virtual ~AVIGenerator();
|
|
bool createAVIFile(const String &pathAVIFile,const FOURCC &fccHandler,Block<String> &pathImageNames);
|
|
bool createAVIFile(const String &pathAVIFile,Block<String> &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
|