camera2_stream_ops结构参考

camera2_stream_ops结构参考

#include < camera2.h >

数据字段

整数(* dequeue_buffer )(常量结构camera2_stream_ops *w,buffer_handle_t **缓冲区)
整数(* enqueue_buffer )(常量结构camera2_stream_ops * w,int64_t时间戳,buffer_handle_t *缓冲区)
整数(* cancel_buffer )(const structcamera2_stream_ops *w,buffer_handle_t *buffer)
整数(* set_crop )(const structcamera2_stream_ops *w,int左,int顶部,int右,int底部)

详细说明

输出图像流队列接口。在 allocate_stream() 中向 HAL 设备提供了一组这些方法,并用于与该流的 gralloc 缓冲区队列进行交互。在 allocate_stream 返回之前,它们可能不会被调用。

定义位于文件camera2.h的第73行。

现场文档

int(* cancel_buffer)(const structcamera2_stream_ops *w, buffer_handle_t *buffer)

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

文件camera2.h102行的定义。

int(* dequeue_buffer)(const structcamera2_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 structcamera2_stream_ops *w, int 左, int 上, int 右, int 下)

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

文件camera2.h108行的定义。


该结构的文档是从以下文件生成的:
  • 硬件/libhardware/include/hardware/camera2.h