ITitleOverlay.h
上传用户:hhs829
上传日期:2022-06-17
资源大小:586k
文件大小:3k
- //
- // ITitleOverlay.h
- // Desc: DirectShow sample code - custom interface
- //
- #ifndef __H_ITitleOverlay__
- #define __H_ITitleOverlay__
- #ifdef __cplusplus
- extern "C" {
- #endif
- //----------------------------------------------------------------------------
- // ITitleOverlay's GUID
- // {5E5B3386-6F9F-4a47-AC8B-7A302138D7FF}
- DEFINE_GUID(IID_ITitleOverlay,
- 0x5e5b3386, 0x6f9f, 0x4a47, 0xac, 0x8b, 0x7a, 0x30, 0x21, 0x38, 0xd7, 0xff);
- //----------------------------------------------------------------------------
- //----------------------------------------------------------------------------
- // ITitleOverlay
- //----------------------------------------------------------------------------
- DECLARE_INTERFACE_(ITitleOverlay, IUnknown)
- {
- // 设置Filter进行叠加的类型,如果需要改变类型,这个函数必须第一个设置,
- // 调用这个函数成功后,才能调用其他的函数进行参数设置。
- // 可以设置的叠加类型参见枚举类型OVERLAY_TYPE的定义。
- STDMETHOD(put_TitleOverlayType) (THIS_
- long inOverlayType
- ) PURE;
- STDMETHOD(get_TitleOverlayType) (THIS_
- long * outOverlayType
- ) PURE;
- // 设置像素转换的方式(可选),默认使用直接替换方式。
- // 当字符颜色与视频背景颜色接近时,使用翻转叠加方式比较合适。
- STDMETHOD(put_TitleOverlayStyle) (THIS_
- int inUsingCover
- ) PURE;
- STDMETHOD(get_TitleOverlayStyle) (THIS_
- int * outUsingCover
- ) PURE;
- // 设置欲叠加字符的内容
- STDMETHOD(put_Title) (THIS_
- const char * inTitle, int inLength
- ) PURE;
- STDMETHOD(get_Title) (THIS_
- char * outBuffer, int * outLength
- ) PURE;
- // 设置欲叠加字符的颜色,分别为R, G, B分量值
- STDMETHOD(put_TitleColor) (THIS_
- BYTE inR, BYTE inG, BYTE inB
- ) PURE;
- STDMETHOD(get_TitleColor) (THIS_
- BYTE * outR, BYTE * outG, BYTE * outB
- ) PURE;
- // 设置欲叠加字符的开始坐标
- STDMETHOD(put_TitleStartPosition) (THIS_
- POINT inStartPos
- ) PURE;
- STDMETHOD(get_TitleStartPosition) (THIS_
- POINT * outStartPos
- ) PURE;
- // 设置欲叠加字符的字体,参数采用Windows GDI的LOGFONT数据结构
- STDMETHOD(put_TitleFont) (THIS_
- LOGFONT inFont
- ) PURE;
- STDMETHOD(get_TitleFont) (THIS_
- LOGFONT * outFont
- ) PURE;
- // 设置欲叠加字符的生存周期,参数一个是开始时间,一个是结束时间,以秒为单位
- // 如果inEnd值为-1,表示一直迭加到视频结束
- STDMETHOD(put_TitleDuration) (THIS_
- double inStart, double inEnd
- ) PURE;
- STDMETHOD(get_TitleDuration) (THIS_
- double * outStart, double * outEnd
- ) PURE;
- };
- //----------------------------------------------------------------------------
- #ifdef __cplusplus
- }
- #endif
- #endif // __H_ITitleOverlay__