DXVA_DeinterlaceContainerDeviceClass::D einterlaceQueryAvailableModes 方法

示例 DeinterlaceQueryAvailableModes 函数查询特定输入视频格式的可用反插入模式或帧速率转换模式。

语法

HRESULT DeinterlaceQueryAvailableModes(
  [in]      LPDXVA_VideoDesc lpVideoDescription,
  [in, out] LPDWORD          lpdwNumModesSupported,
  [in, out] LPGUID           pGuidsDeinterlaceModes
);

参数

lpVideoDescription [in] 提供指向DXVA_VideoDesc结构的指针,该结构包含要执行的反交错或帧速率转换的视频流的说明。

lpdwNumModesSupported [in, out] 接收指向 pGuidsDeinterlaceModes 数组中返回的 deinterlace 或帧速率转换模式数的指针。

pGuidsDeinterlaceModes [in, out] 接收指向 GUID 数组的指针,这些 GUID 表示驱动程序支持的反交错模式或帧速率转换模式。

返回值

如果成功,则返回零(S_OK或DD_OK);否则,返回错误代码。 有关 错误代码的完整列表,请参阅 ddraw.h

注解

lpVideoDescription 参数传递给驱动程序,以便驱动程序能够支持源视频的分辨率和格式。 例如,驱动程序可能能够执行 480i 内容的三场自适应反交错,但它可能只能执行 bob 1080i 内容。 有关详细信息,请参阅 用于反交错和帧速率转换的视频内容。

pGuidsDeinterlaceModes 参数返回的 GUID 应按降序返回(即,最高质量模式应占用返回的 GUID 数组的第一个元素)。

所有驱动程序都应能够使用现有的 位块传输 (blt)硬件支持 bob 模式。 有关模式的详细信息,请参阅 反交错模式帧速率转换模式 主题。

驱动程序返回它支持的 GUID(模式),以响应来自 VMR 的请求。 驱动程序响应对其 DdMoCompRender 回调函数的调用。 驱动程序通过 DdMoCompRender 点的 lpRenderData 参数DD_RENDERMOCOMPDATA结构的 lpOutputData 成员返回 GUID。 lpOutputData 成员指向DXVA_DeinterlaceQueryAvailableModes结构,该结构包含 Guids 成员中的 GUID 数组。

将 RenderMoComp 映射到 DeinterlaceQueryAvailableModes

示例 DeinterlaceQueryAvailableModes 函数直接映射到对 DD_MOTIONCOMPCALLBACKS 结构的 RenderMoComp 成员的调用 RenderMoComp 成员指向引用DD_RENDERMOCOMPDATA结构的显示驱动程序提供的函数。

调用 RenderMoComp 回调,而无需先调用显示驱动程序提供的 BeginMoCompFrameEndMoCompFrame 函数。

DD_RENDERMOCOMPDATA结构如下填充。

成员

dwNumBuffers

Zero。

lpBufferInfo

NULL。

dwFunction

DXVA_DeinterlaceQueryAvailableModesFnCode常量(在 dxva.h定义)。

lpInputData

指向已填充 DXVA_VideoDesc 结构的指针。

lpOutputData

指向 DXVA_DeinterlaceQueryAvailableModes 结构的指针。

在 VMR 确定可用于特定视频格式的反交错模式或帧转换模式后,VMR 会查询驱动程序以获取有关特定反交行模式的输入要求以及该模式可能支持的任何其他视频处理的详细信息。 驱动程序从对其 DeinterlaceQueryModeCaps 函数的调用中返回此信息。

另请参阅

DD_MOTIONCOMPCALLBACKS

DD_RENDERMOCOMPDATA

DeinterlaceQueryModeCaps

DXVA_VideoDesc

DXVA_SampleFormat