Files
FC1/Editor/Util/AVI_Writer.cpp
romkazvo 34d6c5d489 123
2023-08-07 19:29:24 +08:00

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;
}