camera3_capture_request 结构体参考

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.h 2142 行。

要用于此请求的输入流缓冲区(如果有)。

如果 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 预注册。后续请求可以重复使用缓冲区,也可以提供全新的缓冲区。

定义位于文件 camera3.h 2177 行。

uint32_t num_output_buffers

此捕获请求的输出缓冲区数量。不得低于 1。

定义位于文件 camera3.h 2183 行。

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 从未见过)。

定义位于文件 camera3.h 2204 行。

const camera_metadata_t * settings

设置缓冲区包含请求的捕获和处理参数。作为一种特殊情况,NULL 设置缓冲区表示设置与最近提交的拍摄请求相同。在调用 configure_streams() 后,不能将 NULL 缓冲区用作第一个提交的请求。

定义位于文件 camera3.h 2151 行。


此结构体的文档是根据以下文件生成的: