camera3_stream_buffer结构参考

camera3_stream_buffer结构参考

#include < camera3.h >

资料栏位

camera3_stream_t *溪流
buffer_handle_t *缓冲
整型地位
整型Acquisition_fence
整型release_fence

详细说明

camera3_stream_buffer_t:

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

缓冲区不指定将其用于输入还是输出。这取决于其父流类型以及如何将缓冲区传递到HAL设备。

在文件camera3.h的1755行定义。

现场文件

诠释acquire_fence

此缓冲区的获取同步防护。 HAL必须先在此篱笆fd上等待,然后再尝试从该缓冲区读取或写入该缓冲区。

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

当HAL使用process_capture_result()将输出缓冲区返回到框架时,必须将acquire_fence设置为-1。如果由于填充缓冲区中的错误而使HAL从来没有等待acquired_fence,则在调用process_capture_result()时,HAL必须将缓冲区的release_fence设置为框架传递给它的Acquisition_fence。这将允许框架在重新使用缓冲区之前先在篱笆上等待。

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

> = CAMERA_DEVICE_API_VERSION_3_2:

当HAL使用process_capture_result()将输入缓冲区返回到框架时,必须将acquire_fence设置为-1。如果HAL由于错误而从未等待输入缓冲区获取隔离,则应该对同步隔离进行类似于对输出缓冲区进行处理的处理。

在文件camera3.h的1800行定义。

buffer_handle_t *缓冲区

缓冲区的本机句柄

在文件camera3.h的1764行定义。

int release_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.h的1827行定义。

整数状态

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

在文件camera3.h的1773行定义。

该缓冲区与之关联的流的句柄

在文件camera3.h的1759行定义。


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