camera3_stream_buffer结构参考

camera3_stream_buffer结构参考

#include < camera3.h >

数据字段

相机3_stream_t *溪流
缓冲区句柄_t *缓冲
整数地位
整数获取栅栏
整数释放栅栏

详细说明

camera3_stream_buffer_t:

来自camera3流的单个缓冲区。它包括其父流的句柄、gralloc 缓冲区本身的句柄以及同步栅栏

缓冲区没有指定它是用于输入还是输出;这是由其父流类型以及缓冲区如何传递到 HAL 设备决定的。

文件camera3.h1755行的定义。

现场文档

int acquire_fence

该缓冲区的获取同步栅栏。在尝试读取或写入此缓冲区之前,HAL 必须等待此栅栏 fd。

框架可以设置为-1以指示该缓冲区不需要等待。

当 HAL 使用 process_capture_result() 将输出缓冲区返回到框架时, acquire_fence 必须设置为 -1。如果由于填充缓冲区时出错,HAL 从不等待 acquire_fence,则在调用 process_capture_result() 时,HAL 必须将缓冲区的release_fence 设置为框架传递给它的 acquire_fence。这将允许框架在重用缓冲区之前等待。

对于输入缓冲区,HAL 不得在 process_capture_request() 调用期间更改 acquire_fence 字段。

>= CAMERA_DEVICE_API_VERSION_3_2:

当 HAL 使用 process_capture_result() 将输入缓冲区返回到框架时, acquire_fence 必须设置为 -1。如果 HAL 由于错误而从不等待输入缓冲区获取栅栏,则同步栅栏的处理方式应与处理输出缓冲区的方式类似。

文件camera3.h1800行的定义。

buffer_handle_t* 缓冲区

缓冲区的本机句柄

文件camera3.h1764行的定义。

intrelease_fence

该缓冲区的释放同步栅栏。当向框架返回缓冲区时,HAL 必须设置此栅栏,或者写入 -1 以指示此缓冲区不需要等待。

对于输出缓冲区,必须在传递给 process_capture_result() 的 output_buffers 数组中设置栅栏。

<= CAMERA_DEVICE_API_VERSION_3_1:

对于输入缓冲区,必须通过 process_capture_request() 调用设置释放栅栏。

>= CAMERA_DEVICE_API_VERSION_3_2:

对于输入缓冲区,必须在传递给 process_capture_result() 的 input_buffer 中设置栅栏。

在发出此缓冲区的release_fence 信号后,HAL 不应再尝试访问此缓冲区,因为所有权已完全转移回框架。

如果指定了 -1 的栅栏,则该缓冲区的所有权将在调用 process_capture_result 时立即转回。

文件camera3.h1827行的定义。

整数状态

缓冲区的当前状态,camera3_buffer_status_t 值之一。框架不会将处于错误状态的缓冲区传递给 HAL。如果 HAL 无法填充缓冲区,则当使用 process_capture_result() 返回到框架时,必须将其状态设置为 CAMERA3_BUFFER_STATUS_ERROR。

文件camera3.h1773行的定义。

该缓冲区关联的流的句柄

文件camera3.h1759行的定义。


该结构的文档是从以下文件生成的: