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

DirextX编程

开发平台:

Visual C++

  1. //
  2. // ITitleOverlay.h
  3. // Desc: DirectShow sample code - custom interface
  4. //
  5. #ifndef __H_ITitleOverlay__
  6. #define __H_ITitleOverlay__
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10. //----------------------------------------------------------------------------
  11. // ITitleOverlay's GUID
  12. // {5E5B3386-6F9F-4a47-AC8B-7A302138D7FF}
  13. DEFINE_GUID(IID_ITitleOverlay, 
  14. 0x5e5b3386, 0x6f9f, 0x4a47, 0xac, 0x8b, 0x7a, 0x30, 0x21, 0x38, 0xd7, 0xff);
  15. //----------------------------------------------------------------------------
  16. //----------------------------------------------------------------------------
  17. // ITitleOverlay
  18. //----------------------------------------------------------------------------
  19. DECLARE_INTERFACE_(ITitleOverlay, IUnknown)
  20. {
  21. // 设置Filter进行叠加的类型,如果需要改变类型,这个函数必须第一个设置,
  22. // 调用这个函数成功后,才能调用其他的函数进行参数设置。
  23. // 可以设置的叠加类型参见枚举类型OVERLAY_TYPE的定义。
  24. STDMETHOD(put_TitleOverlayType) (THIS_
  25. long inOverlayType   
  26. ) PURE;
  27. STDMETHOD(get_TitleOverlayType) (THIS_
  28. long * outOverlayType     
  29. ) PURE;
  30. // 设置像素转换的方式(可选),默认使用直接替换方式。
  31. // 当字符颜色与视频背景颜色接近时,使用翻转叠加方式比较合适。
  32. STDMETHOD(put_TitleOverlayStyle) (THIS_
  33. int inUsingCover   
  34. ) PURE;
  35. STDMETHOD(get_TitleOverlayStyle) (THIS_
  36. int * outUsingCover     
  37. ) PURE;
  38. // 设置欲叠加字符的内容
  39. STDMETHOD(put_Title) (THIS_
  40. const char * inTitle, int inLength    
  41. ) PURE;
  42. STDMETHOD(get_Title) (THIS_
  43. char * outBuffer, int * outLength     
  44. ) PURE;
  45. // 设置欲叠加字符的颜色,分别为R, G, B分量值
  46. STDMETHOD(put_TitleColor) (THIS_ 
  47. BYTE inR, BYTE inG, BYTE inB  
  48. ) PURE;
  49. STDMETHOD(get_TitleColor) (THIS_
  50. BYTE * outR, BYTE * outG, BYTE * outB    
  51. ) PURE;
  52. // 设置欲叠加字符的开始坐标
  53. STDMETHOD(put_TitleStartPosition) (THIS_
  54. POINT inStartPos
  55. ) PURE;
  56. STDMETHOD(get_TitleStartPosition) (THIS_
  57. POINT * outStartPos  
  58. ) PURE;
  59. // 设置欲叠加字符的字体,参数采用Windows GDI的LOGFONT数据结构
  60. STDMETHOD(put_TitleFont) (THIS_  
  61. LOGFONT inFont
  62. ) PURE;
  63. STDMETHOD(get_TitleFont) (THIS_
  64. LOGFONT * outFont  
  65. ) PURE;
  66. // 设置欲叠加字符的生存周期,参数一个是开始时间,一个是结束时间,以秒为单位
  67. // 如果inEnd值为-1,表示一直迭加到视频结束
  68. STDMETHOD(put_TitleDuration) (THIS_  
  69. double inStart, double inEnd
  70. ) PURE;
  71. STDMETHOD(get_TitleDuration) (THIS_
  72. double * outStart, double * outEnd
  73. ) PURE;
  74. };
  75. //----------------------------------------------------------------------------
  76. #ifdef __cplusplus
  77. }
  78. #endif
  79. #endif // __H_ITitleOverlay__