IVMRDeinterlaceControl::SetDeinterlaceMode 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

SetDeinterlaceMode 方法为指定的视频流设置去隔行模式。

语法

HRESULT SetDeinterlaceMode(
  [in] DWORD  dwStreamID,
  [in] LPGUID lpDeinterlaceMode
);

参数

[in] dwStreamID

要设置的视频流的索引。 若要设置所有流,请使用值0xFFFFFFFF。

[in] lpDeinterlaceMode

指向指定去隔行模式的 GUID 的指针。 若要关闭反交错,请使用 值GUID_NULL。

返回值

返回 HRESULT 值。 可能的值如下所示:

返回代码 说明
E_INVALIDARG
流号无效。
E_POINTER
NULL 指针参数。
S_OK
成功。
VFW_E_VMR_NOT_IN_MIXER_MODE
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

另请参阅

错误和成功代码

IVMRDeinterlaceControl 接口

IVMRDeinterlaceControl::GetDeinterlaceMode

使用视频混合呈现器