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

DirextX编程

开发平台:

Visual C++

  1. //
  2. // CFilterTitleOverlay.h
  3. //
  4. #ifndef __H_CFilterTitleOverlay__
  5. #define __H_CFilterTitleOverlay__
  6. #include "ITitleOverlay.h"
  7. #include "COverlayController.h"
  8. #include "OverlayDefs.h"
  9. class CFilterTitleOverlay : public CTransInPlaceFilter
  10.   , public ISpecifyPropertyPages
  11.   , public ITitleOverlay
  12. {
  13. private:
  14. OVERLAY_TYPE            mOverlayType;
  15. COverlayController *    mOverlayController;
  16. CCritSec                mITitleOverlaySync;
  17. BOOL                    mNeedEstimateFrameRate;
  18. private:
  19. CFilterTitleOverlay(TCHAR *tszName, LPUNKNOWN punk, HRESULT *phr);
  20. ~CFilterTitleOverlay();
  21. HRESULT SetInputVideoInfoToController(void);
  22. void ReleaseOverlayController(void);
  23. void SideEffectOverlayTypeChanged(void);
  24. public:
  25. static CUnknown * WINAPI CreateInstance(LPUNKNOWN punk, HRESULT *phr);
  26. DECLARE_IUNKNOWN;
  27. // Basic COM - used here to reveal our own interfaces
  28. STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void ** ppv);
  29. // check if you can support mtIn
  30.     virtual HRESULT CheckInputType(const CMediaType* mtIn); // PURE
  31. virtual HRESULT Transform(IMediaSample *pSample); // PURE
  32. // Delegating methods
  33. virtual HRESULT CompleteConnect(PIN_DIRECTION direction, IPin *pReceivePin);
  34. virtual HRESULT StartStreaming();
  35.     virtual HRESULT StopStreaming();
  36. // --- ISpecifyPropertyPages ---
  37. STDMETHODIMP GetPages(CAUUID *pPages);
  38. // --- ITitleOverlay methods ---
  39. STDMETHODIMP put_TitleOverlayType(long inOverlayType);
  40. STDMETHODIMP get_TitleOverlayType(long * outOverlayType);
  41. STDMETHODIMP put_TitleOverlayStyle(int inUsingCover);
  42. STDMETHODIMP get_TitleOverlayStyle(int * outUsingCover);
  43. STDMETHODIMP put_Title(const char * inTitle, int inLength);
  44. STDMETHODIMP get_Title(char * outBuffer, int * outLength);
  45. STDMETHODIMP put_TitleColor(BYTE inR, BYTE inG, BYTE inB);
  46. STDMETHODIMP get_TitleColor(BYTE * outR, BYTE * outG, BYTE * outB);
  47. STDMETHODIMP put_TitleStartPosition(POINT inStartPos);
  48. STDMETHODIMP get_TitleStartPosition(POINT * outStartPos);
  49. STDMETHODIMP put_TitleFont(LOGFONT inFont);
  50. STDMETHODIMP get_TitleFont(LOGFONT * outFont);
  51. STDMETHODIMP put_TitleDuration(double inStart, double inEnd);
  52. STDMETHODIMP get_TitleDuration(double * outStart, double * outEnd);
  53. };
  54. #endif // __H_CFilterTitleOverlay__