Files
Work/avifile/AVIGenerator.hpp
2024-08-07 09:12:07 -04:00

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