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行定义。
该结构的文档是从以下文件生成的: