187 lines
3.8 KiB
C++
187 lines
3.8 KiB
C++
#ifndef _AVIFILE_ICINFO_HPP_
|
|
#define _AVIFILE_ICINFO_HPP_
|
|
#ifndef _COMMON_STRING_HPP_
|
|
#include <common/string.hpp>
|
|
#endif
|
|
#ifndef _AVIFILE_FOURCC_HPP_
|
|
#include <avifile/fourcc.hpp>
|
|
#endif
|
|
#ifndef _AVIFILE_FOURCC_HPP_
|
|
#include <avifile/fourcc.hpp>
|
|
#endif
|
|
#ifndef _COM_BSTRING_HPP_
|
|
#include <com/bstring.hpp>
|
|
#endif
|
|
|
|
class CompressorInfo : private ICINFO
|
|
{
|
|
public:
|
|
CompressorInfo();
|
|
virtual ~CompressorInfo();
|
|
DWORD size(void)const;
|
|
FOURCC fccType(void)const;
|
|
FOURCC fccHandler(void)const;
|
|
DWORD flags(void)const;
|
|
bool hasCompressFrames(void)const;
|
|
bool hasCrunch(void)const;
|
|
bool hasDraw(void)const;
|
|
bool hasFastTemporalCompression(void)const;
|
|
bool hasFastTemporalDecompression(void)const;
|
|
bool hasQuality(void)const;
|
|
bool hasTemporal(void)const;
|
|
String stringFlags(void)const;
|
|
DWORD version(void)const;
|
|
DWORD versionICM(void)const;
|
|
String name(void)const;
|
|
String description(void)const;
|
|
String driver(void)const;
|
|
String toString(void)const;
|
|
ICINFO &getICINFO(void);
|
|
private:
|
|
};
|
|
|
|
inline
|
|
CompressorInfo::CompressorInfo()
|
|
{
|
|
::memset(&(ICINFO&)*this,0,sizeof(ICINFO));
|
|
ICINFO::dwSize=sizeof(ICINFO);
|
|
}
|
|
|
|
inline
|
|
CompressorInfo::~CompressorInfo()
|
|
{
|
|
}
|
|
|
|
inline
|
|
FOURCC CompressorInfo::fccType(void)const
|
|
{
|
|
return ICINFO::fccType;
|
|
}
|
|
|
|
inline
|
|
FOURCC CompressorInfo::fccHandler(void)const
|
|
{
|
|
return ICINFO::fccHandler;
|
|
}
|
|
|
|
inline
|
|
DWORD CompressorInfo::flags(void)const
|
|
{
|
|
return ICINFO::dwFlags;
|
|
}
|
|
|
|
inline
|
|
bool CompressorInfo::hasCompressFrames(void)const
|
|
{
|
|
return flags()&VIDCF_COMPRESSFRAMES;
|
|
}
|
|
|
|
inline
|
|
bool CompressorInfo::hasCrunch(void)const
|
|
{
|
|
return flags()&VIDCF_CRUNCH;
|
|
}
|
|
|
|
inline
|
|
bool CompressorInfo::hasDraw(void)const
|
|
{
|
|
return flags()&VIDCF_DRAW;
|
|
}
|
|
|
|
inline
|
|
bool CompressorInfo::hasFastTemporalCompression(void)const
|
|
{
|
|
return flags()&VIDCF_FASTTEMPORALC;
|
|
}
|
|
|
|
inline
|
|
bool CompressorInfo::hasFastTemporalDecompression(void)const
|
|
{
|
|
return flags()&VIDCF_FASTTEMPORALD;
|
|
}
|
|
|
|
inline
|
|
bool CompressorInfo::hasQuality(void)const
|
|
{
|
|
return flags()&VIDCF_QUALITY;
|
|
}
|
|
|
|
inline
|
|
bool CompressorInfo::hasTemporal(void)const
|
|
{
|
|
return flags()&VIDCF_TEMPORAL;
|
|
}
|
|
|
|
inline
|
|
String CompressorInfo::stringFlags(void)const
|
|
{
|
|
String string;
|
|
|
|
if(hasCompressFrames())string+="COMPRESSFRAMES ";
|
|
if(hasCrunch())string+="CRUNCH ";
|
|
if(hasDraw())string+="DRAW ";
|
|
if(hasFastTemporalCompression())string+="FASTTEMPORALC ";
|
|
if(hasFastTemporalDecompression())string+="FASTTEMPORALD ";
|
|
if(hasQuality())string+="QUALITY ";
|
|
if(hasTemporal())string+="TEMPORAL ";
|
|
return string;
|
|
}
|
|
|
|
inline
|
|
DWORD CompressorInfo::version(void)const
|
|
{
|
|
return ICINFO::dwVersion;
|
|
}
|
|
|
|
inline
|
|
DWORD CompressorInfo::versionICM(void)const
|
|
{
|
|
return ICINFO::dwVersionICM;
|
|
}
|
|
|
|
inline
|
|
String CompressorInfo::name(void)const
|
|
{
|
|
return BString(ICINFO::szName).toString();
|
|
}
|
|
|
|
inline
|
|
String CompressorInfo::description(void)const
|
|
{
|
|
return BString(ICINFO::szDescription).toString();
|
|
}
|
|
|
|
inline
|
|
String CompressorInfo::driver(void)const
|
|
{
|
|
return BString(ICINFO::szDriver).toString();
|
|
}
|
|
|
|
inline
|
|
DWORD CompressorInfo::size(void)const
|
|
{
|
|
return ICINFO::dwSize;
|
|
}
|
|
|
|
inline
|
|
ICINFO &CompressorInfo::getICINFO(void)
|
|
{
|
|
return (ICINFO&)*this;
|
|
}
|
|
|
|
inline
|
|
String CompressorInfo::toString(void)const
|
|
{
|
|
String string;
|
|
string+=String("[CompressorInfo::toString]fccType=")+fccType().toString()+String("\n");
|
|
string+=String("[CompressorInfo::toString]fccHandler=")+fccHandler().toString()+String("\n");
|
|
string+=String("[CompressorInfo::toString]flags=")+stringFlags()+String("\n");
|
|
string+=String("[CompressorInfo::toString]version=")+String().fromInt(version())+String("\n");
|
|
string+=String("[CompressorInfo::toString]versionICM=")+String().fromInt(versionICM())+String("\n");
|
|
string+=String("[CompressorInfo::toString]name=")+name()+String("\n");
|
|
string+=String("[CompressorInfo::toString]description=")+description()+String("\n");
|
|
string+=String("[CompressorInfo::toString]driver=")+description()+String("\n");
|
|
return string;
|
|
}
|
|
#endif
|