Tham chiếu cấu trúc camera3_stream_buffer

Tham chiếu cấu trúc camera3_stream_buffer

#include < camera3.h >

Trường dữ liệu

camera3_stream_t * luồng
 
buffer_handle_t *  bộ đệm
 
int  trạng thái
 
int  acquire_fence
 
int  release_fence
 

Nội dung mô tả chi tiết

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 .

Tài liệu về trường

int acquire_fence

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 .

buffer_handle_t* buffer

Tay cầm gốc cho vùng đệm

Định nghĩa tại dòng 1764 của tệp camera3.h .

int release_fence

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 int

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: