camera2_stream_ops结构参考

camera2_stream_ops结构参考

#include < camera2.h >

资料栏位

int(* dequeue_buffer )(const struct camera2_stream_ops * w, buffer_handle_t ** buffer)
int(* enqueue_buffer )(const struct camera2_stream_ops * w,int64_t时间戳, buffer_handle_t * buffer)
int(* cancel_buffer )(const struct camera2_stream_ops * w, buffer_handle_t * buffer)
int(* set_crop )(const struct camera2_stream_ops * w,int左,int顶部,int右,int底部)

详细说明

输出图像流队列接口。这些方法中的一组已在allocate_stream()中提供给HAL设备,并用于与该流的gralloc缓冲区队列进行交互。直到allocate_stream返回之后,才可以调用它们。

在文件camera2.h的73行定义。

现场文件

int(* cancel_buffer)(const struct camera2_stream_ops * w, buffer_handle_t * buffer)

将缓冲区返回队列,而不将其标记为已填充。

在文件camera2.h的102行定义。

int(* dequeue_buffer)(const struct camera2_stream_ops * w, buffer_handle_t ** buffer)

从队列中获取要填充的缓冲区。对于给定的流(在allocate_stream中定义),缓冲区的大小和格式是固定的,应从平台gralloc模块中查询跨步。 gralloc缓冲区将已根据allocate_stream提供的使用标志进行分配,并将被锁定以供使用。

在文件camera2.h的81行定义。

int(* enqueue_buffer)(const struct camera2_stream_ops * w,int64_t时间戳, buffer_handle_t * buffer)

将已填充的缓冲区推送到要由使用者使用的流。

时间戳表示图像第一行开始曝光的时间;它必须来自单调时钟,并且以纳秒为单位进行测量。时间戳不必在不同摄像机之间或同一摄像机的连续实例之间具有可比性。但是,它们必须在同一摄像机的流之间具有可比性。如果一个捕获为多个流生成了缓冲区,则每个流必须对该缓冲区具有相同的时间戳,并且该时间戳必须与输出帧元数据中的时间戳匹配。

在文件camera2.h的96行定义。

int(* set_crop)(const struct camera2_stream_ops * w,int left,int top,int right,int bottom)

为随后排队的缓冲区设置裁剪窗口。参数以像素为单位相对于缓冲区的宽度和高度进行测量。

在文件camera2.h的108行定义。


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