camera3_capture_request 结构体参考
#include <
camera3.h
>
数据字段 |
|
uint32_t | frame_number |
const camera_metadata_t * | settings |
camera3_stream_buffer_t * | input_buffer |
uint32_t | num_output_buffers |
const camera3_stream_buffer_t * | output_buffers |
详细说明
camera3_capture_request_t:
一次图片拍摄/缓冲区重新处理请求,由框架在 process_capture_request() 中发送到相机 HAL 设备。
该请求包含要用于此捕获的设置,以及用于写入生成的图片数据的一组输出缓冲区。它可以选择包含输入缓冲区,在这种情况下,请求是用于重新处理该输入缓冲区,而不是使用相机传感器拍摄新图片。捕获由 frame_number 标识。
作为回应,相机 HAL 设备必须使用 process_capture_result() 回调异步将 camera3_capture_result 结构发送到框架。
定义位于文件 camera3.h 的第 2135 行。
字段文档
uint32_t frame_number |
帧编号是由框架设置的递增整数,用于唯一标识此捕获。它需要在结果调用中返回,并且还用于在发送到 camera3_callback_ops_t.notify() 的异步通知中标识请求。
camera3_stream_buffer_t * input_buffer |
要用于此请求的输入流缓冲区(如果有)。
如果 input_buffer 为 NULL,则表示请求从图像传感器进行新拍摄。如果 input_buffer 有效,则请求是重新处理 input_buffer 中包含的图片。
在后一种情况下,HAL 必须在 process_capture_request() 返回之前,将 input_buffer 的 release_fence 设置为有效的同步栅栏,或者如果 HAL 不支持同步,则设置为 -1。
HAL 必须等待输入缓冲区的获取同步栅栏,然后才能访问该缓冲区。
<= CAMERA_DEVICE_API_VERSION_3_1:
此处包含的任何输入缓冲区都必须先通过 register_stream_buffers() 注册到 HAL,然后才能包含在请求中。
>= CAMERA_DEVICE_API_VERSION_3_2:
缓冲区未向 HAL 预注册。后续请求可以重复使用缓冲区,也可以提供全新的缓冲区。
const camera3_stream_buffer_t * output_buffers |
一个包含 num_output_buffers 个数据流缓冲区的数组,用于填充此捕获/重新处理操作中产生的图片数据。HAL 必须等待每个串流缓冲区的获取栅栏,然后才能向其写入数据。
HAL 会获得 output_buffers 中实际 buffer_handle_t 条目的所有权;在 camera3_capture_result_t 中返回这些条目之前,框架不会访问它们。
<= CAMERA_DEVICE_API_VERSION_3_1:
此处包含的所有缓冲区都将在添加到请求中之前通过 register_stream_buffers() 注册到 HAL。
>= CAMERA_DEVICE_API_VERSION_3_2:
此请求中包含的任何缓冲区或所有缓冲区都可能是全新的(HAL 从未见过)。
const camera_metadata_t * settings |
此结构体的文档是根据以下文件生成的:
- hardware/libhardware/include/hardware/ camera3.h