camera3_stream_buffer结构参考
#include < camera3.h >
数据字段 | |
相机3_stream_t * | 溪流 |
缓冲区句柄_t * | 缓冲 |
整数 | 地位 |
整数 | 获取栅栏 |
整数 | 释放栅栏 |
详细说明
camera3_stream_buffer_t:
来自camera3流的单个缓冲区。它包括其父流的句柄、gralloc 缓冲区本身的句柄以及同步栅栏
缓冲区没有指定它是用于输入还是输出;这是由其父流类型以及缓冲区如何传递到 HAL 设备决定的。
现场文档
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 由于错误而从不等待输入缓冲区获取栅栏,则同步栅栏的处理方式应与处理输出缓冲区的方式类似。
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_stream_t * 流 |
该结构的文档是从以下文件生成的: