DirectShow 中的 DVD 支持功能
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media 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 接口指针。 你可能还需要具备筛选图操作的一般知识,因为可能需要直接访问和操作图形。
相关主题