www.pudn.com > mediator15src.zip > OpenDMLAVIOutput.h


/* 
 * OpenDMLAVIOutput.h 
 * Copyright (C) 2002 Arno Hornberger  
 * 
 * This file is part of MPEG Mediator, a free MPEG stream converter. 
 * 
 * MPEG Mediator is free software; you can redistribute it and/or modify 
 * it under the terms of the GNU General Public License as published by 
 * the Free Software Foundation; either version 2 of the License, or 
 * (at your option) any later version. 
 * 
 * MPEG Mediator is distributed in the hope that it will be useful, 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 * GNU General Public License for more details. 
 * 
 * You should have received a copy of the GNU General Public License 
 * along with this program; if not, write to the Free Software 
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
 */ 
 
#if !defined(AFX_OPENDMLAVIOUTPUT_H__02F95787_DF6E_4FDD_81EB_BA7558CEDFDD__INCLUDED_) 
#define AFX_OPENDMLAVIOUTPUT_H__02F95787_DF6E_4FDD_81EB_BA7558CEDFDD__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#ifndef __AFXWIN_H__ 
	#error include 'stdafx.h' before including this file for PCH 
#endif 
 
#include "resource.h"		// main symbols 
// Premiere includes 
#include "./premiere/prtypes.h" 
#include "./premiere/prcompile.h" 
#include "./premiere/prextensions.h" 
 
#include  
#include  
#include  
#include  
#include "AVIoutput.h" 
#include "VideoSequenceCompressor.h" 
#include "AudioCompressor.h" 
#include "VideoCodecEnumerator.h" 
#include "AudioCodecEnumerator.h" 
#include "StateManager.h" 
 
///////////////////////////////////////////////////////////////////////////// 
// COpenDMLAVIOutputApp 
// See OpenDMLAVIOutput.cpp for the implementation of this class 
// 
 
class COpenDMLAVIOutputApp : public CWinApp 
{ 
public: 
	bool ShowOptionsDialog(bool allow_rgb, bool allow_pcm); 
	bool CompileConfigure(compStdParms *stdParms, compDoCompileInfo *compileInfo, LPBITMAPINFOHEADER lpbih); 
	int QueryOutputFormat(compOutputRec *outputRec); 
	int GetAudioIndFormat(compStdParms *stdParms, compAudioInfoRec *audioInfoRec, int idx); 
	int GetIndFormat(compFileInfoRec *fileInfoRec, int idx); 
  int GetFilePrefs(compStdParms *stdParms, compGetFilePrefsRec *fileInfoRec); 
  int DoCompile(compStdParms *stdParms, compDoCompileInfo *compileInfo); 
 
	int StartUp(compInfoRec *infoRec); 
  int ShutDown(); 
	COpenDMLAVIOutputApp(); 
 
// Overrides 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(COpenDMLAVIOutputApp) 
	//}}AFX_VIRTUAL 
 
	//{{AFX_MSG(COpenDMLAVIOutputApp) 
		// NOTE - the ClassWizard will add and remove member functions here. 
		//    DO NOT EDIT what you see in these blocks of generated code ! 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
private: 
	bool PrepareInputFrameFormat(LPBITMAPINFOHEADER lpbih, long frame_format, int width, int height); 
	bool InitAVIStreams(AVIOutputFile *pAVIFile, compStdParms *stdParms, 
											compDoCompileInfo *compileInfo, LPBITMAPINFOHEADER lpbih, 
											VideoSequenceCompressor *video_comp); 
  long GetInputSettings(compStdParms *stdParms, long setting); 
  void From32to24(PBYTE in, PBYTE out, long inSize); 
 
	void AppendExtension(char *outfilename); 
	bool FileExists(const char *outfilename); 
 
	VideoCodecEnumerator		m_VidEnum; 
	AudioCodecEnumerator		m_AudEnum; 
 
  CStateManager           m_oStateManager; 
}; 
 
 
///////////////////////////////////////////////////////////////////////////// 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_OPENDMLAVIOUTPUT_H__02F95787_DF6E_4FDD_81EB_BA7558CEDFDD__INCLUDED_)