118 lines
5.5 KiB
C++
118 lines
5.5 KiB
C++
#include <avifile/mainhdr.hpp>
|
|
|
|
AVIMainHeader &AVIMainHeader::operator=(const AVIMainHeader &someAVIMainHeader)
|
|
{
|
|
microSecondsPerFrame(someAVIMainHeader.microSecondsPerFrame());
|
|
maxBytesPerSecond(someAVIMainHeader.maxBytesPerSecond());
|
|
granularity(someAVIMainHeader.granularity());
|
|
flags(someAVIMainHeader.flags());
|
|
totalFrames(someAVIMainHeader.totalFrames());
|
|
initialFrames(someAVIMainHeader.initialFrames());
|
|
streams(someAVIMainHeader.streams());
|
|
suggestedBufferSize(someAVIMainHeader.suggestedBufferSize());
|
|
width(someAVIMainHeader.width());
|
|
height(someAVIMainHeader.height());
|
|
return *this;
|
|
}
|
|
|
|
WORD AVIMainHeader::operator==(const AVIMainHeader &someAVIMainHeader)const
|
|
{
|
|
return (microSecondsPerFrame()==someAVIMainHeader.microSecondsPerFrame()&&
|
|
maxBytesPerSecond()==someAVIMainHeader.maxBytesPerSecond()&&
|
|
granularity()==someAVIMainHeader.granularity()&&
|
|
flags()==someAVIMainHeader.flags()&&
|
|
totalFrames()==someAVIMainHeader.totalFrames()&&
|
|
initialFrames()==someAVIMainHeader.initialFrames()&&
|
|
streams()==someAVIMainHeader.streams()&&
|
|
suggestedBufferSize()==someAVIMainHeader.suggestedBufferSize()&&
|
|
width()==someAVIMainHeader.width()&&
|
|
height()==someAVIMainHeader.height());
|
|
}
|
|
|
|
bool AVIMainHeader::read(File &inFile)
|
|
{
|
|
String aviLiteral("avih");
|
|
String aviHeader;
|
|
DWORD sizeHeader;
|
|
|
|
aviHeader.reserve(aviLiteral.length()+1);
|
|
inFile.read(aviHeader,aviLiteral.length());
|
|
if(!(aviLiteral==aviHeader))return FALSE;
|
|
inFile.read(sizeHeader);
|
|
inFile.read(MainAVIHeader::dwMicroSecPerFrame);
|
|
inFile.read(MainAVIHeader::dwMaxBytesPerSec);
|
|
inFile.read(MainAVIHeader::dwPaddingGranularity);
|
|
inFile.read(MainAVIHeader::dwFlags);
|
|
inFile.read(MainAVIHeader::dwTotalFrames);
|
|
inFile.read(MainAVIHeader::dwInitialFrames);
|
|
inFile.read(MainAVIHeader::dwStreams);
|
|
inFile.read(MainAVIHeader::dwSuggestedBufferSize);
|
|
inFile.read(MainAVIHeader::dwWidth);
|
|
inFile.read(MainAVIHeader::dwHeight);
|
|
inFile.read(MainAVIHeader::dwReserved[0]);
|
|
inFile.read(MainAVIHeader::dwReserved[1]);
|
|
inFile.read(MainAVIHeader::dwReserved[2]);
|
|
inFile.read(MainAVIHeader::dwReserved[3]);
|
|
::OutputDebugString(toString()+String("\n"));
|
|
return true;
|
|
}
|
|
|
|
bool AVIMainHeader::write(File &outFile)
|
|
{
|
|
outFile.write("avih");
|
|
DWORD sizeHeader;
|
|
|
|
sizeHeader=sizeof(MainAVIHeader::dwMicroSecPerFrame)+
|
|
sizeof(MainAVIHeader::dwMaxBytesPerSec)+
|
|
sizeof(MainAVIHeader::dwPaddingGranularity)+
|
|
sizeof(MainAVIHeader::dwFlags)+
|
|
sizeof(MainAVIHeader::dwTotalFrames)+
|
|
sizeof(MainAVIHeader::dwInitialFrames)+
|
|
sizeof(MainAVIHeader::dwStreams)+
|
|
sizeof(MainAVIHeader::dwSuggestedBufferSize)+
|
|
sizeof(MainAVIHeader::dwWidth)+
|
|
sizeof(MainAVIHeader::dwHeight)+
|
|
sizeof(MainAVIHeader::dwReserved[0])+
|
|
sizeof(MainAVIHeader::dwReserved[1])+
|
|
sizeof(MainAVIHeader::dwReserved[2])+
|
|
sizeof(MainAVIHeader::dwReserved[3]);
|
|
outFile.write(sizeHeader);
|
|
outFile.write(MainAVIHeader::dwMicroSecPerFrame);
|
|
outFile.write(MainAVIHeader::dwMaxBytesPerSec);
|
|
outFile.write(MainAVIHeader::dwPaddingGranularity);
|
|
outFile.write(MainAVIHeader::dwFlags);
|
|
outFile.write(MainAVIHeader::dwTotalFrames);
|
|
outFile.write(MainAVIHeader::dwInitialFrames);
|
|
outFile.write(MainAVIHeader::dwStreams);
|
|
outFile.write(MainAVIHeader::dwSuggestedBufferSize);
|
|
outFile.write(MainAVIHeader::dwWidth);
|
|
outFile.write(MainAVIHeader::dwHeight);
|
|
outFile.write(MainAVIHeader::dwReserved[0]);
|
|
outFile.write(MainAVIHeader::dwReserved[1]);
|
|
outFile.write(MainAVIHeader::dwReserved[2]);
|
|
outFile.write(MainAVIHeader::dwReserved[3]);
|
|
::OutputDebugString(toString()+String("\n"));
|
|
return true;
|
|
}
|
|
|
|
String AVIMainHeader::toString(void)const
|
|
{
|
|
String str;
|
|
str+=String("[AVIMainHeader::toString]MainAVIHeader::dwMicroSecPerFrame=")+String().fromInt(MainAVIHeader::dwMicroSecPerFrame)+String("\n");
|
|
str+=String("[AVIMainHeader::toString]MainAVIHeader::dwMaxBytesPerSec=")+String().fromInt(MainAVIHeader::dwMaxBytesPerSec)+String("\n");
|
|
str+=String("[AVIMainHeader::toString]MainAVIHeader::dwPaddingGranularity=")+String().fromInt(MainAVIHeader::dwPaddingGranularity)+String("\n");
|
|
str+=String("[AVIMainHeader::toString]MainAVIHeader::dwFlags=")+String().fromInt(MainAVIHeader::dwFlags)+String("\n");
|
|
str+=String("[AVIMainHeader::toString]MainAVIHeader::dwTotalFrames=")+String().fromInt(MainAVIHeader::dwTotalFrames)+String("\n");
|
|
str+=String("[AVIMainHeader::toString]MainAVIHeader::dwInitialFrames=")+String().fromInt(MainAVIHeader::dwInitialFrames)+String("\n");
|
|
str+=String("[AVIMainHeader::toString]MainAVIHeader::dwStreams=")+String().fromInt(MainAVIHeader::dwStreams)+String("\n");
|
|
str+=String("[AVIMainHeader::toString]MainAVIHeader::dwSuggestedBufferSize=")+String().fromInt(MainAVIHeader::dwSuggestedBufferSize)+String("\n");
|
|
str+=String("[AVIMainHeader::toString]MainAVIHeader::dwWidth=")+String().fromInt(MainAVIHeader::dwWidth)+String("\n");
|
|
str+=String("[AVIMainHeader::toString]MainAVIHeader::dwHeight=")+String().fromInt(MainAVIHeader::dwHeight)+String("\n");
|
|
str+=String("[AVIMainHeader::toString]MainAVIHeader::dwReserved[0]=")+String().fromInt(MainAVIHeader::dwReserved[0])+String("\n");
|
|
str+=String("[AVIMainHeader::toString]MainAVIHeader::dwReserved[1]=")+String().fromInt(MainAVIHeader::dwReserved[1])+String("\n");
|
|
str+=String("[AVIMainHeader::toString]MainAVIHeader::dwReserved[2]=")+String().fromInt(MainAVIHeader::dwReserved[2])+String("\n");
|
|
str+=String("[AVIMainHeader::toString]MainAVIHeader::dwReserved[3]=")+String().fromInt(MainAVIHeader::dwReserved[3])+String("\n");
|
|
return str;
|
|
}
|
|
|