camera3_capture_request结构参考

camera3_capture_request结构参考

#include < camera3.h >

数据字段

uint32_t帧号
常量camera_metadata_t *设置
相机3_stream_buffer_t *输入缓冲区
uint32_t num_output_buffers
常量camera3_stream_buffer_t *输出缓冲区

详细说明

camera3_capture_request_t:

图像捕获/缓冲区重新处理的单个请求,由框架在 process_capture_request() 中发送到相机 HAL 设备。

该请求包含用于此捕获的设置,以及用于写入结果图像数据的输出缓冲区集。它可以选择包含输入缓冲区,在这种情况下,请求用于重新处理该输入缓冲区而不是捕获新的缓冲区图像与相机传感器。捕获由frame_number 标识。

作为响应,相机 HAL 设备必须使用 process_capture_result() 回调将camera3_capture_result结构异步发送到框架。

定义位于文件camera3.h的第2135行。

现场文档

uint32_t 帧号

帧编号是框架设置的递增整数,用于唯一标识此捕获。它需要在结果调用中返回,并且还用于标识发送到camera3_callback_ops_t.notify()的异步通知中的请求。

文件camera3.h2142行的定义。

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

如果 input_buffer 为 NULL,则请求是从成像器进行新的捕获。如果input_buffer有效,则请求重新处理input_buffer中包含的图像。

在后一种情况下,在 process_capture_request() 返回之前,HAL 必须将 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.h2177行的定义。

uint32_t num_output_buffers

此捕获请求的输出缓冲区的数量。必须至少为 1。

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

常量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.h2204行的定义。

常量camera_metadata_t *设置

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

文件camera3.h2151行的定义。


该结构的文档是从以下文件生成的:
  • 硬件/libhardware/include/hardware/camera3.h