DXVA_DeinterlaceBlt 结构 (dxva.h)

VMR 将DXVA_DeinterlaceBlt结构发送到加速器,以指定位块传输的去交错或帧速率转换参数。

语法

typedef struct _DXVA_DeinterlaceBlt {
  DWORD            Size;
  DWORD            Reserved;
  REFERENCE_TIME   rtTarget;
  RECT             DstRect;
  RECT             SrcRect;
  DWORD            NumSourceSurfaces;
  FLOAT            Alpha;
  DXVA_VideoSample Source[MAX_DEINTERLACE_SURFACES];
} DXVA_DeinterlaceBlt;

成员

Size

指定此结构的大小(以字节为单位)。

Reserved

rtTarget

标识输出帧在输入帧序列中的位置。 如果仅执行去交错,则目标时间应与 DXVA_VideoSample 结构中定义的引用样本的开始显示时间或开始显示时间和结束显示时间之间的中点一致。 有关详细信息,请参阅“备注”。

如果请求帧速率转换, rtTarget 时间可以不同于参考样本的任何 rtStart 时间。

DstRect

指定描述目标图面上矩形的左上角和右下点的 RECT 结构。 这些点定义应进行位块传输的区域及其在目标图面上的位置。

SrcRect

指定一个 RECT 结构,该结构描述源图面上矩形的左上角和右下角点。 这些点定义位块传输的源数据区域及其在源图面上的位置。

NumSourceSurfaces

指定在 Source 数组中传递的有效图面数。

Alpha

指定输出图像写入目标图面时其透明度。 值为 0.0F 表示透明。 值为 1.0F 表示不透明。

Source[MAX_DEINTERLACE_SURFACES]

DXVA_VideoSample 结构的数组,这些结构指定此去交错或帧速率转换操作所需的参考输入样本。

注解

根据 DXVA_VideoSample 结构中的定义,从示例中的一个字段创建单个帧时, rtTarget 应为该字段的开始显示时间。 如果一个示例中有两个字段,并且想要同时取消交错,则将调用 两次 DeinterlaceBlt 。 首次调用 DeinterlaceBlt 时, rtTarget 将是开始显示时间。 第二次调用 DeinterlaceBlt 时, rtTarget 将是开始显示时间和结束显示时间之间的中点。 换句话说,对于第一次调用, rtTarget = rtStart。 对于第二次调用, rtTarget = (rtStart + rtEnd) / 2。

要求

要求
Header dxva.h (包括 Dxva.h)

另请参阅

DXVA_DeinterlaceCaps

DXVA_VideoSample

DeinterlaceBlt