OSDN Git Service

Camera2: Add JPEG transport header
authorEino-Ville Talvala <etalvala@google.com>
Wed, 19 Sep 2012 18:42:40 +0000 (11:42 -0700)
committerEino-Ville Talvala <etalvala@google.com>
Wed, 19 Sep 2012 18:42:40 +0000 (11:42 -0700)
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

index e6b99b7..8587fc5 100644 (file)
@@ -114,6 +114,26 @@ enum {
 };
 
 /**
+ * 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
  * with the reprocess stream's input gralloc buffer queue.