zxd
2023-09-14 d34256830982fb9ea822c1e9b874c3b7fa0a614d
提交 | 用户 | age
4b03ae 1 #ifndef _MV_AVI_H
Q 2 #define _MV_AVI_H
3
4 #ifdef MVGIGE_EXPORTS
5 #define MVGIGE_API __declspec(dllexport)
6 #else
7 #define MVGIGE_API __declspec(dllimport)
8 #endif
9
10 #include <mmreg.h>
11 #include <vfw.h>
12
13 #include "MVImage.h"
14
15 class MVGIGE_API MVAvi
16 {
17 public:
18     MVAvi();
19     ~MVAvi();
20
21     /*!
22      *  \brief 创建AVI文件
23      *  \param [in]    char * strFileName    文件名
24      *  \param [in]    double framesPerSecondPlayback    视频播放帧率fps
25      *  \retval  如果成功返回0
26      */
27     HRESULT Create(char *strFileName, double framesPerSecondPlayback);
28     
29     /*!
30      *  \brief 设置压缩参数
31      *  \param [in]    MVImage * pImage 图像指针
32      *  \param [in]    AVICOMPRESSOPTIONS * opts    压缩参数。可以为NULL
33      *  \param [in]    bool ShowDialog    是否显示压缩参数设置对话框
34      *  \param [in]    HWND hparent    如果显示压缩参数设置对话框,给出父窗口句柄。否则可以为NULL
35      *  \retval  如果成功返回0
36      */
37     HRESULT SetVideoCompression(MVImage *pImage, AVICOMPRESSOPTIONS *opts, bool ShowDialog, HWND hparent );
38     /*!
39      *  \brief 向AVI中添加新的图片
40      *  \param [in]    MVImage * pImage    图像指针
41      *  \retval 如果成功返回0
42      */
43     HRESULT AddFrame(MVImage *pImage);
44     /*!
45      *  \brief    关闭文件 
46      *  \retval 如果成功返回0
47      */
48     HRESULT Close();
49
50     /*!
51      *  \brief    获取已经写入AVI文件的图像帧数
52      *  \retval      返回已经写入AVI文件的帧数
53      */
54     unsigned int GetCountOfAddedImages();
55
56     /*!
57      *  \brief 获取已经写入AVI文件的图像字节数。
58      *  \retval  返回已经写入AVI文件的图像字节数。
59      */
60     unsigned int GetImageDataBytesWritten();
61 private:
62     HANDLE    m_hAvi;
63     unsigned    int m_nFrames;
64     unsigned    int m_nBytes;
65 };
66
67 #endif
68