camera3_stream_buffer Справочник по структуре
#include < camera3.h >
Поля данных | |
camera3_stream_t * | поток |
buffer_handle_t * | буфер |
int | статус |
int | Purchase_fence |
int | release_fence |
Подробное описание
camera3_stream_buffer_t:
Единственный буфер из потока camera3. Он включает дескриптор своего родительского потока, дескриптор самого буфера gralloc и ограждения синхронизации.
Буфер не определяет, будет ли он использоваться для ввода или вывода; это определяется типом его родительского потока и тем, как буфер передается на устройство HAL.
Полевая документация
int take_fence |
Забор синхронизации для этого буфера. HAL должен дождаться этого ограничения fd перед попыткой чтения или записи в этот буфер.
Структура может быть установлена в -1, чтобы указать, что для этого буфера не нужно ждать.
Когда HAL возвращает выходной буфер в структуру с помощью process_capture_result (), Acquire_fence должен быть установлен в -1. Если HAL никогда не ожидает на acqu_fence из-за ошибки при заполнении буфера, то при вызове process_capture_result () HAL должен установить release_fence буфера как acqu_fence, переданный ему структурой. Это позволит фреймворку выжидать перед повторным использованием буфера.
Для входных буферов HAL не должен изменять поле Acquire_fence во время вызова process_capture_request ().
> = CAMERA_DEVICE_API_VERSION_3_2:
Когда HAL возвращает входной буфер в структуру с помощью process_capture_result (), Acquire_fence должен быть установлен в -1. Если HAL никогда не ожидает блокировки получения входного буфера из-за ошибки, ограничения синхронизации должны обрабатываться аналогично тому, как они обрабатываются для выходных буферов.
int release_fence |
Ограничение синхронизации выпуска для этого буфера. HAL должен установить это ограждение при возврате буферов в структуру или записать -1, чтобы указать, что для этого буфера не требуется никакого ожидания.
Для выходных буферов ограждения должны быть установлены в массиве output_buffers, переданном в process_capture_result ().
<= CAMERA_DEVICE_API_VERSION_3_1:
Для входного буфера ограничение выпуска должно быть установлено вызовом process_capture_request ().
> = CAMERA_DEVICE_API_VERSION_3_2:
Для входного буфера ограждения должны быть установлены в input_buffer, переданном в process_capture_result ().
После сигнализации release_fence для этого буфера HAL не должен предпринимать дальнейших попыток доступа к этому буферу, поскольку право собственности полностью передано обратно в структуру.
Если был указан забор -1, то право владения этим буфером возвращается сразу после вызова process_capture_result.
int статус |
Текущее состояние буфера, одно из значений camera3_buffer_status_t. Платформа не будет передавать HAL буферы, которые находятся в состоянии ошибки. В случае, если буфер не может быть заполнен HAL, его статус должен быть установлен на CAMERA3_BUFFER_STATUS_ERROR при возврате в структуру с помощью process_capture_result ().
camera3_stream_t * поток |
Документация для этой структуры была создана из следующего файла:
- оборудование / libhardware / включить / оборудование / camera3.h