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 timestamp, 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 left, int top, int right, int bottom)
 

详细说明

输出图像流队列接口。在 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 timestamp, 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 行。


此结构体的文档是根据以下文件生成的: