DirectShow 中的 DVD 支持功能

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

DVD 导航器筛选器的功能通过两个接口公开:IDvdControl2(为 DVD 导航器提供“set”方法)和 IDvdInfo2(提供“get”方法)。

DVD 导航器支持以下功能:

  • 卡拉OK 支持:可以使用 DVD 导航器编写 DVD-卡拉OK 应用程序。 (这需要兼容的 decoder.)
  • 简化了对 DVD 文本信息字符串的访问:DVD 导航器可分析这些字符串,并使应用程序能够轻松枚举、识别和检索它们。
  • 通过 IBasicAudio 进行音量控制
  • 支持在发出“停止”命令时自定义 DVD 导航器的行为:应用程序可以指示 DVD 导航器在重新启动筛选器图时从当前位置恢复,或者从光盘的开头开始播放。
  • 数字影院系统 (DTS) 和索尼动态数字声音 (SDDS) 音频支持。 DTS 和 SDDS 音频流由 DVD 导航器识别并传递到音频解码器。 (需要第三方 DTS 兼容或 SDDS 兼容的解码器才能解码和播放 audio.)
  • 改进了对家长级别更改的支持:DVD 导航器使应用程序能够接受、拒绝或忽略光盘中的家长级别更改命令。
  • 用于管理 DVD 导航器和同步命令状态的高级选项
  • 支持帧步进、帧精确查找和反向播放。 这些功能需要支持这些功能的视频解码器。
  • 在游戏中保存当前位置并随时返回该位置的功能。
  • 简化了对非顺序 PGC 游戏中时间事件的支持:对于非顺序 PGC 游戏,DVD 导航器将原始时间代码信息中继到应用程序。
  • 时间代码信息。 可以使用 DVD_HMSF_TIMECODE 结构代替二进制编码的十进制 (BCD) 格式。 DVD_HMSF_TIMECODE 包含易于访问的小时、分钟、秒和帧的成员,并且可以强制转换为 ULONG 或从 ULONG 进行强制转换。
  • 控制筛选器图是否在搜寻操作后刷新的功能:在任何给定时间,图形缓冲区最多可以包含几秒钟的视频。 可以指示图形在搜寻后完成播放缓冲的视频,或立即在新位置开始播放。
  • 在常规参数寄存器中设置值的功能:一项高级功能,适用于熟悉 DVD 规范且希望实现高级功能的用户。
  • 能够生成所有实际用途唯一的数字光盘标识符

编写 DVD 应用程序需要什么背景?

所有应用程序开发人员都应基本熟悉 DVD 技术提供的功能,例如家长管理级别、多个音频和子图片流以及角度块。 DVD 基础知识 简要描述了其中每个功能;第三方发布中提供了更完整的说明。 除非打算实现附件 J 命令集以外的高级功能,否则无需参考 DVD 规范。

使用 DirectShow 的 C/C++ 开发人员应熟悉 COM 客户端编程技术,例如创建 COM 对象以及获取和释放 COM 接口指针。 你可能还需要具备筛选图操作的一般知识,因为可能需要直接访问和操作图形。

DVD 应用程序