CConvertAVI.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #ifndef __CONVERT_TO_AVI__
  2. #define __CONVERT_TO_AVI__
  3. #include <mmsystem.h>
  4. #include "AVIFMt.H"
  5. #include "WRIFF.H"
  6. #define WRITE_REC_LIST // do write REC list?
  7. #define WRITE_INDEX // do write index?
  8. #define ALIGN_VIDEO_FRAMES // do align video frames?
  9. #define MAX_FILE_LEN 2048000000 // the AVI file now can't exceed 2G
  10. #define PADDING_GRANULARITY 2048 // padding size
  11. typedef struct
  12. {
  13. DWORD dwFrameWidth;
  14. DWORD dwFrameHeight;
  15. DWORD dwFrameSize;
  16. DWORD dwFPS;
  17. DWORD dwTotalFrames;
  18. }AVI_CONVERT_PARA;
  19. class CConvertAVI
  20. {
  21. public:
  22. CConvertAVI();
  23. virtual ~CConvertAVI();
  24. public:
  25. DWORD m_nCurFrameNum;
  26. DWORD m_nMaxFrames;
  27. BOOL m_bWriteHdr;
  28. riffFile *m_pOutAVI;
  29. AVI_CONVERT_PARA m_strAVIPara;
  30. #ifdef WRITE_INDEX
  31. AVIINDEXENTRY* m_pIndexes;
  32. DWORD m_nMoviOffset;
  33. #endif // WRITE_INDEX
  34. DWORD m_nFirstFrameOffset;
  35. public:
  36. BOOL WriteHeaders();
  37. BOOL AddFileToAVI(char* pBuf, DWORD nSize);
  38. BOOL CloseWriffFiles();
  39. BOOL InitResource(AVI_CONVERT_PARA* pParam, CString strAVIPath);
  40. void ReleaseResource();
  41. BOOL IsWriteAVIHdr();
  42. BOOL IsExceedMaxFileLen();
  43. DWORD GetCurFrameNum();
  44. void SetFPS(DWORD nFps);
  45. };
  46. #endif