简体   繁体   中英

ZSL feature on Android Lollipop with camera 2 API

I am trying to understand ZSL feature/capability support on Android 5.0, from camera application, camera framework and libcameraservice implementation as well camera HAL v3.2 specifications.

As far as I understand, ZSL implementation in android, is possible in two ways:

  1. Framework implemented ZSL

  2. Application implemented ZSL

    • In Lollipop, they have introduced the concept of application implemented ZSL. ZSL has been exposed as a capability to the application, as per the available documentation http://androidxref.com/5.0.0_r2/xref/system/media/camera/docs/docs.html

    • Under android.request.availableCapabilities , it says that:
      For ZSL, "RAW_OPAQUE is supported as an output/input format"

In Lollipop, framework implemented ZSL works the same way as Kitkat, with Camera1 API application.

However, I could not find anywhere in Camera2 API application code, how to enable application/framework implemented ZSL. http://androidxref.com/5.0.0_r2/xref/packages/apps/Camera2/

Hence, the questions:

  1. Is it possible to enable framework implemented ZSL in Android L, with Camera2 API application?

  2. Is it possible to enable application implemented ZSL in Android L, without RAW_OPAQUE support, with Camera2 API application?

  3. If either 1 or 2 is possible, what is required from Camera HAL to enable ZSL in Android L?

Any help appreciated.

  1. No, the framework-layer ZSL only works with the old camera API.

  2. No, unless it's sufficient to use the output buffer as-is, without sending it back to the camera device for final processing.

The longer answer is that the ZSL reprocessing APIs had to be cut out of the initial camera2 implementation, so currently there's no way for an application to send buffers back to the camera device, in any format (RAW_OPAQUE or otherwise).

Some of the documentation in camera3.h is misleading relative to the actual framework implementation, as well - only IMPLEMENTATION_DEFINED BIDIRECTIONAL ZSL is supported by the framework, and RAW_OPAQUE is not used anywhere.

Edit: As of Android 6.0 Marshmallow, reprocessing is available in the camera2 API, on devices that support it (such as Nexus 6P/5X).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM