[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
SetDeinterlaceMode 方法为指定的视频流设置去隔行模式。
语法
HRESULT SetDeinterlaceMode(
  [in] DWORD  dwStreamID,
  [in] LPGUID lpDeinterlaceMode
);
参数
[in] dwStreamID
要设置的视频流的索引。 若要设置所有流,请使用值0xFFFFFFFF。
[in] lpDeinterlaceMode
指向指定去隔行模式的 GUID 的指针。 若要关闭反交错,请使用 值GUID_NULL。
返回值
返回 HRESULT 值。 可能的值如下所示:
| 返回代码 | 说明 | 
|---|---|
  | 
流号无效。 | 
  | 
NULL 指针参数。 | 
  | 
成功。 | 
  | 
VMR 未处于混音器模式。 | 
备注
如果应用程序未指定模式,则 VMR 默认为驱动程序报告的第一种模式。 在任一情况下,如果 VMR 无法使用首选模式,它将回退到 IVMRDeinterlaceControl::SetDeinterlacePrefs 方法中指定的另一种模式。
SetDeinterlaceMode 方法仅适用于与 VMR 建立的新连接。 某些去隔行模式需要其他参考示例;确切数字取决于模式。 VMR 为这些附加示例分配图面。 客户端必须在分配图面之前设置去隔行模式。 在发生以下任一情况后,将进行 Surface 分配:
- 固定连接,包括动态重新连接
 - 动态格式更改 (上游筛选器调用 IPin::ReceiveConnection 以指定新格式)
 - 解决方法更改
 - 监视更改
 
要求
| 最低受支持的客户端 | 具有 SP1 的 Windows XP [仅限桌面应用] | 
| 最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] | 
| 目标平台 | Windows | 
| 标头 | strmif.h (包括 Dshow.h) | 
| Library | Strmiids.lib |