自 2025 年 3 月 27 日起,我们建议您使用 android-latest-release
而非 aosp-main
构建 AOSP 并为其做出贡献。如需了解详情,请参阅 AOSP 的变更。
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
camera2_frame_queue_dst_ops 结构体参考文档
#include <
camera2.h
>
帧输出队列协议:
该框架会保留队列及其内容。开始时,队列为空。
-
当设备准备好填充输出元数据帧时,必须从队列中移除所需大小的元数据缓冲区。
-
然后,它应填充元数据缓冲区,并使用 enqueue_frame 将其放置在帧队列中。框架会获得帧的所有权。
-
如果发生错误、请求刷新流水线或关闭,设备必须通过调用 cancel_frame 将所有受影响的已移出队列的帧返回给框架。
定义位于文件
camera2.h
的
263
行。
将已从队列中移出的元数据缓冲区返回给框架以供重复使用;请勿将其标记为已填充。在遇到错误或刷新内部请求队列时使用。
定义位于文件
camera2.h
的
278
行。
获取一个空的元数据缓冲区,以便从框架中填充。新的元数据缓冲区将有足够的空间来存储 entries 个元数据条目,以及 data_bytes 字节的额外存储空间。此处从队列中移除的帧必须使用 cancel_frame 或 enqueue_frame 返回给框架。
定义位于文件
camera2.h
的
270
行。
此结构体的文档是根据以下文件生成的:
-
hardware/libhardware/include/hardware/
camera2.h
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-27。
[[["易于理解","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):2025-07-27。"],[],[],null,["# Android Hardware Abstraction Layer: camera2_frame_queue_dst_ops Struct Reference\n\ncamera2_frame_queue_dst_ops Struct Reference\n============================================\n\n[Data Fields](#pub-attribs) \ncamera2_frame_queue_dst_ops Struct Reference \n\n`\n#include \u003c\n`[camera2.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)`\n\u003e\n`\n\n|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Data Fields ----------- ||\n| int(\\* | [dequeue_frame](/reference/hal/structcamera2__frame__queue__dst__ops#a878d3091ff5be219e3812242928a28ea) )(const struct [camera2_frame_queue_dst_ops](/reference/hal/structcamera2__frame__queue__dst__ops) \\*q, size_t entries, size_t data_bytes, [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\*\\*buffer) |\n| ||\n| int(\\* | [cancel_frame](/reference/hal/structcamera2__frame__queue__dst__ops#a742d35d2b70e74c60e430ca9b08ae7b4) )(const struct [camera2_frame_queue_dst_ops](/reference/hal/structcamera2__frame__queue__dst__ops) \\*q, [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\*buffer) |\n| ||\n| int(\\* | [enqueue_frame](/reference/hal/structcamera2__frame__queue__dst__ops#a75baa7e999cc35f9908638c582833fc2) )(const struct [camera2_frame_queue_dst_ops](/reference/hal/structcamera2__frame__queue__dst__ops) \\*q, [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\*buffer) |\n| ||\n\n\nDetailed Description\n--------------------\n\n\nFrame output queue protocol:\n\n\nThe framework holds the queue and its contents. At start, the queue is empty.\n\n1. When the device is ready to fill an output metadata frame, it must dequeue a metadata buffer of the required size.\n2. It should then fill the metadata buffer, and place it on the frame queue using enqueue_frame. The framework takes ownership of the frame.\n3. In case of an error, a request to flush the pipeline, or shutdown, the device must return any affected dequeued frames to the framework by calling cancel_frame.\n\n\nDefinition at line\n[263](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)\nof file\n[camera2.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)\n.\n\nField Documentation\n-------------------\n\n\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| int(\\* cancel_frame)(const struct [camera2_frame_queue_dst_ops](/reference/hal/structcamera2__frame__queue__dst__ops) \\*q, [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\*buffer) |\n\n\nReturn a dequeued metadata buffer to the framework for reuse; do not mark it as filled. Use when encountering errors, or flushing the internal request queue.\n\n\nDefinition at line\n[278](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)\nof file\n[camera2.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)\n.\n\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| int(\\* dequeue_frame)(const struct [camera2_frame_queue_dst_ops](/reference/hal/structcamera2__frame__queue__dst__ops) \\*q, size_t entries, size_t data_bytes, [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\*\\*buffer) |\n\n\nGet an empty metadata buffer to fill from the framework. The new metadata buffer will have room for entries number of metadata entries, plus data_bytes worth of extra storage. Frames dequeued here must be returned to the framework with either cancel_frame or enqueue_frame.\n\n\nDefinition at line\n[270](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)\nof file\n[camera2.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)\n.\n\n|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| int(\\* enqueue_frame)(const struct [camera2_frame_queue_dst_ops](/reference/hal/structcamera2__frame__queue__dst__ops) \\*q, [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\*buffer) |\n\n\nPlace a completed metadata frame on the frame output queue.\n\n\nDefinition at line\n[284](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)\nof file\n[camera2.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)\n.\n\n*** ** * ** ***\n\nThe documentation for this struct was generated from the following file:\n\n- hardware/libhardware/include/hardware/ [camera2.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)"]]