具有相机2 API的Android Lollipop上的ZSL功能

Sum*_*wal 4 camera android shutter android-5.0-lollipop

我正在尝试从相机应用程序,相机框架和libcameraservice实施以及相机HAL v3.2规范中了解Android 5.0上的ZSL功能/功能支持。

据我了解,在Android中实现ZSL的方式有两种:

  1. 框架实现的ZSL

  2. 应用实现的ZSL

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

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

因此,问题是:

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

  2. 是否可以通过Camera2 API应用程序在没有 RAW_OPAQUE支持的情况下在Android L中启用应用程序实现的ZSL ?

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

任何帮助表示赞赏。

Edd*_*ala 5

  1. 不,框架层ZSL仅适用于旧的相机API。

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

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

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

编辑:从Android 6.0 Marshmallow开始,在camera2 API中,在支持它的设备(例如Nexus 6P / 5X)上可以进行重新处理

  • 基线LIMITED设备不需要支持重新处理,但是它是设备可以作为LIMITED或FULL设备支持的功能之一。JPEG的Implementation_defined已在框架层中工作,因此将来可能会添加API。 (2认同)