Android Lollipop 上的 ZSL 功能与相机 2 API

ZSL feature on Android Lollipop with camera 2 API

我试图从相机应用程序、相机框架和 libcameraservice 实现以及相机 HAL v3.2 规范中了解 feature/capability 对 Android 5.0 的支持。

据我了解,android 中的 ZSL 实现有两种可能方式:

  1. 框架实现 ZSL

  2. 应用程序实现了 ZSL

在 Lollipop 中,框架实现的 ZSL 与 Kitkat 的工作方式相同,使用 Camera1 API 应用程序。

但是,我在 Camera2 API 应用程序代码的任何地方都找不到如何启用 application/framework 实现的 ZSL。 http://androidxref.com/5.0.0_r2/xref/packages/apps/Camera2/

因此,问题:

  1. 是否可以使用 Camera2 API 应用程序在 Android L 中启用框架实现的 ZSL?

  2. 是否可以在 Android L 中启用应用程序实现的 ZSL, RAW_OPAQUE 支持,使用 Camera2 API 应用?

  3. 如果 1 或 2 都可能,Camera HAL 需要什么才能在 Android L 中启用 ZSL?

感谢任何帮助。

  1. 不行,framework-layer ZSL只适用于旧相机API。

  2. 否,除非按原样使用输出缓冲区就足够了,而无需将其发送回相机设备进行最终处理。

较长的答案是 ZSL 重新处理 APIs 必须从初始 camera2 实现中删除,因此目前应用程序无法以任何格式将缓冲区发送回相机设备(RAW_OPAQUE 或其他)。

camera3.h 中的某些文档相对于实际的框架实现也具有误导性 - 该框架仅支持 IMPLEMENTATION_DEFINED BIDIRECTIONAL ZSL,并且未使用 RAW_OPAQUE任何地方。

编辑:从 Android 6.0 Marshmallow 开始,reprocessing 在支持它的设备(例如 Nexus 6P/5X)上的 camera2 API 中可用。