Kể từ ngày 27 tháng 3 năm 2025, bạn nên sử dụng android-latest-release
thay vì aosp-main
để xây dựng và đóng góp cho AOSP. Để biết thêm thông tin, hãy xem phần Thay đổi đối với AOSP.
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Tham chiếu cấu trúc camera3_stream_buffer
#include <
camera3.h
>
camera3_stream_buffer_t:
Một vùng đệm duy nhất từ luồng camera3. Nó bao gồm một handle đến luồng mẹ, handle đến chính vùng đệm gralloc và hàng rào đồng bộ hoá
Bộ đệm không chỉ định liệu bộ đệm đó được dùng để nhập hay xuất; điều đó được xác định bằng loại luồng mẹ và cách bộ đệm được truyền đến thiết bị HAL.
Định nghĩa tại dòng
1755
của tệp
camera3.h
.
Hàng rào đồng bộ hoá thu nạp cho vùng đệm này. HAL phải đợi fd hàng rào này trước khi tìm cách đọc hoặc ghi vào vùng đệm này.
Bạn có thể đặt khung thành -1 để cho biết không cần phải đợi vùng đệm này.
Khi HAL trả về vùng đệm đầu ra cho khung bằng process_capture_result(), bạn phải đặt acquire_fence thành -1. Nếu HAL không bao giờ đợi acquire_fence do lỗi khi lấp đầy vùng đệm, thì khi gọi process_capture_result(), HAL phải đặt release_fence của vùng đệm thành acquire_fence do khung truyền vào. Điều này sẽ cho phép khung chờ hàng rào trước khi sử dụng lại vùng đệm.
Đối với vùng đệm đầu vào, HAL không được thay đổi trường acquire_fence trong lệnh gọi process_capture_request().
>= CAMERA_DEVICE_API_VERSION_3_2:
Khi HAL trả về vùng đệm đầu vào cho khung bằng process_capture_result(), bạn phải đặt acquire_fence thành -1. Nếu HAL không bao giờ chờ hàng rào thu nạp vùng đệm đầu vào do lỗi, thì các hàng rào đồng bộ hoá phải được xử lý tương tự như cách xử lý các hàng rào này cho vùng đệm đầu ra.
Định nghĩa tại dòng
1800
của tệp
camera3.h
.
Tay cầm gốc cho vùng đệm
Định nghĩa tại dòng
1764
của tệp
camera3.h
.
Hàng rào đồng bộ hoá bản phát hành cho vùng đệm này. HAL phải đặt hàng rào này khi trả về vùng đệm cho khung hoặc ghi -1 để cho biết không cần phải đợi vùng đệm này.
Đối với vùng đệm đầu ra, bạn phải đặt hàng rào trong mảng output_buffers được truyền đến process_capture_result().
<= CAMERA_DEVICE_API_VERSION_3_1:
Đối với vùng đệm đầu vào, hàng rào phát hành phải được đặt bằng lệnh gọi process_capture_request().
>= CAMERA_DEVICE_API_VERSION_3_2:
Đối với vùng đệm đầu vào, bạn phải đặt hàng rào trong input_buffer được truyền đến process_capture_result().
Sau khi báo hiệu release_fence cho vùng đệm này, HAL không nên tiếp tục cố gắng truy cập vào vùng đệm này vì quyền sở hữu đã được chuyển hoàn toàn trở lại khung.
Nếu bạn chỉ định hàng rào là -1, thì quyền sở hữu của vùng đệm này sẽ được chuyển lại ngay lập tức khi gọi process_capture_result.
Định nghĩa tại dòng
1827
của tệp
camera3.h
.
Trạng thái hiện tại của vùng đệm, một trong các giá trị camera3_buffer_status_t. Khung này sẽ không truyền vùng đệm đến HAL đang ở trạng thái lỗi. Trong trường hợp HAL không thể lấp đầy vùng đệm, vùng đệm đó phải được đặt trạng thái thành CAMERA3_BUFFER_STATUS_ERROR khi được trả về khung bằng process_capture_result().
Định nghĩa tại dòng
1773
của tệp
camera3.h
.
Handle của luồng mà vùng đệm này liên kết
Định nghĩa tại dòng
1759
của tệp
camera3.h
.
Tài liệu cho cấu trúc này được tạo từ tệp sau:
-
hardware/libhardware/include/hardware/
camera3.h
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-27 UTC."],[],[],null,["# Android Hardware Abstraction Layer: camera3_stream_buffer Struct Reference\n\ncamera3_stream_buffer Struct Reference\n======================================\n\n[Data Fields](#pub-attribs) \ncamera3_stream_buffer 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| [camera3_stream_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h) \\* | [stream](/reference/hal/structcamera3__stream__buffer#afaf6c85f165b4180fe63affae0232dad) |\n| ||\n| buffer_handle_t \\* | [buffer](/reference/hal/structcamera3__stream__buffer#ab87cddef201db642e7972d124d741dc2) |\n| ||\n| int | [status](/reference/hal/structcamera3__stream__buffer#a6e27f49150e9a14580fb313cc2777e00) |\n| ||\n| int | [acquire_fence](/reference/hal/structcamera3__stream__buffer#a5d59e0770b54af97a9fe151da5688719) |\n| ||\n| int | [release_fence](/reference/hal/structcamera3__stream__buffer#a248e5f7856e4c2877715fc9fda8d8ba8) |\n| ||\n\n\nDetailed Description\n--------------------\n\n\ncamera3_stream_buffer_t:\n\n\nA single buffer from a camera3 stream. It includes a handle to its parent stream, the handle to the gralloc buffer itself, and sync fences\n\n\nThe buffer does not specify whether it is to be used for input or output; that is determined by its parent stream type and how the buffer is passed to the HAL device.\n\n\nDefinition at line\n[1755](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| int acquire_fence |\n\n\nThe acquire sync fence for this buffer. The HAL must wait on this fence fd before attempting to read from or write to this buffer.\n\n\nThe framework may be set to -1 to indicate that no waiting is necessary for this buffer.\n\n\nWhen the HAL returns an output buffer to the framework with process_capture_result(), the acquire_fence must be set to -1. If the HAL never waits on the acquire_fence due to an error in filling a buffer, when calling process_capture_result() the HAL must set the release_fence of the buffer to be the acquire_fence passed to it by the framework. This will allow the framework to wait on the fence before reusing the buffer.\n\n\nFor input buffers, the HAL must not change the acquire_fence field during the process_capture_request() call.\n\n\n\\\u003e= CAMERA_DEVICE_API_VERSION_3_2:\n\n\nWhen the HAL returns an input buffer to the framework with process_capture_result(), the acquire_fence must be set to -1. If the HAL never waits on input buffer acquire fence due to an error, the sync fences should be handled similarly to the way they are handled for output buffers.\n\n\nDefinition at line\n[1800](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| buffer_handle_t\\* buffer |\n\n\nThe native handle to the buffer\n\n\nDefinition at line\n[1764](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| int release_fence |\n\n\nThe release sync fence for this buffer. The HAL must set this fence when returning buffers to the framework, or write -1 to indicate that no waiting is required for this buffer.\n\n\nFor the output buffers, the fences must be set in the output_buffers array passed to process_capture_result().\n\n\n\\\u003c= CAMERA_DEVICE_API_VERSION_3_1:\n\n\nFor the input buffer, the release fence must be set by the process_capture_request() call.\n\n\n\\\u003e= CAMERA_DEVICE_API_VERSION_3_2:\n\n\nFor the input buffer, the fences must be set in the input_buffer passed to process_capture_result().\n\n\nAfter signaling the release_fence for this buffer, the HAL should not make any further attempts to access this buffer as the ownership has been fully transferred back to the framework.\n\n\nIf a fence of -1 was specified then the ownership of this buffer is transferred back immediately upon the call of process_capture_result.\n\n\nDefinition at line\n[1827](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| int status |\n\n\nCurrent state of the buffer, one of the camera3_buffer_status_t values. The framework will not pass buffers to the HAL that are in an error state. In case a buffer could not be filled by the HAL, it must have its status set to CAMERA3_BUFFER_STATUS_ERROR when returned to the framework with process_capture_result().\n\n\nDefinition at line\n[1773](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_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h) \\* stream |\n\n\nThe handle of the stream this buffer is associated with\n\n\nDefinition at line\n[1759](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)"]]