From ada3a97820dd48d513350d1365a3040d570bab6e Mon Sep 17 00:00:00 2001 From: Eino-Ville Talvala Date: Wed, 19 Sep 2012 11:42:40 -0700 Subject: [PATCH] Camera2: Add JPEG transport header To simplify passing compressed JPEG data between the HAL and the camera service, add a transport header for use with JPEG streams. Bug: 7108816 Change-Id: I91060051f59032e66eaaab3ee9f651badd1f2ac0 --- include/hardware/camera2.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/include/hardware/camera2.h b/include/hardware/camera2.h index e6b99b7d..8587fc53 100644 --- a/include/hardware/camera2.h +++ b/include/hardware/camera2.h @@ -113,6 +113,26 @@ enum { CAMERA2_HAL_PIXEL_FORMAT_ZSL = -1 }; +/** + * Transport header for compressed JPEG buffers in output streams. + * + * To capture JPEG images, a stream is created using the pixel format + * HAL_PIXEL_FORMAT_BLOB, and the static metadata field android.jpeg.maxSize is + * used as the buffer size. Since compressed JPEG images are of variable size, + * the HAL needs to include the final size of the compressed image using this + * structure inside the output stream buffer. The JPEG blob ID field must be set + * to CAMERA2_JPEG_BLOB_ID. + */ +typedef struct camera2_jpeg_blob { + uint16_t jpeg_blob_id; + uint32_t jpeg_size; + uint8_t jpeg_data[0]; +}; + +enum { + CAMERA2_JPEG_BLOB_ID = 0x00FF +}; + /** * Input reprocess stream queue management. A set of these methods is provided * to the HAL device in allocate_reprocess_stream(); they are used to interact