VideoCapture.h
上传用户:panstart
上传日期:2022-04-12
资源大小:199k
文件大小:2k
源码类别:

IP电话/视频会议

开发平台:

C++ Builder

  1. // VideoCapture.h: interface for the VideoCapture class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_VIDEOCAPTURE_H__5C825E61_611A_11D6_889B_000B2B0F84B6__INCLUDED_)
  5. #define AFX_VIDEOCAPTURE_H__5C825E61_611A_11D6_889B_000B2B0F84B6__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include<vfw.h>
  10. #include<afxmt.h>
  11. #include<afxole.h>
  12. /****************************   NOTE **************************/
  13. //  If the parameters below are changed then change following
  14. //  > cdata & cbuffer_size in VideoNetDlg.cpp
  15. //  > rgbdata & buffersize in VideoNetDlg.cpp
  16. //  > update CPARAMS structure before compression
  17. //  > computation of local_wnd_x para in OnInitDialog()
  18. //
  19. ////////////////////////////////////////////////////////////////
  20. #define QCIF_WIDTH  176
  21. #define QCIF_HEIGHT 144
  22. #define IMAGE_WIDTH       QCIF_WIDTH
  23. #define IMAGE_HEIGHT      QCIF_HEIGHT
  24.     
  25. class VideoCapture  
  26. {
  27. public:
  28. HWND m_capwnd;
  29. CStdioFile log;
  30. CAPDRIVERCAPS caps;
  31. CMutex protectframe;
  32. int avgaudiosize;
  33. BOOL isOver;
  34. CDialog *dlg;
  35. BITMAPINFOHEADER m_bmpheader;
  36. BITMAPINFO m_bmpinfo;
  37. VideoCapture();
  38. virtual ~VideoCapture();
  39. void SetDialog(CDialog *dlg);
  40. BOOL Initialize();
  41. BOOL  SetCapturePara();
  42. void Destroy();
  43. void GetDriverCaps();
  44. void SetAudioFormat();
  45. int AllocateMemory(PBITMAPINFO &bmpinfo);
  46. int getFormatSize(BITMAPINFO bmp);
  47.     int getImageSize(BITMAPINFO bmp);
  48. BOOL StartCapture();
  49. BOOL StopCapture();
  50. //Callback functions
  51.     //friend LRESULT CALLBACK OnCaptureError(HWND hwnd, int errid, LPSTR errtext);
  52.     friend LRESULT CALLBACK OnCaptureVideo(HWND hWnd, LPVIDEOHDR lpheader) ;
  53.     //friend LRESULT CALLBACK OnCaptureFrame(HWND hWnd, LPVIDEOHDR lpheader);
  54.     //friend LRESULT CALLBACK OnCaptureWave(HWND hWnd, LPWAVEHDR lpheader);
  55. };
  56. #endif // !defined(AFX_VIDEOCAPTURE_H__5C825E61_611A_11D6_889B_000B2B0F84B6__INCLUDED_)