MSDV 驱动程序中的 DVINFO 字段设置

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

本部分介绍 MSDV 驱动程序如何填充 DVINFO 结构。

结构 DVINFO 定义 MSDV 和其他筛选器之间的引脚连接的格式块。 默认情况下,从 DV 设备捕获时使用 DV 拆分器筛选器,在传输到设备时使用 DV 复用器筛选器。 但是,应用程序可能会提供自己的自定义筛选器,因此了解 MSDV 如何填充 DVINFO 格式块很有用。

结构 DVINFO 包含以下信息:

  • 两个音频辅助 (AAUX) 源包,用于第一个和第二个音频块。
  • 两个 AAUX 源代码管理包,用于第一个和第二个音频块。
  • 视频辅助 (VAUX) 源包。
  • VAUX 源代码管理包。

DV 流中的每个帧都包含 AAUX 和 VAUX 包。 但是, DVINFO 格式块是静态的,仅用于建立引脚连接。 MSDV 驱动程序连接时,它不会检查流中的任何 AAUX 或 VAUX 包。 相反,它根据 DV 设备的以下特征使用一组默认值:

  • 设备是支持使用者格式 (DVCR) 还是专业格式 (DVCPRO)
  • 信号类型
  • 格式是 NTSC 还是 PAL。 (如果设备不报告此信息,MSDV 默认为 NTSC 设置)

流式处理开始后,用户模式筛选器(如 DV 拆分器)负责检查每个 DV 帧的实际内容。 由于信息可能会因帧而变化,因此筛选器可能需要执行动态格式更改。 例如,如果音频速率发生更改,筛选器可能需要重新协商音频类型。

如果捕获类型 1 DV 文件,结构 DVINFO 将作为流格式写入文件, ('strf') 区块。 此数据直接取自 MSDV 提供的格式块。 如前所述,流的实际内容可能不同。 应用程序负责检查每个帧中的 AAUX 和 VAUX 包。

在以下主题中,可以找到列出 MSDV 使用的所有字段的表。

阅读这些表时,请参阅以下规范:

  • IEC 61834
  • SMPTE 314M
  • SMPTE 370

在每个表中,第一列提供字段代码,后跟括号 () 位数。 其余列提供字段值。 许多 AAUX 和 VAUX 字段与引脚连接无关,在这种情况下,MSDV 设置一个虚拟值。 每个表的底部列出了整个包的数值。

每个表后面的注释提供了有关所选字段的详细信息。 有关完整说明,请参阅规范。 此外,某些字段在 SMPTE 314M/SMPTE 370 中的含义与 IEC 61834 中的含义不同。

注意

目前,DirectShow 不支持 DVCPRO 格式。 为 DVCPRO 格式列出的值已定义以供将来使用。

 

DirectShow 中的数字视频

AVI 文件格式的 DV 数据

MSDV 驱动程序