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 实现有两种可能方式:
框架实现 ZSL
Kitkat只支持框架实现的ZSL,非常简单。 (为 ZSL 使用双向流)
在 Lollipop 中,他们非常清楚地记录了实现 ZSL 的框架,
http://androidxref.com/5.0.0_r2/xref/hardware/libhardware/include/hardware/camera3.h#1076
应用程序实现了 ZSL
在 Lollipop 中,他们引入了应用程序实现 ZSL 的概念。根据可用文档,ZSL 已作为应用程序的功能公开
http://androidxref.com/5.0.0_r2/xref/system/media/camera/docs/docs.html
在android.request.availableCapabilities下表示:
对于 ZSL,"RAW_OPAQUE is supported as an output/input format"
在 Lollipop 中,框架实现的 ZSL 与 Kitkat 的工作方式相同,使用 Camera1 API 应用程序。
但是,我在 Camera2 API 应用程序代码的任何地方都找不到如何启用 application/framework 实现的 ZSL。
http://androidxref.com/5.0.0_r2/xref/packages/apps/Camera2/
因此,问题:
是否可以使用 Camera2 API 应用程序在 Android L 中启用框架实现的 ZSL?
是否可以在 Android L 中启用应用程序实现的 ZSL,无 RAW_OPAQUE 支持,使用 Camera2 API 应用?
如果 1 或 2 都可能,Camera HAL 需要什么才能在 Android L 中启用 ZSL?
感谢任何帮助。
不行,framework-layer ZSL只适用于旧相机API。
否,除非按原样使用输出缓冲区就足够了,而无需将其发送回相机设备进行最终处理。
较长的答案是 ZSL 重新处理 APIs 必须从初始 camera2 实现中删除,因此目前应用程序无法以任何格式将缓冲区发送回相机设备(RAW_OPAQUE 或其他)。
camera3.h 中的某些文档相对于实际的框架实现也具有误导性 - 该框架仅支持 IMPLEMENTATION_DEFINED BIDIRECTIONAL ZSL,并且未使用 RAW_OPAQUE任何地方。
编辑:从 Android 6.0 Marshmallow 开始,reprocessing 在支持它的设备(例如 Nexus 6P/5X)上的 camera2 API 中可用。
我试图从相机应用程序、相机框架和 libcameraservice 实现以及相机 HAL v3.2 规范中了解 feature/capability 对 Android 5.0 的支持。
据我了解,android 中的 ZSL 实现有两种可能方式:
框架实现 ZSL
Kitkat只支持框架实现的ZSL,非常简单。 (为 ZSL 使用双向流)
在 Lollipop 中,他们非常清楚地记录了实现 ZSL 的框架, http://androidxref.com/5.0.0_r2/xref/hardware/libhardware/include/hardware/camera3.h#1076
应用程序实现了 ZSL
在 Lollipop 中,他们引入了应用程序实现 ZSL 的概念。根据可用文档,ZSL 已作为应用程序的功能公开 http://androidxref.com/5.0.0_r2/xref/system/media/camera/docs/docs.html
在android.request.availableCapabilities下表示:
对于 ZSL,"RAW_OPAQUE is supported as an output/input format"
在 Lollipop 中,框架实现的 ZSL 与 Kitkat 的工作方式相同,使用 Camera1 API 应用程序。
但是,我在 Camera2 API 应用程序代码的任何地方都找不到如何启用 application/framework 实现的 ZSL。 http://androidxref.com/5.0.0_r2/xref/packages/apps/Camera2/
因此,问题:
是否可以使用 Camera2 API 应用程序在 Android L 中启用框架实现的 ZSL?
是否可以在 Android L 中启用应用程序实现的 ZSL,无 RAW_OPAQUE 支持,使用 Camera2 API 应用?
如果 1 或 2 都可能,Camera HAL 需要什么才能在 Android L 中启用 ZSL?
感谢任何帮助。
不行,framework-layer ZSL只适用于旧相机API。
否,除非按原样使用输出缓冲区就足够了,而无需将其发送回相机设备进行最终处理。
较长的答案是 ZSL 重新处理 APIs 必须从初始 camera2 实现中删除,因此目前应用程序无法以任何格式将缓冲区发送回相机设备(RAW_OPAQUE 或其他)。
camera3.h 中的某些文档相对于实际的框架实现也具有误导性 - 该框架仅支持 IMPLEMENTATION_DEFINED BIDIRECTIONAL ZSL,并且未使用 RAW_OPAQUE任何地方。
编辑:从 Android 6.0 Marshmallow 开始,reprocessing 在支持它的设备(例如 Nexus 6P/5X)上的 camera2 API 中可用。