CFilterGraph.h
上传用户:hhs829
上传日期:2022-06-17
资源大小:586k
文件大小:2k
源码类别:

DirextX编程

开发平台:

Visual C++

  1. // CFilterGraph.h: interface for the CFilterGraph class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_FILTERGRAPH_H__19903DB4_110C_4DC9_8A9C_A839009CAC29__INCLUDED_)
  5. #define AFX_FILTERGRAPH_H__19903DB4_110C_4DC9_8A9C_A839009CAC29__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "MemFilter.h"
  10. class CDataAdmin;
  11. // Filter graph control in this application
  12. class CFilterGraph  
  13. {
  14. public:
  15. // graph builder interface
  16. IGraphBuilder   *m_pGB;
  17. // media control interface
  18. IMediaControl   *m_pMC;
  19. // video window interface
  20. IVideoWindow    *m_pVW;
  21. // media event interface
  22. IMediaEventEx   *m_pME;
  23. // media seeking interface
  24. IMediaSeeking   *m_pMS;
  25. // basic audio interface
  26. IBasicAudio     *m_pBA;
  27. // Filter running flag
  28. bool             m_bRun;
  29. // Filter init flag
  30. bool             m_bInit;
  31. CDataAdmin *     m_pDataList;
  32. HWND             m_hOwner;
  33. // Memory stream
  34. CMemStream    *m_pSourceStream;
  35. // source filter
  36. CMemReader    *m_pSourceReader;
  37. protected:
  38. int   m_nLeft;
  39. int   m_nTop;
  40. int   m_nWidth;
  41. int   m_nHeight;
  42. DWORD m_dwGraphRegister;
  43. public:
  44. CFilterGraph(CDataAdmin *inBuffer);
  45. virtual ~CFilterGraph();
  46. public:
  47. bool IsInit(void);
  48. bool IsRunning(void);
  49. void SetVideoWndOwner(HWND inWnd);
  50. void AdjustLength(LONGLONG inAdd);
  51. bool StartGraph(void);
  52. bool BuildGraph(void);
  53. void SetWindowPosition(int nLeft, int nTop, int nWidth, int nHeight);
  54. void ReleaseGraph(void);
  55. bool ResetGraph(void); // Re-build filter graph
  56. // Filter graph view tools
  57. HRESULT AddGraphToRot(IUnknown *pUnkGraph, DWORD *pdwRegister);
  58. void RemoveGraphFromRot(DWORD pdwRegister);
  59. static UINT WaitingThrd(void * pParam);
  60. };
  61. #endif // !defined(AFX_FILTERGRAPH_H__19903DB4_110C_4DC9_8A9C_A839009CAC29__INCLUDED_)