使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
camera2_device_ops结构参考
#include < camera2.h >
allocate_reprocess_stream:
分配一个新的输入流以供使用,由输出缓冲区宽度、高度和像素格式定义。如果成功,则返回新流的 ID、gralloc 使用标志以及所需的同时可获取缓冲区计数。错误条件:
- 请求传感器静态特性未列出的宽度/高度/格式组合
- 要求一次配置太多的后处理流。
输入参数:
- width、height、format:通过该流发送的缓冲区的规范。格式必须是 HAL_PIXEL_FORMAT_* 列表中的值。
- reprocess_stream_ops:用于获取和释放该流的缓冲区的函数指针结构。底层流将根据使用情况和 max_buffers 输出进行配置。
输出参数:
- Stream_id:标识该流的无符号整数。该值用于传入请求以识别流以及释放流。这些 id 与输入流 id 分开编号。
- Consumer_usage:HAL 设备使用请求的数据类型所需的 gralloc 使用掩码。这用于为流缓冲区队列分配新的 gralloc 缓冲区。
- max_buffers:HAL设备可能需要同时获取的最大缓冲区数。设备同时获取的缓冲区数不得超过该值。
文件camera2.h第708行的定义。
allocate_reprocess_stream_from_stream:
分配一个新的输入流以供使用,它将使用为现有输出流分配的缓冲区。也就是说,在 HAL 将缓冲区排队到输出流上之后,它可能会看到从该输入重新处理流传递给它的相同缓冲区。 HAL 将缓冲区释放回重新处理流后,将返回到输出队列以供重用。
错误条件:
- 使用大小/格式不合适的输出流作为重新处理流的基础。
- 尝试一次分配太多的重新处理流。
输入参数:
- output_stream_id:现有输出流的 ID,其大小和格式适合重新处理。
- reprocess_stream_ops:用于获取和释放该流的缓冲区的函数指针结构。底层流将使用与输出流相同的图形缓冲区句柄。
输出参数:
- Stream_id:标识该流的无符号整数。该值用于传入请求以识别流以及释放流。这些 id 与输入流 id 分开编号。
HAL 客户端必须始终在释放其所基于的输出流之前释放重新处理流。
文件camera2.h第754行的定义。
分配流:
分配一个新的输出流供使用,由输出缓冲区宽度、高度、目标以及可能的像素格式定义。如果成功,则返回新流的 ID、gralloc 使用标志、最小队列缓冲区计数以及可能的像素格式。错误条件:
- 请求传感器静态特性未列出的宽度/高度/格式组合
- 要求给定格式类型的流过多(例如,2 个拜耳原始流)。
输入参数:
- width、height、format:通过该流发送的缓冲区的规范。格式是 HAL_PIXEL_FORMAT_* 列表中的值。如果使用 HAL_PIXEL_FORMAT_IMPLMENTATION_DEFINED,则平台 gralloc 模块将根据相机 HAL 和流的使用者提供的使用标志来选择格式。如有必要,相机 HAL 应检查在 register_stream_buffers 调用中传递给它的缓冲区,以获取特定于实现的格式。
- Stream_ops:用于获取该流的缓冲区并将其排队的函数指针结构。底层流将根据使用情况和 max_buffers 输出进行配置。该结构中的方法只有在 allocate_stream 返回后才能被调用。
输出参数:
- Stream_id:标识该流的无符号整数。该值用于传入请求以识别流以及释放流。
- 用法:HAL 设备生成请求的数据类型所需的 gralloc 用法掩码。这用于为流缓冲区队列分配新的 gralloc 缓冲区。
- max_buffers:HAL 设备可能需要同时出队的最大缓冲区数。设备同时出队的缓冲区数不得超过此值。
文件camera2.h第632行的定义。
为标准相机用例创建已填写的默认请求。
设备必须返回配置为满足所请求用例的完整请求,该请求必须是 CAMERA2_TEMPLATE_* 枚举之一。必须包含所有请求控制字段(android.request.outputStreams 除外)。
返回的元数据缓冲区必须使用 allocate_camera_metadata 进行分配。框架取得缓冲区的所有权。
文件camera2.h第580行的定义。
刷新所有正在进行的捕获。这包括尚未将任何输出放入流或帧队列中的所有出队请求(常规或重新处理)。部分完成的捕获必须正常完成。在刷新完成之前,不会有新的请求从请求队列中出队。
文件camera2.h第567行的定义。
设备当前正在处理的相机请求数(捕获/重新处理其请求已出队,但尚未入队到输出管道)。在进行中计数为 0 之前,框架不会释放任何流。
文件camera2.h第558行的定义。
获取设备实例特定的元数据。对于相机设备的单个实例,此元数据必须是恒定的,但在 open() 调用之间可能有所不同。返回的camera_metadata指针必须在调用设备close()方法之前有效。
版本信息:
CAMERA_DEVICE_API_VERSION_2_0:
无法使用。框架可能无法访问此函数指针。
CAMERA_DEVICE_API_VERSION_2_1:
有效的。可以被框架调用。
文件camera2.h第820行的定义。
获取查询供应商扩展元数据标签信息的方法。如果没有定义供应商扩展标签,可以将 ops 设置为 NULL。
文件camera2.h第795行的定义。
通知设备请求队列不再为空。仅当第一个缓冲区添加到新队列时,或者在源响应出队调用而返回 NULL 之后,才必须调用。
文件camera2.h第544行的定义。
int(* register_stream_buffers)(const structcamera2_device *,uint32_tstream_id,intnum_buffers,buffer_handle_t*buffers) |
为给定流注册缓冲区。这是在成功调用 allocate_stream 之后、引用流的第一个请求入队之前调用的。此方法旨在允许 HAL 设备映射或以其他方式准备缓冲区以供以后使用。 num_buffers 保证至少为 max_buffers (来自 allocate_stream),但也可以更大。缓冲区已被锁定以供使用。调用结束时,所有缓冲区必须准备好返回队列。如果流格式设置为 HAL_PIXEL_FORMAT_IMPLMENTATION_DEFINED,则相机 HAL 应检查此处传入的缓冲区以确定任何平台私有的像素格式信息。
文件camera2.h第657行的定义。
释放重新处理流。如果在 get_in_progress_count 非零时调用,或者流 ID 无效,则返回错误。
文件camera2.h第765行的定义。
释放一个流。如果在 get_in_progress_count 非零时调用,或者流 ID 无效,则返回错误。
文件camera2.h第667行的定义。
触发异步活动。这用于在使用相机3A例程时触发它们的特殊行为。有关触发器 ID 及其参数的详细信息,请参阅上面的 CAMERA2_TRIGGER_* 文档。
定义位于文件camera2.h的第779行。
该结构的文档是从以下文件生成的:
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2023-12-01。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2023-12-01。"],[],[]]