对相机和视频捕获设备的支持不是作为 macOS 中的特殊 I/O Kit 类实现的(因此也不在 DriverKit 中),而是完全通过 Core Media I/O 框架在用户空间中实现。根据设备的类型,可能需要DriverKit组件。(例如 PCI/Thunderbolt,它不能直接从用户空间使用,或者 USB 设备,其中相机功能没有完全隔离到 USB 接口描述符)此 dext 将公开一个完全自定义的 API,然后可以从用户空间使用该 API基于 CoreMediaIO 的驱动程序。
从 macOS 13 (Ventura) 开始,应使用Core Media I/O扩展API 来实现驱动程序,因为该驱动程序将在其自己的独立进程中运行,并且可以在所有使用 Core Media 的应用程序中使用。
在此之前(macOS 12 及更早版本),仅存在所谓的设备抽象层 (DAL) 插件 API,其中涉及在捆绑包中编写动态库,任何希望使用该库的应用程序都可以按需加载有问题的设备。不幸的是,这引发了代码签名问题:使用强化的运行时和库验证标志构建的应用程序只能加载由 Apple 或与应用程序本身签名的同一团队签名的库。这意味着此类应用程序无法加载第三方相机驱动程序。此类应用程序的例子都是苹果自己的,包括 FaceTime。
| 归档时间: |
|
| 查看次数: |
242 次 |
| 最近记录: |