IVMRDeinterlaceControl::GetNumberOfDeinterlaceModes 方法 (strmif.h)

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

GetNumberOfDeinterlaceModes 方法检索 VMR 可用于指定视频格式的反隔行模式。

语法

HRESULT GetNumberOfDeinterlaceModes(
  [in]      VMRVideoDesc *lpVideoDescription,
  [in, out] LPDWORD      lpdwNumDeinterlaceModes,
  [out]     LPGUID       lpDeinterlaceModes
);

参数

[in] lpVideoDescription

指向描述视频的 VMRVideoDesc 结构的指针。

[in, out] lpdwNumDeinterlaceModes

指向 DWORD 值的指针。 输入时,此值指定 lpDeinterlaceModes 中给定的数组的大小。 在输出时,它接收方法复制到数组中的 GUID 数。

[out] lpDeinterlaceModes

调用方分配的数组的地址。 方法使用 GUID 值填充数组。 若要确定所需的数组的大小,请将此参数设置为 NULL 并检查 lpdwNumDeinterlaceModes 中返回的值。

返回值

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

返回代码 说明
E_POINTER
NULL 指针参数。
S_OK
成功
VFW_E_VMR_NOT_IN_MIXER_MODE
VMR 未处于混音器模式。
VFW_E_DDRAW_CAPS_NOT_SUITABLE
视频卡不支持硬件反交错。

备注

此方法返回 GUID 数组,其中每个 GUID 表示图形设备驱动程序在硬件中支持的去隔行模式。 数组按质量排序,因此第一个条目表示最佳质量,第二个条目表示下一个最佳质量,依此类推。

需要所有驱动程序才能支持以下模式:

GUID 说明
DXVA_DeinterlaceBobDevice Bob 模式
 

驱动程序可以支持其他模式,并应定义自己的 GUID 来标识它们。 对于每个返回的模式,调用 IVMRDeinterlaceControl::GetDeinterlaceModeCaps 方法以获取有关该模式的信息。

要求

   
最低受支持的客户端 具有 SP1 的 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

错误和成功代码

IVMRDeinterlaceControl 接口

使用视频混合呈现器