80 lines
2.0 KiB
C++
80 lines
2.0 KiB
C++
////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Crytek Engine Source File.
|
|
// Copyright (C), Crytek Studios, 2001-2004.
|
|
// -------------------------------------------------------------------------
|
|
// File name: AVI_Writer.cpp
|
|
// Version: v1.00
|
|
// Created: 13/5/2004 by Timur.
|
|
// Compilers: Visual Studio.NET 2003
|
|
// Description:
|
|
// -------------------------------------------------------------------------
|
|
// History:
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "StdAfx.h"
|
|
#include "AVI_Writer.h"
|
|
#include "AVIGenerator.h"
|
|
|
|
#include "Settings.h"
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
CAVI_Writer::CAVI_Writer()
|
|
{
|
|
m_pAVI = 0;
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
CAVI_Writer::~CAVI_Writer()
|
|
{
|
|
CloseFile();
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
bool CAVI_Writer::OpenFile( const char *filename,int width,int height )
|
|
{
|
|
m_pAVI = new CAVIGenerator;
|
|
m_pAVI->SetFileName( filename );
|
|
m_pAVI->SetRate(20);
|
|
|
|
BITMAPINFOHEADER bmi;
|
|
ZeroStruct(bmi);
|
|
bmi.biSize = sizeof(bmi);
|
|
bmi.biWidth = width;
|
|
bmi.biHeight = height;
|
|
bmi.biPlanes = 1;
|
|
bmi.biBitCount = 32;
|
|
bmi.biCompression = BI_RGB;
|
|
bmi.biSizeImage = 0;
|
|
m_pAVI->SetBitmapHeader( &bmi );
|
|
m_pAVI->SetRate( gSettings.aviSettings.nFrameRate );
|
|
if (FAILED(m_pAVI->InitEngine( gSettings.aviSettings.codec )))
|
|
{
|
|
Warning( "AVI Engine Initialization Failed (%s)",filename );
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
bool CAVI_Writer::CloseFile()
|
|
{
|
|
if (m_pAVI)
|
|
{
|
|
m_pAVI->ReleaseEngine();
|
|
delete m_pAVI;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
bool CAVI_Writer::AddFrame( CImage &image )
|
|
{
|
|
if (m_pAVI)
|
|
{
|
|
if (!FAILED(m_pAVI->AddFrame( (BYTE*)image.GetData() )))
|
|
return true;
|
|
}
|
|
return false;
|
|
} |