IOverlay 接口 (strmif.h)
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
接口 IOverlay
提供信息,以便筛选器可以直接写入视频内存,同时将视频置于正确的窗口位置。 它在视频呈现器的输入插针上实现,并通过调用该筛选器的 IOverlayNotify 方法通知视频窗口的更改,与上游筛选器通信, (通常是视频解压缩器) 。
此接口与 DirectDraw® 覆盖功能没有关系。 Microsoft 视频呈现器使用 DirectDraw 覆盖(如果可用)通过 IMemInputPin 接口绘制接收的数据。 此接口用于代替 IMemInputPin,旨在为绕过呈现器的绘图功能但需要其他显示属性通知的任何上游筛选器提供通知支持。
有关 和 IOverlayNotify 接口如何协同工作的详细信息, IOverlay
请参阅 IOverlayNotify 参考页。
有关呈现窗口更改的异步通知的详细信息,请参阅 IOverlayNotify2 接口。
此接口在 Microsoft® DirectShow® 视频呈现器筛选器上实现。 如果需要,还可以在替换视频呈现器筛选器上实现它。 如果这样做,请实现此接口,以便直接写入帧缓冲区或尝试放置覆盖层的筛选器知道在何处显示其视频。 若要实现此接口,呈现器必须准备好使用 IOverlayNotify 接口或执行绘图的筛选器的 IOverlayNotify2 接口上的方法,并通知视频属性更改。
DirectShow 中基于窗口的呈现器支持 IMemInputPin 和 IOverlay 接口。 这两个接口是互斥的。 筛选器选择通过在连接期间提供子类型为 MEDIASUBTYPE_Overlay 的媒体类型来使用 IOverlay 传输。 连接后,它将能够成功 IOverlay
获取并使用接口。 如果它与任何其他视频格式 ((如MEDIASUBTYPE_RGB8) )连接,则尝试通过 IOverlay
返回VFW_E_NOT_OVERLAY_CONNECTION。
从上游筛选器对此函数使用方法,该筛选器必须控制视频覆盖属性,并打算处理视频数据本身的显示。 这通常由与视频硬件建立备用连接的硬件视频解码器使用。
继承
IOverlay 接口继承自 IUnknown 接口。 IOverlay 还具有以下类型的成员:
方法
IOverlay 接口具有以下方法。
IOverlay::Advise 建议方法为 dwInterests 参数指定的覆盖事件设置建议链接。 |
IOverlay::GetClipList GetClipList 方法检索剪辑列表。 |
IOverlay::GetColorKey GetColorKey 方法检索用于色度键的当前颜色键。 |
IOverlay::GetDefaultColorKey GetDefaultColorKey 方法检索用于色度键覆盖的默认颜色键。 |
IOverlay::GetPalette GetPalette 方法检索当前系统调色板。 |
IOverlay::GetVideoPosition GetVideoPosition 方法检索当前视频源和目标矩形。 |
IOverlay::GetWindowHandle GetWindowHandle 方法检索当前窗口句柄。 |
IOverlay::SetColorKey SetColorKey 方法更改颜色键。 |
IOverlay::SetPalette SetPalette 方法设置调色板。 |
IOverlay::Unadvise Unadvise 方法终止使用 IOverlayNotify 接口建立的建议链接。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |