VideoUSB.h
上传用户:popouu88
上传日期:2013-02-11
资源大小:2894k
文件大小:2k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. #if !defined(AFX_VIDEOUSB_H__6F061C73_9101_4E4F_8166_60487BAA5B7A__INCLUDED_)
  2. #define AFX_VIDEOUSB_H__6F061C73_9101_4E4F_8166_60487BAA5B7A__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. // VideoUSB.h : header file
  7. //
  8. #pragma warning(disable:4786)
  9. #include "vfw.h"
  10. #include "AVI.h"
  11. #include "VideoCodecVideoCodec.h"
  12. #include "DirectDrawDirectDraw.h"
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CVideoUSB window
  15. class CVideoUSB : public CWnd
  16. {
  17. public:
  18.          CVideoUSB( );
  19. virtual ~CVideoUSB( );
  20.     //初始化摄像头
  21. bool     Init( HWND hWnd , void ( * OnCapture )( void * pContext , char * buffer , int size , bool m_bHeader ) , void * pContext );
  22.     //获得视频头信息
  23. bool     GetHeader( char ** header , int * size );
  24.     //开始预览
  25. bool     StartPreview( int fps = 15 );
  26.     //停止预览
  27. void     StopPreview( void );
  28.     //开始捕捉
  29. bool     StartCapture( void );
  30.     //停止捕捉
  31. void     StopCapture( void );
  32. //初始化显示
  33. virtual bool InitDraw( HWND hWnd , char * buffer , int size );
  34.     //显示单帧图像
  35. virtual bool Draw( char * buffer , int size );
  36.     //释放显示
  37. virtual void ReleaseDraw( void );
  38. protected:
  39.     //本地显示
  40. static LRESULT CALLBACK OnVideo( HWND hWnd , VIDEOHDR * lpVHdr );
  41.     //网络发送
  42. static UINT    OnSend( void * wParam );
  43. //{{AFX_VIRTUAL(CVideoUSB)
  44. //}}AFX_VIRTUAL
  45. //{{AFX_MSG(CVideoUSB)
  46. afx_msg void OnClose();
  47. afx_msg void OnTimer(UINT nIDEvent);
  48. afx_msg UINT OnNcHitTest(CPoint point);
  49. //}}AFX_MSG
  50. DECLARE_MESSAGE_MAP( )
  51. private:
  52. BITMAPINFOHEADER header;
  53. CVideoCodec codec;
  54. char       * send_buffer;
  55. void ( * OnCapture )( void * pContext  , char * buffer , int size , bool m_bHeader ) ;
  56. void * pContext;
  57. CDirectDraw ddraw;
  58. bool        m_bPreview;
  59. bool        m_bCapture;
  60. CAVI        avi;
  61. bool        m_bRecord;
  62. CString     recordDir;
  63. };
  64. /////////////////////////////////////////////////////////////////////////////
  65. //{{AFX_INSERT_LOCATION}}
  66. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  67. #endif // !defined(AFX_VIDEOUSB_H__6F061C73_9101_4E4F_8166_60487BAA5B7A__INCLUDED_)