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:
Framework implemented ZSL
In Kitkat, only framework implemented ZSL was supported, and it was pretty straightforward. (Using bidirectional streams for ZSL)
In Lollipop,they have documented framework implemented ZSL very clearly, http://androidxref.com/5.0.0_r2/xref/hardware/libhardware/include/hardware/camera3.h#1076
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:
Is it possible to enable framework implemented ZSL in Android L, with Camera2 API application?
Is it possible to enable application implemented ZSL in Android L, without RAW_OPAQUE support, with Camera2 API application?
If either 1 or 2 is possible, what is required from Camera HAL to enable ZSL in Android L?
Any help appreciated.