自 2025 年 3 月 27 日起,我们建议您使用 android-latest-release
而非 aosp-main
构建 AOSP 并为其做出贡献。如需了解详情,请参阅 AOSP 的变更。
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
camera3_capture_request 结构体参考
#include <
camera3.h
>
camera3_capture_request_t:
一次图片拍摄/缓冲区重新处理请求,由框架在 process_capture_request() 中发送到相机 HAL 设备。
该请求包含要用于此捕获的设置,以及用于写入生成的图片数据的一组输出缓冲区。它可以选择包含输入缓冲区,在这种情况下,请求是用于重新处理该输入缓冲区,而不是使用相机传感器拍摄新图片。捕获由 frame_number 标识。
作为回应,相机 HAL 设备必须使用 process_capture_result() 回调异步将
camera3_capture_result
结构发送到框架。
定义位于文件
camera3.h
的第 2135 行。
要用于此请求的输入流缓冲区(如果有)。
如果 input_buffer 为 NULL,则表示请求从图像传感器进行新拍摄。如果 input_buffer 有效,则请求是重新处理 input_buffer 中包含的图片。
在后一种情况下,HAL 必须在 process_capture_request() 返回之前,将 input_buffer 的 release_fence 设置为有效的同步栅栏,或者如果 HAL 不支持同步,则设置为 -1。
HAL 必须等待输入缓冲区的获取同步栅栏,然后才能访问该缓冲区。
<= CAMERA_DEVICE_API_VERSION_3_1:
此处包含的任何输入缓冲区都必须先通过 register_stream_buffers() 注册到 HAL,然后才能包含在请求中。
>= CAMERA_DEVICE_API_VERSION_3_2:
缓冲区未向 HAL 预注册。后续请求可以重复使用缓冲区,也可以提供全新的缓冲区。
定义位于文件
camera3.h
的
2177
行。
uint32_t num_output_buffers
|
一个包含 num_output_buffers 个数据流缓冲区的数组,用于填充此捕获/重新处理操作中产生的图片数据。HAL 必须等待每个串流缓冲区的获取栅栏,然后才能向其写入数据。
HAL 会获得 output_buffers 中实际 buffer_handle_t 条目的所有权;在 camera3_capture_result_t 中返回这些条目之前,框架不会访问它们。
<= CAMERA_DEVICE_API_VERSION_3_1:
此处包含的所有缓冲区都将在添加到请求中之前通过 register_stream_buffers() 注册到 HAL。
>= CAMERA_DEVICE_API_VERSION_3_2:
此请求中包含的任何缓冲区或所有缓冲区都可能是全新的(HAL 从未见过)。
定义位于文件
camera3.h
的
2204
行。
设置缓冲区包含请求的捕获和处理参数。作为一种特殊情况,NULL 设置缓冲区表示设置与最近提交的拍摄请求相同。在调用 configure_streams() 后,不能将 NULL 缓冲区用作第一个提交的请求。
定义位于文件
camera3.h
的
2151
行。
此结构体的文档是根据以下文件生成的:
-
hardware/libhardware/include/hardware/
camera3.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: camera3_capture_request Struct Reference\n\ncamera3_capture_request Struct Reference\n========================================\n\n[Data Fields](#pub-attribs) \ncamera3_capture_request Struct Reference \n\n`\n#include \u003c\n`[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)`\n\u003e\n`\n\n|----------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|\n| Data Fields ----------- ||\n| uint32_t | [frame_number](/reference/hal/structcamera3__capture__request#a57cc7f4d579276167efca6cf047839b2) |\n| ||\n| const [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\* | [settings](/reference/hal/structcamera3__capture__request#adccd8702a549b9f5fb98afa0c4b44a62) |\n| ||\n| [camera3_stream_buffer_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h) \\* | [input_buffer](/reference/hal/structcamera3__capture__request#ac1c94bbde71f06911c6abe85f3a44593) |\n| ||\n| uint32_t | [num_output_buffers](/reference/hal/structcamera3__capture__request#a70d2093ddb1078b68c6688b6cf923380) |\n| ||\n| const [camera3_stream_buffer_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h) \\* | [output_buffers](/reference/hal/structcamera3__capture__request#ab1d50229b27a7cf28ff1374be6650fb6) |\n| ||\n\n\nDetailed Description\n--------------------\n\n\ncamera3_capture_request_t:\n\n\nA single request for image capture/buffer reprocessing, sent to the Camera HAL device by the framework in process_capture_request().\n\n\nThe request contains the settings to be used for this capture, and the set of output buffers to write the resulting image data in. It may optionally contain an input buffer, in which case the request is for reprocessing that input buffer instead of capturing a new image with the camera sensor. The capture is identified by the frame_number.\n\n\nIn response, the camera HAL device must send a\n[camera3_capture_result](/reference/hal/structcamera3__capture__result)\nstructure asynchronously to the framework, using the process_capture_result() callback.\n\n\nDefinition at line\n[2135](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\nField Documentation\n-------------------\n\n\n|-----------------------|\n| uint32_t frame_number |\n\n\nThe frame number is an incrementing integer set by the framework to uniquely identify this capture. It needs to be returned in the result call, and is also used to identify the request in asynchronous notifications sent to\n[camera3_callback_ops_t.notify()](/reference/hal/structcamera3__callback__ops#a6d702d6e962f95105b984b17462619b3)\n.\n\n\nDefinition at line\n[2142](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n|-----------------------------------------------------------------------------------------------------------------------------------------------|\n| [camera3_stream_buffer_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h) \\* input_buffer |\n\n\nThe input stream buffer to use for this request, if any.\n\n\nIf input_buffer is NULL, then the request is for a new capture from the imager. If input_buffer is valid, the request is for reprocessing the image contained in input_buffer.\n\n\nIn the latter case, the HAL must set the release_fence of the input_buffer to a valid sync fence, or to -1 if the HAL does not support sync, before process_capture_request() returns.\n\n\nThe HAL is required to wait on the acquire sync fence of the input buffer before accessing it.\n\n\n\\\u003c= CAMERA_DEVICE_API_VERSION_3_1:\n\n\nAny input buffer included here will have been registered with the HAL through register_stream_buffers() before its inclusion in a request.\n\n\n\\\u003e= CAMERA_DEVICE_API_VERSION_3_2:\n\n\nThe buffers will not have been pre-registered with the HAL. Subsequent requests may reuse buffers, or provide entirely new buffers.\n\n\nDefinition at line\n[2177](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n|-----------------------------|\n| uint32_t num_output_buffers |\n\n\nThe number of output buffers for this capture request. Must be at least 1.\n\n\nDefinition at line\n[2183](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n|-------------------------------------------------------------------------------------------------------------------------------------------------------|\n| const [camera3_stream_buffer_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h) \\* output_buffers |\n\n\nAn array of num_output_buffers stream buffers, to be filled with image data from this capture/reprocess. The HAL must wait on the acquire fences of each stream buffer before writing to them.\n\n\nThe HAL takes ownership of the actual buffer_handle_t entries in output_buffers; the framework does not access them until they are returned in a camera3_capture_result_t.\n\n\n\\\u003c= CAMERA_DEVICE_API_VERSION_3_1:\n\n\nAll the buffers included here will have been registered with the HAL through register_stream_buffers() before their inclusion in a request.\n\n\n\\\u003e= CAMERA_DEVICE_API_VERSION_3_2:\n\n\nAny or all of the buffers included here may be brand new in this request (having never before seen by the HAL).\n\n\nDefinition at line\n[2204](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n|-------------------------------------------------------------------------------------------------------------------------------------------------|\n| const [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\* settings |\n\n\nThe settings buffer contains the capture and processing parameters for the request. As a special case, a NULL settings buffer indicates that the settings are identical to the most-recently submitted capture request. A NULL buffer cannot be used as the first submitted request after a configure_streams() call.\n\n\nDefinition at line\n[2151](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n*** ** * ** ***\n\nThe documentation for this struct was generated from the following file:\n\n- hardware/libhardware/include/hardware/ [camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)"]]