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 "VideoCodecVideoCodec.h"
  11. #include "DirectDrawDirectDraw.h"
  12. #include <list>
  13. using namespace std;
  14. typedef list< char * >PTR_LIST;
  15. /////////////////////////////////////////////////////////////////////////////
  16. // CVideoUSB window
  17. class CVideoUSB : public CWnd
  18. {
  19. public:
  20.          CVideoUSB( );
  21. virtual ~CVideoUSB( );
  22.     //初始化摄像头
  23. bool     Init( HWND hWnd , void ( * OnCapture )( void * pContext , char * buffer , int size , bool m_bHeader ) , void * pContext );
  24.     //获得视频头信息
  25. bool     GetHeader( char ** header , int * size );
  26.     //开始预览
  27. bool     StartPreview( int fps = 15 );
  28.     //停止预览
  29. void     StopPreview( void );
  30.     //开始捕捉
  31. bool     StartCapture( void );
  32.     //停止捕捉
  33. void     StopCapture( void );
  34. //初始化显示
  35. virtual bool InitDraw( HWND hWnd , char * buffer , int size );
  36.     //显示单帧图像
  37. virtual bool Draw( char * buffer , int size );
  38.     //释放显示
  39. virtual void ReleaseDraw( void );
  40. protected:
  41. static LRESULT CALLBACK OnVideo( HWND hWnd , VIDEOHDR * lpVHdr );
  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
  48. DECLARE_MESSAGE_MAP( )
  49. private:
  50. BITMAPINFOHEADER header;
  51. CVideoCodec codec;
  52. PTR_LIST   buffer_list;
  53. void ( * OnCapture )( void * pContext  , char * buffer , int size , bool m_bHeader ) ;
  54. void * pContext;
  55. CDirectDraw ddraw;
  56. bool        m_bPreview;
  57. bool        m_bCapture;
  58. };
  59. /////////////////////////////////////////////////////////////////////////////
  60. //{{AFX_INSERT_LOCATION}}
  61. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  62. #endif // !defined(AFX_VIDEOUSB_H__6F061C73_9101_4E4F_8166_60487BAA5B7A__INCLUDED_)