Camera: Document limitation on private reprocessing

For private reprocessing, the ImageReader used to produce images into
the ImageWriter isn't aware of the overridden format. If the HAL decides
to override the input IMPLEMENTATION_DEFINED format, reprocessing will
fail.

Document this limitation in the HAL interface.

Test: Build
Bug: 266954992
Change-Id: I9bd05e9682e4d11870bf9bd25763f28291faef75
This commit is contained in:
Shuzhen Wang 2023-02-09 00:22:23 +00:00
parent fbefc762b9
commit 80e67aedf2
3 changed files with 12 additions and 5 deletions

View file

@ -346,15 +346,18 @@ struct HalStream {
* An override pixel format for the buffers in this stream. * An override pixel format for the buffers in this stream.
* *
* The HAL must respect the requested format in Stream unless it is * The HAL must respect the requested format in Stream unless it is
* IMPLEMENTATION_DEFINED, in which case the override format here must be * IMPLEMENTATION_DEFINED output, in which case the override format
* used by the client instead, for this stream. This allows cross-platform * here must be used by the client instead, for this stream. This allows
* HALs to use a standard format since IMPLEMENTATION_DEFINED formats often * cross-platform HALs to use a standard format since IMPLEMENTATION_DEFINED
* require device-specific information. In all other cases, the * formats often require device-specific information. In all other cases, the
* overrideFormat must match the requested format. * overrideFormat must match the requested format.
* *
* When HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED is used, then the platform * When HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED is used, then the platform
* gralloc module must select a format based on the usage flags provided by * gralloc module must select a format based on the usage flags provided by
* the camera device and the other endpoint of the stream. * the camera device and the other endpoint of the stream.
*
* For private reprocessing, the HAL must not override the input stream's
* IMPLEMENTATION_DEFINED format.
*/ */
android.hardware.graphics.common@1.0::PixelFormat overrideFormat; android.hardware.graphics.common@1.0::PixelFormat overrideFormat;

View file

@ -38,7 +38,7 @@ parcelable HalStream {
* An override pixel format for the buffers in this stream. * An override pixel format for the buffers in this stream.
* *
* The HAL must respect the requested format in Stream unless it is * The HAL must respect the requested format in Stream unless it is
* IMPLEMENTATION_DEFINED, in which case the override format here must be * IMPLEMENTATION_DEFINED output, in which case the override format here must be
* used by the client instead, for this stream. This allows cross-platform * used by the client instead, for this stream. This allows cross-platform
* HALs to use a standard format since IMPLEMENTATION_DEFINED formats often * HALs to use a standard format since IMPLEMENTATION_DEFINED formats often
* require device-specific information. In all other cases, the * require device-specific information. In all other cases, the
@ -47,6 +47,9 @@ parcelable HalStream {
* When HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED is used, then the platform * When HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED is used, then the platform
* gralloc module must select a format based on the usage flags provided by * gralloc module must select a format based on the usage flags provided by
* the camera device and the other endpoint of the stream. * the camera device and the other endpoint of the stream.
*
* For private reprocessing, the HAL must not override the input stream's
* IMPLEMENTATION_DEFINED format.
*/ */
android.hardware.graphics.common.PixelFormat overrideFormat; android.hardware.graphics.common.PixelFormat overrideFormat;

View file

@ -934,5 +934,6 @@ b7ce2d87841585551b082fca6d099622e63b7099e0d8013f687ea1a1dc35c4dc android.hardwar
42abd285a4293dadb8c89bc63b90cae2872fbffe90c4517aa3ea4965e8aecff7 android.hardware.graphics.common@1.2::types 42abd285a4293dadb8c89bc63b90cae2872fbffe90c4517aa3ea4965e8aecff7 android.hardware.graphics.common@1.2::types
4f1a02d21a22104c734f71cdbba19b6f7e93d4ee107ff79f0dbdd171a8430e0e android.hardware.automotive.vehicle@2.0::types 4f1a02d21a22104c734f71cdbba19b6f7e93d4ee107ff79f0dbdd171a8430e0e android.hardware.automotive.vehicle@2.0::types
a2fbd9747fbb9ceb8c1090b5a24138312246502d5af0654a8c2b603a9bf521fc android.hardware.gnss@1.0::IGnssCallback a2fbd9747fbb9ceb8c1090b5a24138312246502d5af0654a8c2b603a9bf521fc android.hardware.gnss@1.0::IGnssCallback
889b59e3e7a59afa67bf19882a44f51a2f9e43b6556ec52baa9ec3efd1ef7fbe android.hardware.camera.device@3.2::types
# There will be no more HIDL HALs. Use AIDL instead. # There will be no more HIDL HALs. Use AIDL instead.