与运动补偿设备驱动程序的操作对应关系

本部分包含 DirectX VA 接口运动补偿设备驱动程序端的说明。 (参考:Windows 2000 DDK - 图形驱动程序 - 设计指南 - 3.0 DirectDraw DDI - 3.12 运动补偿。 有关粗体Windows结构的文档,请参阅 DDK )

以下项引用通过 DD _ MOTIONCOMPCALLBACKS 结构访问的条目:

  1. 在相关处理开始时,设备驱动程序的 DdMoCompCreate 用于通知驱动程序软件解码器将开始使用视频加速对象。
  2. IAMVideoAccelerator::GetVideoAcceleratorGUID 接收的 GUID源自设备驱动程序 的 DdMoCompGetGUID。
  3. 调用下游输入引脚的 IAMVideoAccelerator::GetUncompFormatsSupported 会从设备驱动程序的 DdMoCompGetFormats 返回数据。
  4. 来自解码器的 _ IAMVideoAcceleratorNotify::GetCreateVideoAcceleratorData 的 DXVA ConnectMode 数据结构传递给设备驱动程序的 DdMoCompCreate
  5. IAMVideoAccelerator::GetCompBufferInfo 返回的数据源自设备驱动程序的 DdMoCompGetBuffInfo
  6. 使用 IAMVideoAccelerator::Execute 发送的缓冲区由设备驱动程序 的 DdMoCompRender 接收
  7. 使用 IAMVideoAccelerator::QueryRenderStatus 调用设备驱动程序的 DdMoCompQueryStatus。 主机解码器将 _ DdMoCompQueryStatus 中的 DDERR WASSTILLDRAWING 返回代码视为 _ IAMVideoAccelerator::QueryRenderStatus 的 E PENDING 返回代码。
  8. 发送到 IAMVideoAccelerator::BeginFrame 的数据由设备驱动程序的 DdMoCompBeginFrame 接收。 DdMoCompBeginFrame 需要 E PENDING 的返回代码,以便主机解码器在响应 _ _ IAMVideoAccelerator::BeginFrame 时看到 E PENDING。
  9. 发送到 IAMVideoAccelerator::EndFrame 的数据由设备驱动程序的 DdMoCompEndFrame 接收
  10. 在相关处理结束时,设备驱动程序的 DdMoCompDestroy 用于通知驱动程序当前视频加速对象将不再使用,以便驱动程序可以执行任何必要的清理。