camera3_stream_buffer Справочник по структуре

camera3_stream_buffer Справочник по структуре

#include < camera3.h >

Поля данных

camera3_stream_t *поток
buffer_handle_t *буфер
intстатус
intPurchase_fence
intrelease_fence

Подробное описание

camera3_stream_buffer_t:

Единственный буфер из потока camera3. Он включает дескриптор своего родительского потока, дескриптор самого буфера gralloc и ограждения синхронизации.

Буфер не определяет, будет ли он использоваться для ввода или вывода; это определяется типом его родительского потока и тем, как буфер передается на устройство HAL.

Определение в строке 1755 файла camera3.h .

Полевая документация

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 никогда не ожидает блокировки получения входного буфера из-за ошибки, ограничения синхронизации должны обрабатываться аналогично тому, как они обрабатываются для выходных буферов.

Определение в строке 1800 файла camera3.h .

buffer_handle_t * буфер

Собственный дескриптор буфера

Определение в строке 1764 файла camera3.h .

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.

Определение в строке 1827 файла camera3.h .

int статус

Текущее состояние буфера, одно из значений camera3_buffer_status_t. Платформа не будет передавать HAL буферы, которые находятся в состоянии ошибки. В случае, если буфер не может быть заполнен HAL, его статус должен быть установлен на CAMERA3_BUFFER_STATUS_ERROR при возврате в структуру с помощью process_capture_result ().

Определение в строке 1773 файла camera3.h .

camera3_stream_t * поток

Дескриптор потока, с которым связан этот буфер

Определение в строке 1759 файла camera3.h .


Документация для этой структуры была создана из следующего файла:
  • оборудование / libhardware / включить / оборудование / camera3.h